CN101727320A - 用于识别数据库更改对应用的影响的方法和系统 - Google Patents

用于识别数据库更改对应用的影响的方法和系统 Download PDF

Info

Publication number
CN101727320A
CN101727320A CN200910207735A CN200910207735A CN101727320A CN 101727320 A CN101727320 A CN 101727320A CN 200910207735 A CN200910207735 A CN 200910207735A CN 200910207735 A CN200910207735 A CN 200910207735A CN 101727320 A CN101727320 A CN 101727320A
Authority
CN
China
Prior art keywords
database
source code
application
hierarchical structure
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910207735A
Other languages
English (en)
Other versions
CN101727320B (zh
Inventor
阿扎德·阿哈迪安
斯蒂芬·A·布罗德斯基
迈克尔·G·伯克
佐斯·O·考特伊斯
托尼·K·勒昂
瑞贝卡·B·尼恩
伊戈尔·佩尚斯基
索纳里·苏兰格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101727320A publication Critical patent/CN101727320A/zh
Application granted granted Critical
Publication of CN101727320B publication Critical patent/CN101727320B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种用于识别数据库更改对应用的影响的方法和系统。在提出的数据库更改的情况下,识别到被所提出的数据库更改影响的受影响的源代码。创建对受影响的源代码的引用,并且将所述引用组织到层级结构中。用户可以通过查看该层级结构来确知影响的程度,并且通过使用该层级结构来以视觉上区分的方式访问和查看受影响的源代码。

Description

用于识别数据库更改对应用的影响的方法和系统
技术领域
本发明的实施例涉及应用(application)开发,并且特别地,涉及用于识别数据库更改对应用的影响的应用开发工具。
背景技术
数据库是计算机化的信息存储和检索系统。关系数据库管理系统(RDBMS)是使用用于存储和检索数据的关系技术的数据库管理系统(DBMS)。关系数据库被组织成(organize)由行和列的数据组成的表。所述行被正式称为元组(tuple)。数据库将典型地具有多个表,并且每个表将典型地具有多个元组和多个列。所述表典型地被存储在用于半永久存储的诸如磁或光盘驱动器的随机存取存储设备(RASD)上。
使用结构化查询语言(SQL)接口的RDBMS在本领域内是众所周知的。SQL接口已经演进为用于RDBMS软件的标准语言,并且已经同样地被美国国家标准协会(ANSI)和国际标准组织(ISO)两者所采用。SQL接口允许用户以批处理文件的方式交互地、或内嵌在诸如C或COBOL的宿主语言中,来制定(formulate)关于表的关系操作。SQL允许用户操纵数据。SQL的定义规定RDBMS应当以被赋予指定的数据库内容的特定数据集来响应特定查询。
应用(即,应用程序)使用结构化查询语言(SQL)与关系数据库通信。SQL语句(statement)被发出到RDBMS,RDBMS执行所述SQL语句,以访问关系数据库。在作为相关的SQL语句的集合(collection)的“工作单元”内执行从应用接收的SQL语句。一旦SQL语句被执行,则它们或者被“确认(commit)”(即,使得由所执行的SQL语句所进行的更改在关系数据库中为永久的)、或者被“退回(rolled back)”(即,去除(remove)由所执行的SQL语句进行的更改,使得关系数据库返回到在执行这些语句之前其所处的状态)。
牵涉修改数据(例如,插入、更新或删除行)的SQL语句被称作数据操纵语言(DML)语句。牵涉定义数据库元素(element)(例如,定义数据表、视图或索引)的SQL语句被称作数据定义语言(DDL)语句。
用于更改数据库模式(schemas)的工具(例如,用于生成DDL语句的工具)是可得到的。然而,这样的工具与访问它们的各种人工产物(artifact)的工具(例如,应用、包含数据库访问的程序、例程、以及数据库web服务)是不连接的。当计划(propose)经由DDL而更改数据库模式时,数据库管理员(DBA)和开发者不能预测其访问的应用和人工产物将如何被该更改所影响。
发明内容
本发明的一个实施例包括一种用于评估对由应用所访问的数据库的更改所导致的对该应用的影响的方法。该方法一般可以包括:接收提出的数据库更改;识别由所提出的数据库更改修改的数据库的一个或多个数据库对象;对于每个识别的数据库对象,分析该应用的源代码,以识别访问相应数据库对象的源代码的一个或多个部分;生成对访问所识别的数据库对象之一的源代码的每个部分的引用(reference),其中,每个引用将源代码的所识别的部分之一链接到由所提出的数据库更改修改的相应的数据库对象;将所述引用组织到层级结构中;以及生成引用的层级结构的显示,其中,该显示允许用户通过选择引用之一来访问源代码的相应部分。
本发明的另一实施例包括一种计算机程序产品,用于评估对由应用访问的数据库的更改所导致的对该应用的影响。该计算机程序产品可以提供具有计算机可用程序代码的计算机可用介质。该计算机程序代码可以被配置为:接收提出的数据库更改;识别由所提出的数据库更改修改的数据库的一个或多个数据库对象;以及,对于每个识别的数据库对象,分析该应用的源代码,以识别访问各个数据库对象的源代码的一个或多个部分。该程序代码还可以被配置为:生成对访问所识别的数据库对象之一的源代码的每个部分的引用。每个引用将源代码的所识别的部分之一链接到由所提出的数据库更改修改的相应数据库对象。该程序代码还可以被配置为:将所述引用组织到层级结构中,并且生成引用的层级结构的显示。该显示允许用户通过选择所述引用之一来访问源代码的相应部分。
本发明的又一个实施例包括具有处理器和包含程序的存储器的系统,当该程序被该处理器执行时,该程序被配置为执行用于评估由应用访问的数据库的更改所导致的对该应用的影响的操作。该操作一般可以包括:接收提出的数据库更改;识别由所提出的数据库更改修改的数据库的一个或多个数据库对象;对于每个识别的数据库对象,分析该应用的源代码,以识别访问各个数据库对象的源代码的一个或多个部分;生成对访问所识别的数据库对象之一的源代码的每个部分的引用,其中,每个引用将源代码的所识别的部分之一链接到由所提出的数据库更改修改的相应的数据库对象;将所述引用组织到层级结构中;以及生成引用的层级结构的显示,其中,该显示允许用户通过选择引用之一来访问源代码的相应部分。
附图说明
因此,可以详细理解实现上面陈述的本发明的特征、优势和目标的方式,通过参照在附图中图示的本发明的实施例,可以对上面简要概括的本发明进行更加具体的描述。
然而,要注意,附图仅图示此发明的典型实施例,并且因此不被考虑为其范围的限制,因为本发明可以承认其它同等效果的实施例。
图1是图示根据本发明的一个实施例的、在数据库服务器与应用和web服务的集合之间的依赖性的框图。
图2是图示根据本发明的一个实施例的、数据库服务器和依赖的应用和web服务的集合的硬件环境的框图。
图3是图示根据本发明的一个实施例的、影响分析器的输入和输出的框图。
图4是图示根据本发明的一个实施例的、用于识别数据库更改对应用和web服务的集合的影响的流程图。
图5图示了根据本发明的一个实施例的、表定义和用于更改表的列的DDL语句两者的示例。
图6图示了根据本发明的实施例的显示DDL语句的影响分析结果的图形用户界面,其中突显(highlight)访问受影响的列的
Figure G2009102077350D0000031
应用的变量和方法。
图7图示了根据本发明的实施例的显示DDL语句的影响分析结果的另一图形用户界面,其中突显访问受影响的列的Java应用的对象和位置。
图8图示了根据本发明的一个实施例的显示所提出的列更改的影响分析结果的DDL查询构建器(builder)的图形用户界面。
图9图示了根据本发明的一个实施例的、显示提出的列更改的影响分析结果的数据建模工具的图形用户界面。
具体实施方式
本发明的实施例提供用于识别提出的数据库更改可能对被配置为访问该数据库的应用的影响的技术。在一个实施例中,假定提出的数据库更改,识别由该更改所影响的源代码。此技术可以包括:访问与提出的(proposed)DDL语句关联的SQL模型,以及将该SQL模型与给定应用的SQL模型比较。创建对受影响的源代码的引用,并且将所述引用组织到层级结构中。创建从该层级结构到该受影响的源代码的链接。通过查看该层级结构,用户可以识别到提出的更改会如何影响该应用。此外,该用户可以快速地访问源代码的有关部分。
通过浏览受影响的源代码,开发者可以在DBA确认数据库模式中的更改之前,确定所需要的更改范围。此外,开发者可以更好地确保:敏感信息不会作为模式更改的非预期结果而错误地流至未经授权的源。另外,开发者可以获得相关的应用上下文(context)(诸如应用架构和web服务)的类似领会。
在团队开发中,假定来自同伴开发者的提出的更改,开发者可以确知在其应用中所需的更改范围。团队可以开会并调整DDL语句,并且查看每个DDL语句可能具有的对应用的影响,从而使得团队便于关于特定模式更改的回顾和协议。
下面,参考本发明的实施例。然而,应当理解,本发明不限于具体描述的实施例。相反,下列特征和元素的任何组合(不论是否涉及不同的实施例)预期为实施并实践本发明。此外,在各个实施例中,本发明提供了胜于现有技术的大量优势。然而,虽然本发明的实施例可以实现胜于其它可能的解决方案和/或胜于现有技术的优势,但是是否由给定实施例实现特定优势不是本发明的限制。因此,下面的方面、特征、实施例和优势仅仅是举例说明的,并且不被考虑为所附权利要求书的元素或限制(除了在一个(多个)权利要求中明确陈述的之外)。同样地,对“本发明”的引用不应被解释为对这里公开的任何创造性主题的概括,并且不应被考虑为所附权利要求的元素或限制(除了在一个(多个)权利要求中明确陈述的之外)。
将本发明的一个实施例实施为用于计算机系统的程序产品。该程序产品的(多个)程序定义实施例(包括这里描述的方法)的功能,并且可以包含在多种计算机可读存储介质上。举例说明的计算机可读存储介质包括、但不限于:(i)信息在其上永久存储的不可写存储介质(例如,计算机内的只读存储设备,诸如由CD-ROM驱动器可读的CD-ROM盘);(ii)在其上存储可变的信息的可写存储介质(例如,软驱中的软盘或硬盘驱动器)。当携带指示本发明的功能的计算机可读指令时,这样的计算机可读存储介质时本发明的实施例。其它介质包括通信介质,通过该通信介质而将信息传递到计算机,例如,通过计算机或电话网络(包括无线通信网络)。后面的实施例具体地包括将信息传送至因特网和其它网络/从因特网和其它网络传送信息。当携带指示本发明的功能的计算机可读指令时,这样的通信介质时本发明的实施例。广义上,计算机可读存储介质和通信介质可以在这里成为计算机可读介质。
一般而言,被执行用以实施本发明的实施例的例程可以是操作系统或具体应用的一部分、组件、程序、模块、对象或指令序列。本发明的计算机程序典型地由大量指令组成,所述指令将被本地计算机解译为机器可读格式并且此后为可执行指令。此外,程序由或者本地地存在于程序中、或者发现于存储器中或存储设备上的变量和数据结构组成。另外,可以基于在本发明的具体实施例中实施下文中描述的各种程序所针对的应用,来识别所述程序。然而,应当理解,接着的任何特定程序术语仅仅为了方便而使用,并且因此不应将本发明限制为仅仅用在由这样的术语识别的和/或暗示的任何具体应用。
图1是图示根据本发明的一个实施例的、在数据库服务器与应用和web服务的集合之间的依赖性的框图。如所示的,示例计算环境100包括应用140和数据库web服务150,其各自与数据库服务器120连接,以访问数据库130。如果用户经由数据库服务器120而针对于数据库130执行DDL语句110,则应用140或数据库web服务150会被通过执行DDL语句110而导致的数据库更改所影响。通常,web服务150代表可经由软件协议访问的任何程序或软件组件,例如,web服务、WSDL、REST、TCP/IP、网络、(企业)服务总线、面向服务的架构、WSDL、URI、URL、RSH、RLogin、或远程进程调用。此外,数据库修改还可以包括对数据库例程、所存储的过程、用户定义的功能、用户定义的数据类型、约束(constraint)和数据库触发器的更改。可以被修改的其它数据库组件包括:被生成用于对象关系映射系统的人工产物,如
Figure G2009102077350D0000061
(企业
Figure G2009102077350D0000062
Beans应用)、JPA(
Figure G2009102077350D0000063
持久性架构)、JDO(数据对象)、JAX-RPC和JAX-WS(
Figure G2009102077350D0000065
远程进程调用和
Figure G2009102077350D0000066
Web服务)、以及
Figure G2009102077350D0000067
对象/关系持久性和查询服务;以及其它数据库模型,例如,实体关系图和UML(统一建模语言)模型。
图2是图示根据本发明的一个实施例的、数据库服务器和依赖的应用和web服务的集合的硬件环境200的框图。如所示出的,硬件环境200包括客户端计算机220、260、280和数据库服务器系统240。在一个实施例中,在硬件环境200中图示的计算机系统可以包括现有的计算机系统,例如,桌面型计算机、服务器计算机、膝上型计算机、平板型计算机等。然而,图2中图示的计算环境200仅仅是一个计算环境的示例。可以使用其它环境来实施本发明的实施例,而不用考虑计算机系统是复杂多用户计算系统(例如,通过高速网络连接的单独计算机的集群)、单用户工作站、还是无非易失性存储装置的网络设备。此外,图2中图示的和这里描述的软件应用可以通过使用在现有计算机系统(例如,桌上型计算机、服务器计算机、膝上型计算机、平板型计算机等)上执行的计算机软件应用来实施。然而,这里描述的软件应用不限于任何当前现有的计算环境或编程语言,并且可以被适配为随着新的计算系统变为可用而利用它们的优势。
如所示的,数据库服务器系统220包括处理器221,其从存储器222和存储装置225获得指令和数据。处理器221可以是被适配为支持本发明的方法的任何处理器。存储器222是大到足以保存必要的程序和数据结构的任何存储器。存储器222可以是包括随机存取存储装置、非易失性或备份存储器的存储器件(例如,可编程或快闪存储装器、只读存储装器等)之一或组合。另外,存储器222和存储装置225可以被考虑为包括物理上位于服务器中的其它位置(例如,在耦接至数据库服务器220的另一计算机上)的存储器。数据库服务器系统220可以被可操作地连接至网络(未示出),该网络通常代表任何种类的数据通信网络。从而,该网络可以表示本地网络和广域网(包括因特网)两者。在数据库服务器系统220上,数据库服务器223驻留于存储器222中,并且其关联的数据库226驻留于存储装置225中。说明性地,数据库226包括一个或多个模式227和数据228。每个模式227定义对于数据228的相应集的组织布置。
如所示的,客户端计算机240、260、280各自包括处理器241、261、281,其经由总线从存储器222、262、282和客户端存储装置获得指令和数据。处理器241、261、281是在计算机中执行所有的指令、逻辑和数学处理的可编程逻辑器件。客户端存储装置存储用于由客户端计算机240、260、280使用的应用程序和数据。客户端存储装置包括硬盘驱动器、闪存器件、光介质等。客户端计算机240、260、280被可操作地连接至网络。客户端存储器242、262、282包括操作系统。该操作系统是用于管理客户端计算机240、260、280的操作的软件。操作系统的示例包括操作系统、Microsoft
Figure G2009102077350D0000072
操作系统的一个版本、以及
Figure G2009102077350D0000073
操作系统的发布版。(注意:Linux是美国和其它国家中的Linus Torvlds的商标)
如所示的,客户端计算机240包括经由数据库服务器223而访问数据库226的存储器242中的应用243。类似地,客户端计算机260包括经由数据库服务器223而访问数据库226的存储器262中的数据库web服务263。此外,客户端计算机280包括要经由数据库服务器223而针对于数据库226而被执行的、存储器282中的DDL语句283。然而,针对于数据库226而执行DDL语句283会以不利地影响应用243和/或数据库web服务263的方式更改数据库模式227。例如,DDL语句可重命名或丢弃(drop)列、或者更改列的数据类型。DDL语句还可以重命名或丢弃表。
图3是图示根据本发明的一个实施例的、影响分析器350的输入和输出的集合的框图。如所示的,该影响分析器被集成到集成开发环境(IDE)340中。在IDE中,计算机用户和程序员使用程序编辑器,以便以源代码的形式写计算机程序并且开发软件应用。或者,可以通过诸如反编译现有应用的其它技术来获得源代码。在一个实施例中,该影响分析器接收DDL语句330,并且确定(不实际执行该DDL语句330)DDL语句330会如何影响任何应用或web服务。该影响分析器350输出影响分析结果380,其详细示出受影响的应用和数据库web服务。这样的细节可以是受影响的工作空间、项目和模块,或者更具体地,例如源代码文件中的位置、方法、对象和变量。例如,影响分析结果380可以列出将受DDL语句330影响的应用源代码360或web服务源代码370的具体行。该分析结果380使得用户能够确知该DDL语句330对该应用或web服务的影响的程度。
图4是图示根据本发明的一个实施例的、用于识别数据库更改对应用和web服务的集合的影响的流程图。为了举例说明,与图3的系统结合描述方法400。然而,本领域的技术人员将理解,被配置为以任何顺序执行方法400的步骤的任何系统处于本发明的范围内。
如所示的,方法400在步骤410开始,其中,由影响分析器350接收提出的DDL语句330。例如,假设接收到用于重命名表列的名称的DDL语句。在步骤420,影响分析器350连接至数据库320。一旦连接,则该影响分析器350可以从数据库请求描述特定数据库的结构或模式的信息。或者,可以从模型或数据库状态的其它表示来确定此信息。在这样的情况下,该影响分析器350可以访问描述数据库的模型,而不连接至实际数据库或DBMS系统。在步骤430,影响分析器350识别被所提出的DDL语句影响的每个数据库对象。数据库对象的示例包括数据库、模式、表、表空间、视图、列、约束、特权(privilege)、主键(primary key)、外键(foreign key)、以及进程。例如,影响分析器350可以识别由DDL语句重命名的列。
在步骤440,影响分析器识别访问数据库对象的所有应用/web服务对象和方法。例如,对于Java应用,影响分析器440识别访问由DDL语句重命名的数据库列的源代码。在步骤450,影响分析器350创建对受影响的源代码的引用,并且,将所述引用组织到层级结构中。引用包括源代码文件名和行号。例如,可以通过源代码文件名来分组该层级结构,并且,每个文件名与对应于受影响的源代码的行号的列表关联。
在步骤460,影响分析器350生成分析结果380,其显示该层级结构,并且允许用户以视觉上区分(例如,突显的)方式来访问并查看受影响的源代码。此外,可以生成来自影响分析器350的额外输出,例如,用以使得代码和/或SQL适配于更改的所提出的动作。例如,假设列的数据类型从字符更改为整数,以及应用程序中的函数调用可包括用于存储来自该列的值的字符(或字符串)变量。在这样的情况下,影响分析器350可以建议将字符更改为整数数据类型的、对功能定义的修改。
例如,用户可以双击层级结构中的条目,以访问以视觉上区分的方式(例如,突显的)为格式的源代码。因此,用户可以通过查看分析结果380,确知DDL语句对web应用或web服务的预期影响。在一个实施例中,影响分析器350可以支持编辑模式(其中,用户可以读取并修改受影响的源代码)以及只读模式(其中,用户可以读取但不能修改受影响的源代码)。此外,影响分析器350可以是独立工具、或IDE工具(例如,
Figure G2009102077350D0000091
IDE)的一部分。在步骤450之后,方法400终止。
层级结构可以在用户界面中被显示为树型控件。在这样的情况下,该树可以包括代表源代码文件的节点。树中的节点可以显示源代码文件的名称,并且,可以被展开以示出(或者折叠以隐藏)对受影响的源代码的引用(例如,行号)。
一旦用户使用例如鼠标的输入设备而选择引用,则影响分析器可以在新的用户界面窗口中显示关联的源代码文件。另外,影响分析器350可以滚动至源代码文件的所引用的位置,移动光标至所引用的对象或方法,并且以视觉上区分的方式(例如,突显、下划线、粗体等)格式化适当的源代码。
图5图示了根据本发明的一个实施例的、表定义510和用于更改表的列的DDL语句520两者的示例。说明性地,表定义510创建表“ACT”,其具有三个字段:类型SMALLINT的“ACTNO”、类型CHAR(6)的“ACTKWD”、以及类型的VARCHAR(20)的“ACTDESC”。DDL语句520将ACTNO列从类型SMALLINT更改为类型VARCHAR(5)。即,该表定义包括三列,其中,两列存储文本字符,一列存储数值。
图6图示了根据本发明的实施例的、显示DDL语句520的影响分析结果380的图形用户界面。影响分析结果380还显示受影响的源代码位置的层级结构620,其中,该层级结构620被无缝地集成到IDE中,允许用户经由该层级结构620而访问特定的受影响的源代码。此外,影响分析结果还突显(610)访问受影响的列的变量和方法。
图7图示了根据本发明的实施例的、显示DDL语句520的影响分析结果380的IDE的另一图形用户界面。根据本发明的一个实施例,影响分析结果380还显示受影响的对象和它们的源代码位置的层级结构720,其中,该层级结构720被无缝地集成到IDE中,从而允许用户经由该层级结构720而访问特定源代码位置。此外,影响分析结果还突显(710)访问受影响的列的对象和位置。
图8图示了根据本发明的一个实施例的、显示对于将ACTNO列类型从SMALLINT更改为VARCHAR的影响分析结果380的、数据库管理应用的DDL查询构建器810窗口的图形用户界面。根据本发明的一个实施例,影响分析结果380还显示受影响的源代码位置的层级结构820,其中,层级结构820被无缝地集成到IDE中,从而允许用户经由层级结构820而访问特定源代码位置。
图9图示了根据本发明的一个实施例的、显示对于将ACTNO列类型从SMALLINT更改为VARCHAR的影响分析结果380的、数据建模工具的图形用户界面。影响分析结果380显示(910)受影响的数据库对象、Java应用和数据库服务。受影响的数据库对象可以包括表、列、列定义等。受影响的数据库对象还可以包括:对象关系映射系统的组件,如EJB(企业Java Beans)、JPA(Java持久性架构)、JDO(Java数据对象)、JAX-RPC和JAX-WS(Java远程进程调用和Java Web服务)、以及Hibernate;以及数据库模型,例如,实体关系图和UML(统一建模语言)模型。
对于Java应用和数据库web服务,影响分析结果包括对Java源代码及其行号的引用,以提供列更改的影响的更清楚的视图。
当然,这里描述的实施例意在说明性的,并且并非本发明的限制,以及,其它实施例是广义上预期的。例如,本领域的技术人员将认识到,影响分析器350可以是独立的或被集成到IDE中的应用、数据库管理应用、或数据建模工具。此外,所提出的数据库更改可以是以SQL DDL语句形式的,或者是经由查询构建器界面而指定的。另外,应用130可以以具有数据库访问能力(经由库、扩展、模块、封装(package)等)的任何编程语言(例如或C/C++编程语言)写入。此外,可以通过变量和方法名称来进一步组织该层级结构;受影响的源代码可以来自于指定的工作空间、项目、应用或数据库web服务;以及,作为所提出的数据库更改的目标的数据库对象可以是数据库、模式、表、表空间、视图、列、约束、特权、主键、外键、进程等。
虽然前文针对于本发明的实施例,但是可以设计本发明的其它和进一步的实施例,而不脱离其基本范围,并且,其范围由所附的权利要求确定。

Claims (17)

1.一种用于评估对由应用访问的数据库的更改所导致的对所述应用的影响的方法,包括:
接收所提出的数据库更改;
识别由所提出的数据库更改所修改的数据库的一个或多个数据库对象;
对于每个识别的数据库对象,分析所述应用的源代码,以识别访问相应数据库对象的所述源代码的一个或多个部分;
生成对访问所识别的数据库对象之一的源代码的每个部分的引用,其中,每个引用将源代码的所识别的部分之一链接到由所提出的数据库更改所修改的相应的数据库对象;
将所述引用组织到层级结构中;以及
生成引用的层级结构的显示,其中,所述显示允许用户通过选择所述引用之一来访问源代码的相应部分。
2.如权利要求1所述的方法,还包括:
生成对应于引用的层级结构中的所选择的一个引用的源代码的显示,其中,对应于所选择的引用的所述源代码被格式化为:在视觉上不同于所述应用的其它源代码。
3.如权利要求1所述的方法,其中,所提出的数据库更改是以结构化查询语言(SQL)数据定义语言(DDL)语句的形式。
4.如权利要求1所述的方法,还包括:基于由所提出的数据库更改指定的对相应数据库对象的修改,生成对源代码的所述部分中的至少一个部分的建议的修改。
5.如权利要求1所述的方法,其中,通过项目名称和源代码文件名来组织所述层级结构。
6.如权利要求5所述的方法,其中,还通过变量名称和方法名称来组织所述层级结构。
7.如权利要求1所述的方法,其中,所述源代码的所识别的部分中的每个来自于指定的工作空间、项目、应用、或数据库web服务。
8.如权利要求1所述的方法,其中,每个识别的数据库对象是数据库、模式、表、表空间、视图、列、约束、特权、主键、外键和进程中的一个。
9.一种用于评估对由应用访问的数据库的更改所导致的对所述应用的影响的计算机程序产品,所述计算机程序产品包括具有被配置为实施权利要求1至8中的任何方法的计算机可用程序代码的计算机可用介质。
10.一种系统,包括:
处理器;
包含程序的存储器,当由所述处理器执行所述程序时,所述程序被配置为执行用于评估对由应用访问的数据库的更改所导致的对所述应用的影响的操作,所述操作包括:
接收所提出的数据库更改;
识别由所提出的数据库更改所修改的数据库的一个或多个数据库对象;
对于每个识别的数据库对象,分析所述应用的源代码,以识别访问各个数据库对象的所述源代码的一个或多个部分;
生成对访问所识别的数据库对象之一的源代码的每个部分的引用,其中,每个引用将源代码的所识别的部分之一链接到由所提出的数据库更改所修改的相应的数据库对象;
将所述引用组织到层级结构中;以及
生成引用的层级结构的显示,其中,所述显示允许用户通过选择所述引用之一来访问源代码的相应部分。
11.如权利要求10所述的系统,其中,所述操作还包括:
生成对应于引用的层级结构中的所选择的一个引用的源代码的显示,其中,对应于所选择的引用的所述源代码被格式化为:在视觉上不同于所述应用的其它源代码。
12.如权利要求10所述的系统,其中,所提出的数据库更改是以结构化查询语言(SQL)数据定义语言(DDL)语句的格式。
13.如权利要求10所述的系统,其中,所述操作还包括:
基于由所提出的数据库更改指定的对相应数据库对象的修改,生成对源代码的所述部分中的至少一个的建议的修改。
14.如权利要求10所述的系统,其中,通过项目名称和源代码文件名来组织所述层级结构。
15.如权利要求14所述的系统,其中,还通过变量和方法名称来组织所述层级结构。
16.如权利要求10所述的系统,其中,所述源代码的所识别的部分中的每一个来自于指定的工作空间、项目、应用、或数据库web服务。
17.如权利要求10所述的系统,其中,每个识别的数据库对象是数据库、模式、表、表空间、视图、列、约束、特权、主键、外键和进程中的一个。
CN2009102077350A 2008-10-22 2009-10-22 用于识别数据库更改对应用的影响的方法和系统 Active CN101727320B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/255,946 US8458654B2 (en) 2008-10-22 2008-10-22 Identifying impact of database changes on an application
US12/255,946 2008-10-22

Publications (2)

Publication Number Publication Date
CN101727320A true CN101727320A (zh) 2010-06-09
CN101727320B CN101727320B (zh) 2013-01-30

Family

ID=42132766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102077350A Active CN101727320B (zh) 2008-10-22 2009-10-22 用于识别数据库更改对应用的影响的方法和系统

Country Status (2)

Country Link
US (2) US8458654B2 (zh)
CN (1) CN101727320B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038519A (zh) * 2015-11-09 2017-08-11 达索系统美国公司 产品生命周期管理(plm)系统与源代码管理(scm)系统之间的双向数据同步
CN110286883A (zh) * 2019-06-03 2019-09-27 中国建设银行股份有限公司 智能数据库编码监控方法、装置及电子设备
CN113474764A (zh) * 2020-01-31 2021-10-01 斯诺弗雷克公司 共享数据库对象上的流
CN113795838A (zh) * 2019-02-15 2021-12-14 甲骨文国际公司 通过对持久存储装置中的信息流建模来检测二级安全漏洞
US11475023B2 (en) 2014-11-05 2022-10-18 Ab Initio Technology Llc Impact analysis

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429601B2 (en) * 2007-11-29 2013-04-23 Red Hat, Inc. Code completion for object relational mapping query language (OQL) queries
US8458654B2 (en) * 2008-10-22 2013-06-04 International Business Machines Corporation Identifying impact of database changes on an application
US8667028B2 (en) * 2009-09-28 2014-03-04 At&T Global Network Services Deutschland Gmbh System and method to determine database schema impact
US8768947B2 (en) * 2009-12-22 2014-07-01 At&T Global Network Services Deutschland Gmbh System and method for implementing unique primary keys across enterprise databases
US8782001B2 (en) * 2010-02-19 2014-07-15 International Business Machines Corporation Computation of impacted and affected code due to database schema changes
US9021471B2 (en) 2011-05-03 2015-04-28 International Business Machines Corporation Managing change-set delivery
US9026561B2 (en) * 2012-07-02 2015-05-05 International Business Machines Corporation Automated report of broken relationships between tables
US9348585B2 (en) * 2013-08-20 2016-05-24 Red Hat, Inc. System and method for estimating impact of software updates
US10120885B2 (en) * 2015-06-01 2018-11-06 Sap Se Smart restrict mode for data definition statements
US9703554B2 (en) * 2015-12-07 2017-07-11 Sap Se Custom code migration suggestion system based on actual change references
US10324932B2 (en) 2016-02-29 2019-06-18 International Business Machines Corporation Detecting logical relationships based on structured query statements
US10248668B2 (en) * 2016-07-18 2019-04-02 International Business Machines Corporation Mapping database structure to software
US10885157B2 (en) 2017-04-03 2021-01-05 International Business Machines Corporation Determining a database signature
US10379825B2 (en) 2017-05-22 2019-08-13 Ab Initio Technology Llc Automated dependency analyzer for heterogeneously programmed data processing system
MY195007A (en) * 2018-12-31 2022-12-30 Mimos Berhad A system and method for impact analysis of change request that affects database structure through classificiation and keyword similarity analysis
US11269762B2 (en) * 2019-03-25 2022-03-08 Aurora Labs Ltd. Using line-of-code behavior and relation models to anticipate impact of hardware changes
US20210064614A1 (en) * 2019-08-30 2021-03-04 Oracle International Corporation Database environments for guest languages
US11294894B2 (en) 2019-08-30 2022-04-05 Oracle International Corporation Dynamic resolution of dependencies for database guest languages
CN114467084A (zh) * 2019-09-12 2022-05-10 惠普发展公司,有限责任合伙企业 基于源代码改变位置和源代码测试位置的应用的回归测试
CN111625585B (zh) * 2020-05-22 2021-08-31 中科驭数(北京)科技有限公司 硬件加速数据库的访问方法、装置、主机及存储介质
US11734116B1 (en) * 2022-12-01 2023-08-22 Snowflake Inc. Infrastructure for automating rollout of database changes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671407A (en) * 1994-12-07 1997-09-23 Xerox Corporation Application-specific conflict detection for weakly consistent replicated databases
AU2001243597A1 (en) * 2000-03-03 2001-09-17 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US7174536B1 (en) * 2001-02-12 2007-02-06 Iowa State University Research Foundation, Inc. Integrated interactive software visualization environment
CA2429335A1 (en) 2003-05-22 2004-11-22 Cognos Incorporated System and method of determining impact of reports based on metadata model changes
CN1307584C (zh) * 2003-11-17 2007-03-28 中兴通讯股份有限公司 一种用二维表实现的树的存储、访问的方法
US8103624B2 (en) * 2005-01-13 2012-01-24 International Business Machines Corporation Apparatus and method for automating the logging of table changes in a database
US20080147704A1 (en) 2006-12-13 2008-06-19 Godwin Debbie A Systems and methods for propagation of database schema changes
US7853675B2 (en) * 2007-03-02 2010-12-14 International Business Machines Corporation Automatically enforcing change control in operations performed by operational management products
US8276117B2 (en) * 2007-08-03 2012-09-25 International Business Machines Corporation Displaying and refactoring programs that include database statements
US8458654B2 (en) * 2008-10-22 2013-06-04 International Business Machines Corporation Identifying impact of database changes on an application
US20100293524A1 (en) * 2009-05-12 2010-11-18 International Business Machines, Corporation Development environment for managing database aware software projects
US8782001B2 (en) * 2010-02-19 2014-07-15 International Business Machines Corporation Computation of impacted and affected code due to database schema changes
US9009112B2 (en) * 2010-03-15 2015-04-14 Microsoft Technology Licensing, Llc Reorganization of data under continuous workload
US20110271250A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Software Development Tool
US9251184B2 (en) * 2011-01-07 2016-02-02 International Business Machines Corporation Processing of destructive schema changes in database management systems
US8442941B2 (en) * 2011-01-19 2013-05-14 Microsoft Corporation Scalable database workload replay with mode selections

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475023B2 (en) 2014-11-05 2022-10-18 Ab Initio Technology Llc Impact analysis
CN107038519A (zh) * 2015-11-09 2017-08-11 达索系统美国公司 产品生命周期管理(plm)系统与源代码管理(scm)系统之间的双向数据同步
CN107038519B (zh) * 2015-11-09 2022-04-29 达索系统美国公司 用于系统之间的双向数据同步的方法和系统
CN113795838A (zh) * 2019-02-15 2021-12-14 甲骨文国际公司 通过对持久存储装置中的信息流建模来检测二级安全漏洞
CN110286883A (zh) * 2019-06-03 2019-09-27 中国建设银行股份有限公司 智能数据库编码监控方法、装置及电子设备
CN110286883B (zh) * 2019-06-03 2024-01-30 中国建设银行股份有限公司 智能数据库编码监控方法、装置及电子设备
CN113474764A (zh) * 2020-01-31 2021-10-01 斯诺弗雷克公司 共享数据库对象上的流

Also Published As

Publication number Publication date
US20120159433A1 (en) 2012-06-21
US8499281B2 (en) 2013-07-30
US8458654B2 (en) 2013-06-04
CN101727320B (zh) 2013-01-30
US20100114962A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
CN101727320B (zh) 用于识别数据库更改对应用的影响的方法和系统
CN100468396C (zh) 用于任意数据模型的映射体系结构
US7827159B2 (en) Automated data model extension through data crawler approach
JP5065056B2 (ja) ワークフローを処理するための方法、コンピュータ・プログラム、およびシステム(ワークフロー・システムへのデータ管理動作の統合)
US7822710B1 (en) System and method for data collection
US7620665B1 (en) Method and system for a generic metadata-based mechanism to migrate relational data between databases
JP5525541B2 (ja) データ管理システム内のデータセットのインスタンスのマッピング
US8566810B2 (en) Using database knowledge to optimize a computer program
CN1705945B (zh) 提供查询的属性的方法和系统
JP3962417B2 (ja) データベースに対するアクセスを制御するシステム、およびその方法
US9507820B1 (en) Data modeling system for runtime schema extensibility
US7801882B2 (en) Optimized constraint and index maintenance for non updating updates
US10296542B2 (en) Integration database framework
US20060195437A1 (en) Materialized query table matching with query expansion
US7877417B2 (en) Method and apparatus for exchanging data with a database
JP2006172446A (ja) 複合データアクセス
US9864794B2 (en) Method and system for managing faceted data
US8090735B2 (en) Statement generation using statement patterns
US7110991B2 (en) IDE integration with JDBC
CA2327948A1 (en) System and method for accessing non-relational data by relational access methods
US20050154756A1 (en) Method of generating database transaction statements based on existing queries
US20080184109A1 (en) Generating a relational view for a base model schema
US20040249792A1 (en) Automated query file conversions upon switching database-access applications
CN101419611A (zh) 用于在xml数据库上执行操作的方法
Al-Badarneh et al. Developing model-driven quality-aware data warehouses with a UML profile

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant