在现存的关系数据库模式上建立语义对象模型的计算机系统.pdf

上传人:a1 文档编号:658527 上传时间:2018-03-02 格式:PDF 页数:55 大小:1.87MB
返回 下载 相关 举报
摘要
申请专利号:

CN96195384.5

申请日:

1996.06.03

公开号:

CN1190478A

公开日:

1998.08.12

当前法律状态:

撤回

有效性:

无权

法律详情:

专利申请的视为撤回公告日:1998.9.9||||||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

瓦尔数据公司;

发明人:

戴维·克罗恩克

地址:

美国华盛顿

优先权:

1995.06.07 US 08/478,377

专利代理机构:

中国国际贸易促进委员会专利商标事务所

代理人:

于静

PDF下载: PDF下载
内容摘要

一种用于据现有的关系数据库模式创建语义对象模型的计算机系统。计算机系统分析关系数据库模式中的目录信息,并且为目录中定义的每张表创建一个语义对象。对于为表所定义的每个列,将单值属性加入为该表所创建的语义对象中。接着,系统分析存储在目录中的联系信息以生成定义两个或多个语义对象之间联系的对象连接信息及生成多值组属性和多值、单值属性。若数据库目录不包括联系信息,则提示用户指明相关的语义对象。

权利要求书

1: 一种用于据现有的关系数据库模式创建语义对象模型的计算机系 统,包括: 一个存有数据库目录的内存,其中数据库目录定义了数据库模式中 的多张关系数据库表以及每张关系数据库表中的至少一列; 一个用于显示语义对象模型给用户的显示设备; 一个中央处理单元,它同内存和显示设备连接在一起,中央处理单 元包括一个驱动中央处理单元执行下列功能的计算机程序: a)对数据库目录进行分析以确定在现有关系数据库模式中定义的每 张关系数据库表 b)在语义对象模型中创建语义对象,该语义对象模型对应于在关系 数据库模式中定义的至少一张关系数据库表; c)对在关系数据库模式中定义的同所创建的语义对象相对应的关系 数据库表中的每一列进行分析;并且 d)在所创建的语义对象中创建至少一个单值属性,该单值属性同该 语义对象所对应的关系数据库表中定义的某个列对应。
2: 如权利要求1所述的计算机系统,其特征在于:数据库目录中包 括联系信息,该联系信息定义了表中的一个列是否是对应该关系数据库 模式中另一张关系数据库表中所包括的某个列的外码,计算机程序进一 步驱动中央处理单元执行: a)对每张关系数据库表中包括的每个列进行分析以确定每个列是否 被定义为对应该关系数据库中另一张表的外码; b)创建一对对象连接属性;并且 c)将一个对象连接属性加入一个同被定义为外码的列所在的表相关 的语义对象中,将配对对象连接属性的另一个对象连接属性加入同另一 张关系数据库表相关的语义对象中。
3: 如权利要求2所述的计算机系统,其特征在于:在数据库目录中 定义了表的哪个列是主码,计算机程序进一步驱动中央处理单元执行: a)对每张关系数据库表中所包含的每个列进行分析以确定是否某列 被定义为一张关系数据库表的主码同时又是对应该关系数据库模式中另 一张关系数据库表的外码; b)判断既是主码又是对应另一张表的外码的列所在的关系表是否包 括两个以上的列;并且 c)如果既是主码又是外码的列所在的表有两个以上的列,则在同外 码所参照的表相关的语义对象中创建一个多值组属性。
4: 如权利要求3所述的计算机系统,其特征在于:计算机程序进一 步驱动控制处理单元执行: a)对每张关系数据库表中的每个列进行分析以确定是否某列被定义 为一张关系数据库表的主码同时又是对应该关系数据库模式中另一张关 系数据库表的外码; b)判断既是主码又是对应另一张表的外码的列所在的关系表是否包 括两个或少于两个的列;并且 c)如果既是主码又是外码的列所在的表有两个或少于两个的列,则 在同外码所参照的表相关的语义对象中创建一个多值、单值属性。
5: 如权利要求1所述的计算机系统,其特征在于:计算机程序进一 步驱动中央处理单元执行: a)为在现有关系数据库模式中定义的每张关系数据库表创建一个语 义对象。
6: 如权利要求5所述的计算机系统,其特征在于:数据库目录中包 括联系信息,该联系信息定义了表中的一个列是否是对应该关系数据库 模式中另一张关系数据库表的外码,计算机程序进一步驱动中央处理单 元执行: a)对在关系数据库模式中定义的每张表进行分析以确定该表是否只 包括那些被定义为对应在该关系数据库模式中定义的一对表的外码; b)在同那些外码所参照的表相关的语义对象中创建一对多值对象连 接属性;并且 c)从语义对象模型中删除据只包括被定义为外码列的表而创建的语 义对象。
7: 一种对包括中央处理单元、内存、永久存储机构和显示屏类型的 计算机进行操作的方法,该方法用于产生同存储在永久存储机构上的现 有关系数据库模式相对应的语义对象模型,步骤包括: 对数据库目录进行检索并将数据库目录放入计算机系统的内存中, 在数据库目录中定义了现有关系数据库模式中所包括的一或多张关系数 据库表,以及为每张关系数据库表定义的一个或多个列; 对数据库目录进行分析以确定在现有关系数据库模式中定义的每一 张关系数据库表; 在内存中分配空间以据现有关系数据库模式中所定义每张关系数据 库表来创建语义对象; 对数据库目录进行分析以确定现有关系数据库模式中的每张表中所 包括的每一列; 在内存中分配空间以据每张关系数据库表所包括的每一列来创建单 值属性; 将据关系数据库表中所包括的每一列而创建的每个单值属性同据该 关系数据库表而创建的语义对象连接起来;并 在显示屏上以可视化形式显示至少一些语义对象和单值属性。
8: 如权利要求7所述的方法,其特征在于:数据库目录中包括联系 信息,该联系信息定义了表中的某个列是否是对应现有关系数据库模式 中另一张表的外码,数据库目录中还包括主码信息,该主码信息定义了 一张关系表中的哪些列被定义为该关系表的外码,该方法进一步包括的 步骤有: 对该目录进行分析以确定一张表中的某个列是否被定义为既是对应 现有关系数据库模式中另一张关系数据库表的外码,又是一张关系数据 库表的主码; 对该目录进行分析以确定具有既是外码又是主码的列的某张表是否 包括一个以上的非外码列; 如果一张表中的某列既是外码又是主码,则在内存中分配空间来创 建一个多值组属性;并 将该多值组属性同据外码所参照的关系数据库表而创建的语义对象 连接起来。
9: 如权利要求8所述的方法,进一步包括如下步骤: 如果一张表具有的某个列既被定义为外码又被定义为主码并且该表 只有一个非外码列,则在内存中分配空间以创建一个多值、单值属性; 并 将该多值、单值属性同据外码所参照的关系数据库表而创建的语义 对象连接起来。
10: 如权利要求9所述的方法,进一步包括如下步骤: 对数据库目录进行分析以确定是否存在一张表,该表只具有被定义 为外码的列; 在内存中为每张只具有被定义为外码的列的表分配空间以放入一对 多值对象连接属性;并 将该对多值的,对象连接属性同该表的外码所参照的关系数据库表 连接起来。
11: 如权利要求10所述的方法,进一步包括如下步骤: 从内存中删去据只具有被定义为外码的列的关系数据库而创建的语 义对象所占用的空间。
12: 如权利要求8所述的方法,进一步包括如下步骤: 从内存中删去据满足下面条件的关系数据库表而创建的语义对象所 占用的空间,该关系数据库表的某个列既被定义为外码又被定义为主码 并且该表包括两个以上的列。
13: 如权利要求9所述的方法,进一步包括如下步骤: 从内存中删去据满足下面条件的关系数据库表而创建的语义对象 所占用的空间,该关系数据库表的某个列既是外码又是主码并且该表只 包括两个列。
14: 如权利要求7所述的方法,进一步包括如下步骤: 在内存中分配空间以存储一张所创建的语义对象的列表;并 每当语义对象生成时,加入对该列表的一个参照。
15: 如权利要求7所述的方法,进一步包括如下步骤: 在内存中分配空间来为每个所创建的语义对象创建一个对象连接配 置文件。
16: 如权利要求7所述的方法,其特征在于:数据库目录提供了指明 关系数据库表主码的信息,但没有提供联系信息,该方法进一步包括如 下步骤: 在显示屏上显示对话框,该对话框允许用户指明在语义对象模型中 相关联的两个语义对象; 提示用户指明语义对象的关联是通过一对一,一对多,多对一还是 多对多联系,并记录用户输入的联系信息。
17: 如权利要求16所述的方法,进一步包括如下步骤: 确定用户所指明的相关联的语义对象间的联系是否是多对多; 提示用户指明现有关系数据库模式中的交叉表,该交叉表的列包含 对应现有关系数据库模式中其它关系表的外码; 在内存中分配空间以创建一对多值对象连接属性;并 将该对多值对象连接属性中的每个对象连接属性同据外码所能照的 关系数据库而创建的语义对象连接起来。
18: 如权利要求16所述的方法,进一步包括如下步骤: 确定用户所指明的相关联的语义对象间的联系是否是一对多或多对 一; 确定同一对多联系的一方相关联的语义对象和同该联系的多方相关 联的语义对象; 提示用户指明满足下面条件的现有关系数据库中的关系表,即该表 具有对应于与该联系的一方的语义对象相关联的某张关系表的外码; 确定所指明的该表是否具有一个以上的非外码属性并且该外码是该 表主码的一部分; 如果所指明的表仅具有一个非外码列并且该外码是该表主码的一部 分,则在内存中分配空间以创建多值的单值属性;并 将多值组或多值的单值属性同一对多联系所关联的语义对象连接起 来。
19: 如权利要求17所述的方法,进一步包括如下步骤: 确定该联系是否是一对一并且如果是的话则在内存中分配空间以创 建一对对象连接属性;并 将该对对象连接属性中的每个对象连接属性同由一对一联系所关联 的语义对象连接起来。
20: 一种计算机可读存储,当它被计算机使用时用于指导计算机完成 如权利要求7所定义的功能。

