修改现有数据库以反映相应对象模型变化的方法和装置制造方法及图纸

技术编号:2889313 阅读:196 留言:0更新日期:2012-04-11 18:40
一种修改现有的关系数据库以反映相应对象模型变化的方法,包括步骤: 将一个对象模型存放在计算机系统的存储器中,该对象模型至少包括一个对象,该对象代表与其相关的数据被存入所述关系数据库中的一类项目,所述对象至少包括一个部分,该部分定义了为所述项目存放在所述关系数据库中的数据; 显示对象模型的一种可视化表示形式; 将当前关系数据库模式存放在计算机系统的存储器中,所述当前关系数据库模式定义了被包含在现有关系数据库中的一个或多个关系表、以及被包含在一个或多个关系表中的一个或多个列; 检测用户对对象模型所作的修改并自动产生对应于被修改的对象模型的推荐关系数据库模式;自动比较当前关系数据库模式和推荐关系数据库模式;并且 根据当前关系数据库模式与推荐关系数据库模式的比较结果,自动修改关系数据库,而不需要用户除对对象模型修改之外的其它输入。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及计算机系统,尤其涉及利用关系数据库存储和检索信息的计算机系统。在某些时候,大多数计算机用户都需要存储和检索某类信息。这通常是利用许多商业化的数据库程序中的任何一个来实现的。这些程序允许用户定义将被存在数据库中的信息的类型,并且为要把数据输入数据库的用户提供格式,以及为希望检索先前所存储信息的人们打印报表。最流行的一种数据库被称为关系数据库。在关系数据库中,数据按行存在二维表中。每个表有一个或多个列,定义所存储数据的类型。按常规,对于初学者和不熟练的用户来说,很难建立这种关系数据库表(也被称为数据库模式)来准确地反映出用户将如何安排和存储数据的思想。允许用户建立关系数据库模式的一种新手段是使用一个被称为SALSATM的计算机程序,该程序是由华盛顿州西雅图的Wall Data公司开发的。该程序允许用户对将被存在数据库中的数据建立模型。该模型包括一个或多个语义对象,表示类似人员、定货单、公司或用户可以看作将被存在数据库中的某个唯一实体的其它任何东西的一个完整项目。每个语义对象具有一个或多个属性,存放关于该语义对象以及定义两个或多个语义对象之间关系的对象链接的识别信息。一旦用户完成了语义对象模型,SALSA计算机程序分析该模型,并建立能将数据存在计算机中的对应关系数据库模式。SALSA语义对象建模和模式发生系统的细节见1993年10月29日提出的、系列号为08/145,997的公共转让、共同未决申请的美国专利申请,该专利申请在此将作为参考文献引用。在现实世界的数据库应用中,要求存在数据库中的数据的类型随时间变化。在建立关系模式时认为很重要的信息,结果对用户却没有什么价值,而其它更重要的信息却不在数据库中,需要以后再增加进去。目前还没有一种商业化的计算机程序允许用户很方便地修改关系数据库模式以删除信息、增加信息或改变数据库中信息之间的关系。因此,为了修改数据库模式,通常需要定义一个全新的模式,并利用转换程序将先前已经存在数据库的数据重新填入新的关系数据库模式中。通常,数据库模式必须由作为数据库建模领域专家的用户来更新。这样做不但费时费钱,而且也挫伤了那些只想在数据库中存储数据、而不关心数据库管理系统内部工作的用户的积极性。考虑到目前数据库技术存在的问题,需要一种允许用户修改现有关系数据库模式的计算机系统。这种系统在允许用户完成复杂的模式修改时应该是直观的和便于学习的,而这种工作先前则需要在数据库建模专家的帮助下才能完成。本专利技术是一种计算机系统,用于修改现有的数据库模式,以便反映在相应对象模型中发生的变化。对象模型包括一个或多个对象,其中的每一个都包括一个或多个描述该对象的分量。对象模型与被存放在计算机系统的存储器中的某个关系数据库模式相关。当用户修改对象模型时,计算机系统产生一个推荐模式。将该推荐模式和定义现有数据库的当前模式进行比较。检测当前模式和推荐模式之间的变化,并将数据库中每个表应发生的变化组合成一个列表。选择修改表的次序,以便使那些需要被其它表引用的表能在引用其它表的表之前先被修改。计算机系统进一步确定数据库中某个表的一列是否包括将被移到数据库的另一个表中的数据。当某一列包括将被删除的数据时,对将被加到数据库中的另一个表的同一列进行查找。一旦找到接收数据的表,计算机系统通过将数据移到适当的表中的方式来更新该数据库。通过结合附图参考下面的详细描述,就能更容易接受并更好地理解本专利技术上述和其它许多相关的优点,其中附图说明图1是根据本专利技术允许用户修改现有关系数据库模式的计算机系统示意图;图2-8图示如何修改关系数据库以反映在相应对象模型中所发生的变化;图9A-9F为一系列的流程图,表示由本专利技术计算机系统所执行的比较两个关系数据库模式的步骤,目的是为了更新现有的关系数据库以反映在相应对象模型中所发生的变化;图10A和10B为流程图,表示由本专利技术计算机系统所执行的修改现有关系数据库的步骤;图11A表示本专利技术如何对数据库表的变化进行排序以维护数据的完整性;图11B为流程图,表示由本专利技术计算机系统执行的、按照最少依赖性次序修改数据库表的步骤。图11C表示被定义在某种循环关系中的关系数据库表;图12表示如何将数据从一个图示的表格移到另一个表格以反映相应对象模型所发生的变化;图12A说明多对多值类型的数据转移;图12B说明多对1链接类型的数据转移;图13为流程图,表示由本专利技术执行的将数据库中的数据从一个表移到另一个表的步骤;图14A-14C为一组流程图,表示由本专利技术执行的计算移动路径的步骤;图15A-15D为一组流程图,表示由本专利技术执行的修改现有关系数据库以反映在相应的对象模型中所发生变化的步骤。为了解决在目前技术状态下的数据库管理系统无法让用户方便地修改关系数据库的问题,本专利技术提供一种通过程序设计更新关系数据库模式以反映在某个相应的对象模型中所发生变化的计算机系统。现在看图1,该图给出实施本专利技术的计算机系统的示意图。该计算机系统通常包括中央处理器(CPU)70、内部存储器72和例如磁盘驱动器74这样的永久性存储装置。监视器或显示器76连接CPU,使用户能看到代表存放在关系数据库中的数据的对象模型,关系数据库存在内部存储器并最后放在磁盘驱动器74上。用户使用键盘78和例如鼠标80这样的指向装置建立对象模型。建立对象模型后,计算机程序让CPU分析该模型并且在存储器72中建立相应的关系数据库模式。正如下面将描述的,分析对象模型所发生的变化,并且修改存放在存储器中的数据库模式以反映所发生的变化。正如在′997专利申请中所充分陈述的,SALSA计算机程序提供了一种简单的方法,通过这种方法,用户能够建立关系数据库表,而不必理解如表格、属性、相交表格、外部关键字、代用(surrogate)关键字等等这样的关系数据库概念。在SALSA程序中,语义对象被用来表示数据存放在关系数据库的项目。每个语义对象由其包含的属性所定义。简单值属性表示项目的简单特性,例如人员的姓名、年龄、职业等等。组属性集体地定义了语义对象所代表的对象的一个特性,地址就是组属性的一个例子,因为它包括街道、门牌号、城市和州名,集体地定义了一个人所居住的地方。对象链接属性定义了对象模型中语义对象之间的关系。在′997专利申请中,语义对象被定义为包括一个或多个属性,这些属性可以是简单值、组或对象链接属性。与′997专利不同,语义对象的属性现在称为部分,并且将语义对象简单称为对象。然而,为了以前提出的申请和本说明书的一致性,术语“对象”和术语“语义对象”同义,而且术语“部分”和术语“属性”也是同义的。虽然′997专利申请中描述的语义对象建模系统允许用户建立数据库模式,却没有提供让用户修改现有模式以反映相应对象模型所发生变化的手段。在本专利技术中,用户对对象模型的修改可划分为四类。这些类型包括修改模型中的对象;修改对象中的部分;修改部分的特性;或修改模型中对象之间的关系。对于发生在对象模型中的每种变化,在关系数据库的某个表中必须有相应的变化。表1给出了用户可以对对象模型中的对象所作的修改以及为了实现该模型的修改而对数据库模式所作的相应的修改。表1 正如′997专利申请中所介绍的,对象模型中的每个对象和存在计算机系统存储器中的某个相应的关系数据库本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:川井健二
申请(专利权)人:瓦尔数据公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1