说明书


在现存的关系数据库模式上建立 语义对象模型的计算机系统

    本发明总的说来与计算机系统相关,特别是在关系数据库中存储和检索信息的计算机系统。

    某些时候,大多数计算机用户需要存储和检索一些有序信息。典型地,信息存放在使用任何一种商业上可得到的众多数据库程序的计算机上。这些程序允许用户定义存储在数据库中的信息类型,并为用户提供表格,这些表格用于将数据输入数据库和为希望检索已存信息的人打印报告。

    一种最为流行的数据库类型是关系数据库。在关系数据库中,数据以行形式存放在具有一或多列的二维表中,这些列定义了数据存放的类型。照传统做法,对非熟练用户来说,用可以精确反映用户想法的方式来创建关系数据库表(也指数据库模式)是相当困难的。

    一种允许用户创建关系数据库模式的新方法是一种称为SALSATM的数据库建模系统,该系统由Wall Data Incorporated of Seattle,Washingtion开发。该系统允许用户创建存放在数据库中的数据模型。模型包括一个或多个用于表示完整实体地语义对象,如人,订货单,公司或其他任何的用户可以想到的唯一实体,这些实体将存储在数据库中。每个语义对象包括一个或多个存放关于语义对象的标识信息的属性,还包括用来定义两个或多个语义对象之间联系的对象连接属性。一旦用户完成了语义对象模型,SALSA数据库建模系统就对语义对象模型进行分析并创建对应的在计算机中存储数据的关系数据库模式。SALSA数据库建模系统的详细描述公开在共同转让的共同未决的美国专利申请系列号08/145,997中,该申请在此被作为参考,申请日为1993年10月29日。

    SALSA数据库建模系统的好处在于允许用户轻松定义存储在数据库中的数据及数据间的联系,不要求用户知道下面的数据库管理系统是如何控制存放在计算机内存和/或硬盘上的数据的。用户可以简单地操作语义对象的模型的构建框而不必关心它们同关系数据库概念,如表,列,主码和外码,交叉表等的关联。

    尽管在专利文献’997中描述的数据库建模系统表明在数据库建模技术上有了显著的提高,但尚没有一种机制可以在因传统关系数据库程序建立的现存数据库模式上自动生成语义对象模型。因此,需要一种系统,能够分析现存关系数据库,建立相应的语义对象模型。

    本发明是一种通过程序从现存关系数据库模式自动创建语义对象模型的计算机系统。模式分析是通过阅读关系数据库的目录信息并为数据库中定义的每张表创建对应的语义对象进行的。数据库表中定义的每个列用于建立对应语义对象中对应的单值属性。如果数据库目录包括联系信息,则对目录进行分析,判断表中是否包含外码。外码信息用于建立对应的用来定义两个或多个语义对象间的联系的对象连接属性和语义对象中的多值组属性(multivalued group attributes)或多值(multivalued),单值(simple value)属性。

    如果数据库目录不提供关联信息,则提示用户指出所关联的表及表中表示外码的列,然后该信息用于修改语义对象模型以反映语义对象模型中的联系和多值属性。

    前述内容及本发明的多个附带优点通过参照下面的详细描述,结合附图可以更易接受,更好地理解,其中:

    图1是一个典型关系数据库模式的图形表示;

    图2是同图1所示的数据库模式对应的由本发明创建的语义对象模型的图形表示;

    图3是根据本发明而制的计算机系统框图,通过运行程序在一个现存的关系数据库模式上建立一个语义对象模型;

    图4A-4D是一系列流程图,示出了本发明的计算机系统在一个现存关系数据库模式上建立一个语义对象模型的执行步骤;

    图5是一张流程图,示出了当关系数据库目录提供联系信息时本发明的计算机系统检测交叉表的执行步骤;

    图6是一张流程图,示出了本发明的计算机系统在关系数据库模式中检测应转换为语义对象模型中的多值组或多值、单值属性的表的执行步骤;

    图7A和7B是流程图,示出了当关系数据库目录提供联系信息时计算机系统将语义对象模型中的一个语义对象转换成一个对象连接属性的步骤;

    图8是一张流程图,示出了当关系数据库包含联系信息时计算机系统将交叉表转换为一对多值对象连接属性的步骤;

    图9A-9D是一系列流程图,示出了计算机系统在一个语义对象中建立多值组属性的步骤;

    图10是一张流程图,示出了计算机系统在一个同关系数据库模式中的表对应的语义对象中建立多值、单值属性的执行步骤;

    图11是一张流程图,示出了本发明的计算机系统允许用户选择一个同语义对象模型中的一个单值属性或组属性相关联的配置文件(profile)的执行步骤;

    图12A-12D是一系列流程图,示出了当对应的关系数据库目录不包括联系信息时本发明的计算机系统建立语义对象模型中的对象连接属性,多值组属性和多值、单值属性的执行步骤。

    如上所述,本发明是一个创建同计算机系统的内存中驻留的现存关系数据库模式对应的语义对象模型的计算机系统,一旦完成语义对象模型建立,语义对象模型允许用户通过操纵语义对象模型的部件轻松更新或修改数据库模式。用这种方式,用户可以在无需理解关系数据库管理系统或通常用来编辑模式的查询语言的情况下操纵关系数据库。

    图1示出了一个关系数据库模式的代表。该模式在艺术陈列馆的管理人员所操作的计算机中存储了数据库信息。该模式包括六张关系表。表5存储了陈列馆的客户信息。表5包括两列,标记为“Name”和“Phone”,分别存放了客户名称和客户的电话号码。正如那些对关系数据库技术熟悉的人所理解的,数据库管理系统维护一条记录用于指明表5的主码是列Name。表的主码标识了表中的唯一记录,也就是说,陈列馆的一个具体客户。

    表7存储了在阵列馆展出的艺术家信息。表7包括两列,标记为“Name”和“Birthday”,分别存放了艺术家的名称和艺术家的出生年。表7的主码定义为列Name的一个入口。

    表9存储了艺术家从事工作的不同媒体信息。该表包括两列,第一列标记为“Name”,用于连接关系表7第二列中的某一艺术家。第二列标记为“Medium”,存放了标识某一艺术家使用媒体的文本信息,如油,水彩,玻璃,陶瓷等。表7的主码定义为列Name和列Medium的组合项。

    表11存储了在陈列馆展示的某幅画的信息。该表包括三列,标记为“Name”,“Date Painted”和“Name-1”,分别存放画名,画的完成日期和用于同画的作家连接的表7的主码。表11的主码是列“Name”的一个值。

    表13存储了艺术陈列馆的客户购买作品的信息。该表包括四列,标记为:“Name-1”,“Date,”,“Price”和“Name-2”。标记为Name-1的列存放客户名称,标记为Date的列存放画的购买日期,标记为Price的列存放画的购买价格,最后,标记为Name-2的列存放画名。Name-1是对应表5的外码,Name-2是对应表11的外码。

    数据库的最后一张表是表15,它将表5中的记录同表7中的记录关联起来。表15包括两列:“Name-1”和“Name-2”,每一列分别存放表5和表7的主码。表15允许数据库管理系统将陈列馆的客户同在陈列馆展览的艺术家连接起来。表15的主码是列Name-1和Name-2的组合项。

    图1所示的数据库模式是用传统关系数据库程序创建的典型的关系数据库模式。不熟悉关系数据库编程的计算机用户会发现在没有专门数据库编程人员帮助的情况下建立该模式是困难的。创建图1所示的模式需要数据库概念方面的知识,如表,主码,外码及交叉表。

    如上所示,SALSA数据库建模系统允许用户在不知道关系数据库概念的情况下创建数据库模式。图2示出了同图1所示的关系数据库模式相对应的一个语义对象模型20。该语义对象模型由三个语义对象组成,语叉对象22表示陈列馆的一个客户,语义对象30表示在陈列馆展示作品的一个艺术家,语义对象40表示在陈列馆展出的画。

    对象模型20中的每个语义对象一些属性,这些属性表示了存储在数据库中的关于每个语义对象的信息。例如,语义对象22有一个标记为“Name”的属性,它表示客户名称,一个标记为“Phone”的属性表示存放在数据库中客户的电话号码。另外,客户包含一个标记为“Purchase”的组属性,它表示在陈列馆发生的一次销售行为。组属性Purchase由三个单值属性构成,表示销售发生日期,卖出画的价格和一个对象连接属性,该对象连接属性将由语义对象40的一个实例所表示的一幅具体的画同销售关联起来。能唯一定义语义对象的一个实例的属性在属性名左边用两颗星进行标记。在语义对象模型中定义两个语义对象之间联系的对象连接属性用方框圈住以区别于其他的语义对象中的单值或组对象。

    如专利申请’997中提出的,一些具有最小出现数和最大出现数和最大出现数属性,其最小和最大出现数在属性名的右下角作为脚标进行说明。最小出现数表示合法语义对象属性的实例的最小数,而最大值表示合法属性的实例的最大数。例如,语义对象22中标记为“Purchase”的组属性有一个最小出现数零,意味着陈列馆的某个客户没有购买活动。相似地,组Purchase的最大出现数为N,意味着某个客户可能从陈列馆进行过一次以上的购买活动。出现数也适用于对象连接属性。例如,语义对象22包括一个标记为“Artist”的对象连接属性,它将数据库中的一个客户同一个艺术家连接起来以跟踪客户感兴趣的艺术家。标记为“Artist”的对象连接属性是多值的,也就是说,它有最大出现数N,这意味着某客户可能对多个艺术家感兴趣。

    语义对象30表示在陈列馆展示作品的艺术家。语义对象Artist包括两个单值属性,标记为“Name”和“Birthday”表示艺术家的传记存储信息。属性Name作为唯一标识意味着数据库中没有两个艺术家有相同的名字。另外,语义对象30包括一个多值的单值属性,标记为“Medium”,它表示艺术室创作的不同作。最后,语义对象30也包括两个多值的对象连接属性,标记为“Painting”和“Customer”,分别将艺术家同画及客户连接起来。

    语义对象模型中最后一个语义对象40表示在陈列馆展出的画。语义对象40包括两个单值属性,标记为“Name”和“Date-Painted”。画名表明在数据库中存储的画名是唯一的。语义对象40也包括两个对象连接属性。第一个对象连接属性标记为“Artist”,表示画与艺术家之间的联系。该联系的出现数是1.1,表示一幅画必须至少有一个艺术家并且最多有一个艺术家。标记为“Customer”的对象连接属性表示画与客户之间的联系。该属性出现数为O.N,表示对某幅画可能没有客户对其感兴趣,也有可能有多个客户对其感兴趣。

    如上所示,语义对象模型的好处如图2所示,同常规的数据库程序不同,用户可以通过增加或删除语义对象,或者在语义对象中增加或删除属性来更新或修改数据库。通过操纵语义对象模型的部件,用户可以不必理解建立图1模式所需的关系数据库概念,而只需理解数据库中所存储的数据的映射就可以创建或修改关系数据库。

    如上所示,SALSA数据库建模系统是由Wall Data Incorporated开发的,它允许用户创建语义对象模型并对模型进行分析从而创建相应的关系数据库模式。但是,许多用户已经使用当前可用的关系数据库程序创建了数据库模式,如Microsoft Access,或Borland Paradox。为了允许非熟练用户轻松更新或修改这些数据库,本发明可以从现存关系数据库模式建立相应的语义对象模型。

    现在参看图3,它示出了据本发明实现的计算机系统。该计算机系统一般包括一个中央处理单元70,一个内部存储器72和一个永久存储装置,如磁盘驱动器74。命令通过键盘78和点击设备,如鼠标80进入CPU。CPU生成图形用户界面在显示屏或监视器76上进行显示。

    在存储器72中驻留有一组程序指令,它引导CPU来分析现存的关系数据库模式以创建相应的对象模型,对象模型在显示器76上展现给用户。程序指令可以永久存储在只读存储器上,或者由软盘CD-ROM或者连到CPU的调制解调器读入,由计算机系统接收。在前述本发明实施例中,CPU70可以用面向对象语言,如C++来编程。但是,那些对C++熟练的人员会认识到如果他们愿意也可以使用其他的编程语言。

    下面的流程图描述了为了由现存的关系数据库模式生成语义对象模型,通过中央处理单元实现的计算机程序操作。如专利申请’997提出的,计算机系统可以使用一系列C++类来存储语义对象模型的一个表示。为了参照方便,这些对于理解本发明有重要意义的类的数据成员再罗列在这里。每个类的用于建立语义对象模型的过程(Procedures)或方法没有列出,但过程操作会在下面进行讨论。那些精通计算机编程技术的人员可以据本发明下面的描述建立所需方法。

    类集(Class Album)数据成员数据类型名称文本创建日期日期创建者文本内容无序的指针列表语义对象类数据成员数据类型标记号整数名称文本标题文本描述文本内容有序的指针列表单值类配置文件数据成员数据类型标识号整数名称文本标题文本描述文本标识号状态(唯一,非唯一,空)数值类型任何DBMS数据类型长度整数格式文本初始值文本最小出现数整数最大出现数整数派生属性指针列表参照配置文件指针列表对象连接类配置文件数据成员数据类型标识号整数名称文本标题文本描述文本标识号状态(唯一,非唯一,空)最小出现数整数最大出现数整数基语义对象指针派生属性指针列表参照配置文件指针列表单值属性类数据成员数据类型标识号整数名称文本描述文本标题文本标识号状态(唯一,非唯一,空)数值类型任何DBMS数据类型长度整数格式文本初始值文本最小出现数整数最大出现数整数包容器指针指针基配置文件指针组类配置文件数据成员数据类型标识号整数名称文本标题文本描述文本标识号状态(唯一,非唯一,空)最小出现数整数最大出现数整数最小计数整数最大计数整数格式文本派生属性指针列表内容指针列表参照配置文件指针列表组属性类数据成员数据类型标识号整数名称文本标题文本描述文本标识号状态(唯一,非唯一,空)最小出现数整数最大出现数整数最小计数整数最大计数整数格式文本包括器指针指针内容有序的指针列表基配置文件指针公式属性类数据成员数据类型标识号整数名称文本标题文本描述文本表达式文本公式类型(不存储,存储)数值类型任何DBMS数据类型长度整数必需标志(是,否)格式文本包容器指针指针基配置文件指针对象连接属性类数据成员数据类型标识号整数名称文本描述文本标题文本标识号状态(唯一,非唯一,空)最小出现数整数最大出现数整数包容器指针指针基配置文件指针配对指针指针双亲属性类数据成员数据类型标识号整数名称文本标题文本描述文本包容器指针指针配对指针指针基配置文件指针子类型属性类数据成员数据类型标识号整数名称文本标题文本描述文本必需标志(是,否)包容器指针指针基配置文件指针配对指针指针子类型组属性类数据成员数据类型标识号整数名称文本标题文本描述文本必需标志(是,否)最小计数整数最大计数整数包容器指针指针内容有序的指针列表

    现在参看图4A-4D,图中示出了根据本发明编制的计算机系统的整个操作。从步骤100开始,计算机系统提示用户输入存在于计算机内存中的用于创建关系数据库模式的关系数据库程序的品牌或类型。一般说来,有两种类型的关系数据库。第一类具有包含联系信息的目录,将在下面进行描述,联系信息指的是表中的哪些列被定义为对应数据库中其他表的外码。第二类数据库在数据库目录中不包含联系信息。本发明被设计用来适用于这两类数据库。

    用户在输入用于创建现存数据库模式的关系数据库程序的类型后,该程序使用一张存储在计算机内存或磁盘驱动器上的检查表(未示出)来确定步骤102中目录是否包含联系信息。

    如果目录不包含联系信息,计算机系统则使用图12A-12D所示的步骤来创建相应的语义对象模型,这在下面将进行描述。

    如果关系数据库的目录包含联系信息,计算机系统首先在步骤106打开关系数据库目录。该目录包括数据库中每张关系表的定义以及一张具体表中每一列的定义。

    在步骤108,计算机系统首先创建上面定义的集类的一个实例。集类用于跟踪语义对象模型中的每个语义对象。在创建集类实例之后,计算机系统从步骤110开始一个循环过程,在步骤110对数据库目录中定义的每张表进行分析。在步骤112,计算机系统为在数据库目录上定义的每张表建立一个语义对象类的实例。语义对象类的每个实例表示相应的语义对象模型中的一个语义对象,该语义对象被显示给用户。

    语义对象类的实例在步骤114被赋予一个唯一的标识号。在步骤116,名称(Name)成员变量被初始化为创建语义对象所参照的在数据库中定义的表名。在步骤118(图4B),标题(Caption)和描述(Desription)成员变量被初始化为空字符串。在图1和图2所示的例子中,步骤110-118将据表5创建客户(Customer)语义对象22,据表7创建艺术家(Artist)语义对象30及据表11创建画(Painting)语义对象11。

    如上所示,为语义对象模型所创建的集类对象的实例维护了一张包含在模型中的每个语义对象的列表。在步骤120,一个指针被放到集的内容列表中,该指针指向新创建的语义对象类的实例。

    计算机系统为每个所创建的语义对象创建对象连接配置文件类的一个实例。如专利申请’997所描述的,配置文件用作创建相应属性的模板。配置文件维护了一张由自己所派生的属性列表。如果用户改变了特征值(Property),也就是说配置文件的或成员变量的缺省值,那么计算机系统将更新据配置文件创建的每个派生属性的特征值,这样就可以简单而有效地改变全局属性的特征值。

    在步骤124,对象连接配置文件的成员变量标识号(ID)被赋予一个唯一数。对象连接配置文件的成员变量名称(Name),标题(Caption)和描述(Description)在步骤126据相应的语义对象进行初始化。成员变量标识号状态(ID-Status)在步骤128被初始化为“空(none)”。成员变量标识号状态可置为枚举值“空”,“非唯一(non-unique)”,或“唯一(unique)”中的任一个值。在步骤130,基语义对象(Base Semantic Object)指针被初始化为语义对象的地址,该语义对象导致了对象连接配置文件的建立。

    现在参看图4C,一旦建立了语义对象和对象连接配置文件,计算机系统在步骤开始一个循环处理,在步骤140将对关系数据库一张表中所定义的每一列进行分析,创建上面步骤142定义的单值属性(SimpleValue Actribute)类的一个实例。

    例如,表5中标记为“Phone”的列用于创建客户语义对象22的标记为“Phone”的单值属性。新创建的单值属性,即成员变量ID在步骤144被赋予一个唯一数,成员变量Description和Caption在步骤146被初始化为空字符串。在步骤148,成员变量最小出现数(MinimumCardinality)被初始化为0,成员变量最大出现数(MaximumCardinality)被初始化为1。在步骤150,单值属性的包容器指针被初始化为属性逻辑存在的语义对象的地址。典型地,包容器指针可以指向语义对象类的一个实例,也可以指向一个组属性,这将在下面讨论。

    一旦创建了单组属性,计算机系统会在步骤152创建单值配置文件(Simple Value Profile)类的一个实例。在步骤154,成员变量Name,Description,Caption,ID-Status,Minimum Cardinality和Maximum Cardinality将据前面创建的相应的单值属性进行初始化。

    现在参考图4D,一个指向相应单值属性的指针被放到单值属性配置文件的派生属性列表中,并且在步骤156配置文件的地址用于初始化相应属性的基配置文件(Base Profile)指针。在步骤160,计算机系统判断是否表中定义的所有列都已分析完毕。如果没有,计算机系统回转到步骤140(图4C)。一旦一张具体表中的所有列都分析完毕,计算机系统在步骤162判断是否数据库目录中定义的所有表都已分析完毕。如果没有,计算机系统回转到步骤110(图4A)并如上描述创建语义对象类的另一个实例。

    在计算机完成图4A-4D所示的步骤后,相应的语义对象模型将包含多个语义对象,每个语义对象含有一个单值属性,该单值属性对应于在相应的关系数据库表中定义的每个列。在创建了语义对象之后,计算机系统将对存储在数据库目录中的联系信息进行解释以创建合适的对象连接属性和多值组或多值、单值属性。

    为了判断数据库目录中的某张表是否应翻译为一个多值的对象连接属性而不是一个语义对象,计算机系统扫描数据库目录,查找那些含有定义为外码列的交叉表。在图1所示的例子中,表15是一张交叉表,因为它的标记为“Name-1”和“Name-2”的列分别是表5和表7的外码。

    如图5所示,计算机系统运行程序来检测交叉表,该程序在步骤200开始一个外循环,分析数据库目录中每张表的定义。在步骤202,计算机系统开始一个内循环来分析一张表中定义的每一列。对每一列,计算机系统在步骤204读出存储在目录中的联系信息。在步骤206,计算机系统判断该列是否定义为外码。如果不是,计算机系统运行程序以确定该表不能作为交叉表,并且对数据库目录中定义的下一张表进行处理。

    如果步骤206的结果为是,则计算机系统判断是否表中的所有列都已分析完毕。如果没有,计算机系统回转到步骤202并分析表中剩下的列。如果表中的每一列都被定义为外码,计算机系统在步骤210将该表标志为交叉表。然后在步骤212会将表名加到交叉表列表中。

    将表加入到交叉表列表中后,处理进行到判断框214,在这里计算机系统判断数据库目录中的所有表是否已分析完毕。如果没有,则对数据库目录中的下张表进行分析。一旦数据库目录中的所有表都已分析完毕,计算机系统将具有一个在数据库模式中定义的交叉表列表并且处理在步骤216停止。

    一旦找到数据库中所有的交叉表,计算机系统则对数据库目录进行扫描以找到那些应翻译为多值组属性或多值、单值属性。例如,图1所示的表9并不表示一个语义对象但却包含着一条记录,记录内容是一名艺术家创作了多个作品中的哪一个。因此,计算机系统可以进行以下操作,即删除为此表而建的语义对象模型并且用语义对象30中一个标记为“Medium”的单值属性来替代它,该单值属性具有最大出现数N。

    如图6所示,计算机系统在步骤240开始一个循环,对数据库目录中先前没被标识为交叉表的每张表进行分析。在判断框242,计算机系统判断表的主码是否包括两个或两个以上的列。主码不包括两个或两个以上列的表不被模型化为多值组或多值、单值属性。然后处理进行到步骤244,在这里判断是否数据库目录中的所有非交叉表都已分析完毕。

    如果步骤242的结果为是,则主码至少包括两列,计算机系统在步骤246开始一个内循环,对组成表主码的每个列进行分析。在步骤248,读出为组成表主码的每个列而定义的联系信息。在判断框250,计算机系统判断所分析的列在另一张关系表中是否也作为主码列来进行定义。如果不是,计算机系统在步骤252判断是否定义为表的主码的所有列都已分析完毕。如果不是,处理回转到步骤246,对定义为主码的下一个列进行分析。如果步骤252的结果为是,则处理进行到步骤244并对数据库目录中的下一张非交叉表进行分析。

    如果步骤250的判断结果为是,计算机系统则在步骤254判断是否所分析的表有一个以上的非外码列。如果不是,该表被标识为多值、单值属性并且在步骤256将表名加入到多值、单值属性列表中。如果该表具有一个以上的非外码列,该表则被标识为多值组并且在步骤258将表名加入到多值组列表中。除了将该表加入多值组列表外,计算机还将记录定义为表主码的列个数,原因在下面解释。

    然后处理进行到步骤244,判断数据库目录中的所有非交叉表是否已分析完毕。如果为否,在步骤240分析目录中定义的下一张表。如果所有的非交叉表都已分析完毕,处理在步骤260结束。计算机系统在执行了图6所示的步骤后,数据库中所有表示多值组及多值、单值属性的表的列表将得以创建。

    在执行了图6所示的步骤后,计算机系统然后搜索数据库目录,查找满足下面条件的表,即这些表未被标识为交叉表,多值组,或多值、单值属性并且这些表包含对应数据库其他表的外码。如果外码卡是表主码的组成部分,本发明将外码翻译为相应的对象连接属性,该属性定义了两个语义对象之间的联系。在图1所示的例子中,表11包括一个标记为“Name-1”的列,该列应翻译为一个对象连接属性,将语义对象30艺术家同语义对象40画连接起来。

    如图7A和7B所示,计算机系统在步骤280开始一个循环,对数据库中未被标识为交叉表,多值组,或多值、单值属性的每张表进行分析。在步骤281,计算机系统开始一个内循环,对余下表中所定义的每一列进行分析。在步骤282读出列的联系信息并且在步骤284判断该列是否被定义为对应关系数据库另一表中某列的外码。

    那些对技术熟练的人员会认识到外码可以定义为表中的多个列。在这种情况下,在步骤284必须分析整个外码以便对整个外码只创建一对对象连接属性。如果所分析的列不是外码,则处理进行至步骤286,在这里判断表中的所有列是否都已分析完毕。如果为否,处理回转到步骤281并分析表中的下一个列。

    一旦表中的所有列分析完毕,处理进行到步骤288,在这里判断是否数据库目录中所有余下的表都已分析完毕。如果为否,处理回到步骤280并且对下一个非交叉,多值组或多值属性表进行分析。这一处理不断进行直到所有这样的表都已分析完毕,处理在步骤289停止。

    如果判断框284的结果为是,意味着表中包括一个对应另一张表某列的定义为外码的列,计算机系统在步骤290创建对象连接属性类的两个实例。

    在对象连接属性的实例创建之后,该属性被放入相应的语义对象中以表示由外码定义的联系。例如,如图1所示,表7存储了关于某个艺术家的数据,它通过存储在标记为Name-1的列中的外码同存储某幅画数据的表11连接。该联系在相应的语义对象模型(在图2所示)中通过语义对象30中标记为“Painting”的对象连接属性和语义对象40中相应的标记为“Artist”的对象连接属性进行表示。

    为了在逻辑上将新创建的对象连接属性放入正确的语义对象中,计算机系统首先在步骤292在同下面两类语义对象相关的对象连接配置文件的派生属性列表中放入一个指向新创建的对象连接属性的指针,这两类语义对象指表示具有外码的表的语义对象和表示该外码所参照的表的语义对象。在上面所述的艺术家-画-例中,一个指向对象连接属性的指针会被放到同艺术家语义对象30和画语义对象40相关的对象连接配置文件的派生属性列表中。另外,对象连接属性的基配置文件指针被置为同对象连接属性相关的对象连接配置文件的地址。

    在步骤294,对象连接属性的成员变量会据同它们相关的对象连接配置文件进行初始化。然后在步骤295设置对象连接属性的配对指针的彼此指向。

    在步骤296(图7B),一个指向同具有外码的表相关的对象连接属性的指针被加入到同该外码所参照的表相关的语义对象的内容(Content)列表中。在步骤298,一个指向同外码所参照的表相关的对象连接属性的指针被加入到同具有该外码的表相关的语义对象的内容列表中。在步骤300,对象连接属性的包括器指针被更新为逻辑上被包括的语义对象的地址。

    在步骤302,包含在同不具有外码的表相关的语义对象中的对象连接属性的最大出现数被初始化为N,表示一对多联系。例如,在上面所述的艺术家-画-例中,可以看到,艺术家语义对象30中标记为“Painting”的对象连接属性的最大出现数为N,表示一名艺术家可以创作出多幅画这一事实。在步骤304,计算机系统回转到步骤280(图7A)并且对数据库目录中的下一张表进行分析。

    那些对技术熟练的人员会认识到图7A和7B所示的步骤将把一对一联系错误地标识为一对多联系。但是,用户可以在整个语义对象模型完成后通过修改对象连接属性的最大出现数属性轻易地改正这一错误。另外一个方法是,计算机系统可以浏览数据库目录以判断外码是否唯一。如果唯一,同没有外码的表相关的语义对象中的对象连接属性的最大出现数被置为1。

    在表示一对多联系(或一对一联系,如果外码唯一)的对象连接属性被加入到语义对象模型之后,计算机系统接着对交叉表列表进行分析以在语义对象模型中创建表示多对多联系的多值对象连接属性。

    现在参看图8,计算机系统从步骤350开始通过对交叉表列表中的每张表进行分析来创建表示多对多联系的对象连接属性。在步骤352,创建了对象连接属性类的两个实例。在步骤354,一个指向新创建的对象连接属性的指针被加入到同交叉表中的外码所参照的表相关的对象连接配置文件的派生属性列表中。对象连接属性的成员变量在步骤356据相应的对象连接配置文件进行初始化。然后在步骤358对两个对象连接属性的配对指针的彼此指向进行设置。

    在步骤360,计算机系统通过在相应的语义对象的内容列表中加入一个指向对象连接属性的指针逻辑地将对象连接属性放入相关的语义对象中。例如,如图1所示,表15是一张交叉表,表示客户同艺术家之间多对多联系。在图2所示的语义对象模型中,该交叉表被表示为语义对象22中标记为“Artist”的多值对象连接属性和语义对象30中标记为“Customer”的多值对象连接属性。因此,据同客户语义对象22相关的对象连接配置文件初始化的对象连接属性被加入到艺术家语义对象30的内容列表中,据同艺术家语义对象30相关的对象连接配置文件初始化的对象连接属性被加入到客户语义对象22的内容列表中。每个对象连接属性的包括器指针在步骤362被更新为逻辑上被包括的语义对象的地址。在步骤364,两个对象连接属性的最大出现数被初始化为“N”。

    因为计算机系统初始地为在数据库中找到的每张表创建一个语义对象,对在数据库模式中定义的每张交叉表来说,语义对象会被不正确地创建。因此,计算机系统在步骤366删除语义对象及其相应的每交叉表而建的对象连接配置文件。

    在步骤368,计算机系统判断是否交叉表列表中的每张表都已分析完毕。如果为否,系统回转到步骤350并检索交叉表列表中的下一个入口。一旦交叉表列表中的所有入口分析完毕,处理完成。

    在图7A-7B及图8所示的步骤完成之后,语义对象模型会包含表示一对多和多对多联系的对象连接属性。

    图9A-D示出了本发明将应放入多值组属性中的属性正确模型化的步骤。如图2所示,客户语义对象22包括一个标记为“Purchase”的多值组。该多值组包括两个单值属性,标记为“Date”和“Price”,还有一个标记为“Painting”的对象连接属性,该属性将语义对象22同语义对象40关联起来。由于多值组存储在关系数据库中它们自己的表中,计算机系统将在第一轮分析期间,对应应该多值组表不正确地创建一个语义对象。因此,图9A-9D所示的操作步骤会删除为存储多值组数据的表而创建的语义对象并且将对应于该表的列的属性放入适当的语义对象中的一个多值组属性中。

    从步骤380开始,计算机系统对通过图6所示步骤建立的多值组的列表中的入口按它们在主码中的列数进行排序。一旦排序完成,计算机系统在步骤382从具有最大列数的入口开始处理多值组列表中的每个入口。

    在步骤384,计算机系统对多值组列表中的每个入口进行分析。对列表中的每个多值组表,计算机系统在步骤386创建一个组属性类的一个实例。在步骤388为成员变量ID分配一个唯一值并且在步骤390将成员变量Caption和Description初始化为空字符串。在步骤392,该组的最小出现数被初始化为O,最大出现数被初始化为N。

    每个组属性存储了成员属性的最小数一个指示标志,该成员属性对合法完整的组来说必须在组中按序提供。在步骤394,该存储在成员变量Minimum Count中的数被初始化为O。相似地,成员变量MaximumCount存储了成员变量的最大数,该成员变量对合法组来说在组中按序提供。

    现在参看图9B,在步骤398,组属性的包括器指针被置为同外码所参照的表相关的语义对象的地址,该外码是多值组表的主码的一部分。最后在步骤400,计算机系统在包含组属性的语义对象的内容列表中加入一个指向新创建的组属性的指针。

    一旦创建了组属性,计算机系统在步骤402创建组配置文件类的一个相应实例。在步骤404成员变量ID被分配一个唯一值并且在步骤406成员变量Name,Description,Caption,Minimum Cardinality,MaximumCardinality,Min count和Max Count据相关的组属性进行初始化。

    在计算机系统创建语义对象模型的第一轮期间,计算机系统将为作为主码一部分的外码列创建一个单值属性。因此,计算机系统在步骤408从语义对象模型删除某个单值属性(或多个单值属性,如果外码被定义为多列)及其相应的配置文件。

    一个多值组表中的列可能会包含一个被不正确地标识为单值属性的外码。因此,计算机系统在步骤410开始循环处理,分析表中余下的列,也就是那些未定义为主码一部分的列。在步骤412,计算机系统读出每列的联系信息并在步骤414判断该列是否为外码。如果不是,计算机系统执行至步骤416,在这里判断是否表中所有的列都已分析完毕。这一过程不断重复直至表中所有的列都分析完毕。

    如果步骤414的应答为是,表示该列被定义为外码,计算机系统执行图9C所示的步骤。接着,如果外码被定义为两或多列,则对包括在外码中的每一列执行图9C的步骤。从步骤420开始,计算机系统从语义对象模型删除开始为外码列创建的单值属性及配置文件。在步骤422,计算机系统接着创建对象连接属性类的两个实例。在步骤424,对象连接属性的成员变量据它们相应的同为多值组属性表创建的语义对象相关的对象连接配置文件和同据外码所参照的表而创建的语义对象相关的对象连接配置文件进行初始化。

    在步骤426,将对对象连接属性的配对指针的彼此指向进行设置。在步骤428,一个指向同据多值组表创建的语义对象相关的对象连接属性的指针被加入到同外码所参照的表相关的语义对象的内容列表中。相似地,在步骤430,一个指向同据外码所参照的表创建的语义对象相关的对象连接属性的指针被加入到同多值组表相关的语义对象的内容列表中。

    在步骤432,每个对象连接属性的配对指针被更新,改为指向它们的包括语义对象。在步骤434,包括在同外码所参照的表相关的语义对象在内的对象连接属性的最大出现数被初始化为“N”。在步骤436,处理返回到图9B中的步骤416并对表的余下列进行分析。

    在多值组属性表中的每一列都已分析完毕后,处理进行到图9D所示的步骤。在步骤440,原先为多值组表而创建的语义对象的内容列表被拷贝到新创建组属性的内容列表中。

    在步骤442,组属性配置文件的派生属性列表被更新,将新组属性包括进来,组属性的基配置文件指针则被置为指向新创建的组属性与配置文件。在步骤444,组属性的包括器指针被置为包括语义对象的地址。

    多值组中的任何对象连接属性都同另一个语义对象中相应的对象连接属性配对。例如,如图2所看到的,标记为“Purchase”的组属性包括一个标记为“Painting”的对象连接属性,该对象连接属性包括在语义对象22中。同该对象连接属性相配对的语义对象40中相应的标记为“Customer”的对象连接属性。在该对对象连接属性被创建时,对象连接属性“Customer”初始时被创建为对应于为标记为Purchase的多值组而定义的语义对象。但是,本发明不允许对象连接属性同带有组属性的语义对象相关。但是,位于配对语义对象中的对象连接属性必须被更新,改为对多值组被包含的语义对象的参照。在图2所示例子中,标记为“Customer”的对象连接属性必须据为语义对象22而创建的对象连接配置文件重新初始化。

    为了完成这一处理,计算机系统在步骤446开始循环,对包含多值组的语义对象的内容列表进行检索。在步骤448,计算机系统开始分析内容列表中的每个入口。在步骤450,计算机系统读出内容列表中每个属性的类型,也即单值,组,或对象连接属性。在步骤452,计算机系统判断是否内容列表中的属性是一个组。如果是,计算机系统在步骤454得到组属性的内容列表并且处理返回到步骤448,在这里对新的内容列表中的每个属性进行分析。这一循环处理不断持续直到没有附加的嵌套(nested)组属性。

    如果步骤452的判断结果为否,计算机系统在步骤456判断该属性是否为一个对象连接类型的属性。如果是,计算机系统在步骤458检索由该属性的配对指针所参照的对象连接属性。在步骤460,基于同组属性所加入的语义对象相关的对象连接配置文件,由配对指针所参照的对象连接属性被重新初始化。如上所解释的,在图2所示的例子中,语义对象40中标记为“Customer”的对象连接属性原先初始化时据同标记为“Purchase”的语义对象相关的对象连接配置文件进行创建。步骤460所起的作用是根据由客户语义对象22所创建的对象连接配置文件对该对象连接属性重新初始化。在该对象连接属性完成重新初始化后,处理进行至步骤462,在这里判断内容列表中的所有属性是否都已分析完毕。如果没有,处理返回步骤448并对下一个入口进行分析。在步骤464,最初为多值组表而创建的语义对象及其相应的对象连接配置文件被从语义对象模型中删除。

    在对交叉表和多值组表分析完毕后,计算机系统对语义对象模型进行更新,以纠正多值、单值属性先前被标识为它们自己的语义对象的错误。从图10中步骤490开始,计算机系统对多值、单值属性列表中的每一个入口进行分析。在步骤492,单值属性的包括器指针被更新为同表的外码所参照的表相关的语义对象的地址。在步骤494,计算机系统将一个指向新加入的单值属性的指针加入包括语义对象的内容列表中。语义对象和其相应的为多值、单值属性而创建的对象连接配置文件在步骤496被从语义对象模型中删除。在步骤498,计算机系统判断多值属性列表中的所有入口是否都已分析完毕。如果为否,处理如上所述继续进行直到所有不适当分类的语义对象被删除并且相应的多值、单值属性被插入到适当的语义对象中。

    为了对图10的逻辑进行解释,不得不参照图1,当语义对象模型被初始创建时,计算机系统会为表9创建一个语义对象和相应的对象连接配置文件。但是,由于一名艺术家可能用多种媒体作画,将为表9而创建的语义对象中的标记为“Medium”的单值属性应正确地放在为表7而创建的语义对象中。因此,逻辑操作删除为表9而创建的语义对象和相关的配置文件并将标记为“Medium”的单值属性放入语义对象30中。

    如上所描述的,本发明为数据库中的每张表创建一个语义对象。表中的每一列被转换为一个相应的单值属性及一个相应的单值属性配置文件。这将生成一个为语义对象模型中的每个属性而创建的配置文件。但是,许多单值属性可能据相同的配置文件来创建。例如,许多标记为“Name”的属性可以据一个名为“标识符-文本(identifier-text)”的通用属性配置文件来创建,该配置文件由SALSA数据库建模系统预先定义。因此,本发明允许用户标识由公共配置文件派生出的属性。

    如图11所示,在步骤522开始一个循环处理,通过对集的内容列表中所定义的每个语义对象进行分析来对公共配置文件进行分析。在步骤524,计算机系统开始一个内循环,对某个给定语义对象的内容列表中的每个单值属性进行分析。在步骤526,相应的配置文件的特性值(即它的成员变量的值)被显示在特性表单上。特性表单是图形用户界面上出现的一个窗口(未示出),显示了特性名和其相应值。在步骤528,计算机系统判断是否配置文件中的特性同属性的特性不同。如果为是,在步骤530提示用户指明用户是否希望为相应属性选择一个新的配置文件。如果用户希望选择一个新的配置文件,在步骤534请用户指明哪一个配置文件同该属性相关。在步骤536,一个指向该属性的指针被加入到所选配置文件的派生属性列表中。在步骤538,该属性的基配置文件指针被更新为新选择的配置文件的地址。最后,在步骤540,一个指向旧配置文件的指针被加入到待删除的配置文件的列表中。

    如果步骤530的判断结果为否,意味着用户不希望选择一个新的配置文件,处理进行至步骤550并且计算机系统判断为所分析的语义对象中的所有单值属性而配置的所有配置文件是否都已分析完毕。如果没有,处理回转至步骤524。如果为一个语义对象中的所有单值属性而配置的配置文件都已分析完毕,计算机系统判断是否集中的所有语义对象都已分析完毕。如果没有,处理返回至步骤522并且对集中的下一个语义对象进行分析。

    一旦集中的所有语义对象都已分析完毕,则计算机系统在步骤554删除待删除配置文件列表中的每个配置文件并在步骤556终止处理。

    以上讨论描述了当DBMS目录提供联系信息时如何从数据库模式创建语义对象模型。但是,一些数据库程序并不存储联系信息。因此,为了为这些类型的数据库创建语义对象,有必要提示用户指明数据库中不同的表是如何关联的。图12A-12D示出了本发明所执行的一系列步骤,这些步骤为不提供联系信息的数据库创建相应的语义对象模型。

    从步骤600开始,计算机系统首先执行图4A-4D所示步骤。如上所指出的,这样会创建一个语义对象模型,该模型包括为在关系数据库目录中定义的每张表而建的多个语义对象,还包括为一张表中定义的每一列而建的单值属性。

    在步骤602,计算机系统在图形用户界面上提供一个对话框,允许用户指明两个相关联的语义对象。在步骤604,计算机系统提示用户指明联系双方的最大出现数。联系类型可以是一对一,一对多,多对一,或多对多。

    在步骤606,计算机系统判断用户所指明的联系是否是多对多类型。如果是,则计算机系统在步骤608请用户标识同数据库中相应的交叉表相关的语义对象。在步骤610,计算机系统将同所标识的语义对象相关的关系数据库表加入交叉表列表中。然后处理进行至步骤612,在这里用户可以停止或继续提供联系信息。

    如果步骤606的判断结果为否,表明联系不是多对多类型,处理进行至图12B所示的步骤620。在步骤620,计算机系统判断用户指明的联系是否是一对多或多对一类型。如果是,在步骤624提示用户标识出同联系多方的语义对象相关的表的外码。然后在步骤626,计算机系统判断该外码是否是该表主码的一部分。如果是,处理进行至步骤628并且计算机系统判断该表是否有一个以上的非外码列。在步骤630,具有一个以上非外码列的表被加入到多值组表的列表中。另外,多值组表的主码的列数也被存储起来。如果步骤628的判断结果为否,该表被定义为表示一个多值、单值属性并在步骤632被加入到多值、单值属性列表中。然后处理返回图12A中的步骤612。

    如果步骤626的判断结果为否,则计算机系统判断该语义对象必然通过一个一对多的对象连接属性进行关联。因此,处理进行至图12C所示的步骤650,在这里创建对象连接属性类的两个实例。在步骤652,指向对象连接属性的指针被加入对象连接配置文件的派生属性列表中,该对象连接配置文件同具有外码的表及外码所参照的表相关。在步骤654,对象连接属性据相应的对象连接配置文件进行初始化。

    在步骤656,对新创建的对象连接属性的配对指针的彼此指向进行设置。在步骤658,一个指向对象连接属性的指针以上面所描述的方式被加入到正确的语义对象的内容列表中。

    在步骤660,每个对象连接属性的包括器指针被更新为它的包括语义对象的地址。在更新包括器指针之后,同没有外码的表相关的语义对象中的对象连接属性的最大出现数被置为“N”。

    在步骤664,计算机系统删除为外码列而创建的单值属性和配置文件,该外码列现由对象连接属性表示。然后处理返回图12A中所示的步骤612。

    如果图12B中步骤620的判断结果为否,则联系定义为由一个一对一的对象连接属性来表示。因此在步骤622请计算机系统的用户标识出同关联的语义对象相关的表中,哪些列是外码。然后处理进行到图12D所示的步骤。

    从步骤670开始,计算机系统创建对象连接属性类的两个实例。在步骤672,指向对象连接属性的指针被加入到同具有外码的关系表相关的对象连接配置文件和同外码所参照的表相关的对象连接配置文件的派生属性列表中。在步骤674,据相应的配置文件对对象连接属性进行初始化。在步骤678对对象连接属性的配对指针的彼此指向进行设置。

    在步骤680,计算机系统用一个指向正确的对象连接属性的指针以上面所描述的方式更新该语义对象的内容列表。然后在步骤682,更新该对象连接属性的包括器指针,更新为它们的包括语义对象的地址。

    在步骤684,两个对象连接属性的最大出现数均置为1。在最大出现数被初始化后,计算机系统接着删除为外码列而创建的单值属性和配置文件并且处理返回图12A所示的步骤612。

    可以理解,本发明执行操作,由一个现存的关系数据库模式创建一个语义对象模型。语义对象模型允许用户轻松操作或修改现存的关系数据库而不要求用户理解已存的数据库管理系统或数据库查询语言。

    尽管例示和描述了本发明的优选实施例,在不偏离本发明的宗旨和范围的前提下允许进行多种修改。因此本发明的保护范围列于下面的权利要求书中。

在现存的关系数据库模式上建立语义对象模型的计算机系统.pdf_第1页
第1页 / 共55页
在现存的关系数据库模式上建立语义对象模型的计算机系统.pdf_第2页
第2页 / 共55页
在现存的关系数据库模式上建立语义对象模型的计算机系统.pdf_第3页
第3页 / 共55页
点击查看更多>>
资源描述

《在现存的关系数据库模式上建立语义对象模型的计算机系统.pdf》由会员分享,可在线阅读,更多相关《在现存的关系数据库模式上建立语义对象模型的计算机系统.pdf(55页珍藏版)》请在专利查询网上搜索。

一种用于据现有的关系数据库模式创建语义对象模型的计算机系统。计算机系统分析关系数据库模式中的目录信息,并且为目录中定义的每张表创建一个语义对象。对于为表所定义的每个列,将单值属性加入为该表所创建的语义对象中。接着,系统分析存储在目录中的联系信息以生成定义两个或多个语义对象之间联系的对象连接信息及生成多值组属性和多值、单值属性。若数据库目录不包括联系信息,则提示用户指明相关的语义对象。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1