CN1137320A - 用于建立关系型数据库模式的语义目标模型化系统 - Google Patents
用于建立关系型数据库模式的语义目标模型化系统 Download PDFInfo
- Publication number
- CN1137320A CN1137320A CN94194493A CN94194493A CN1137320A CN 1137320 A CN1137320 A CN 1137320A CN 94194493 A CN94194493 A CN 94194493A CN 94194493 A CN94194493 A CN 94194493A CN 1137320 A CN1137320 A CN 1137320A
- Authority
- CN
- China
- Prior art keywords
- attribute
- semantic objects
- semantic
- formula
- group
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Abstract
一种基于计算机的使得用户能够生成关系型数据库模式的系统。该系统使得用户能够建立数据库模式的语义目标数据模型。该语义目标数据模型由一个或多个语义目标来定义,每个语义目标都包括一个或多个用于描述语义目标特性的属性。将这些属性定义成:简单值属性,用于描述语义目标的一单个特性;组属性,包括一个或多个共同地描述语义目标特性的成员属性;公式属性,用于建立描述语义目标的特性的计算;或者目标链属性,用于定义两个或多个语义目标之间的关系。在建立语义目标模型之后,系统对语义目标进行有效性验证以保证无模型建立错误,并将该语义目标及其所包含的属性转换成可按语义目标数据模型所定义的来存贮数据的多个关系型数据库表。
Description
本发明一般涉及计算机系统,特别是涉及能够生成数据库模式的系统。
随着计算机成本的降低,越来越多的人们在购买具有优越计算能力和数据存储能力的计算机系统。这类计算机系统除了用在字处理和电子数据表格程序等方面,还有另外一个主要用途,这就是使用商业上用的数据库管理系统(DBMS)产品来存储和检索数据。例如,家用计算机系统的用户可能希望将有关投资业务的信息存储在计算机中,并能够随时地访问这些信息。类似地,一家小公司的所有者可能希望使用计算机系统来跟踪其客户、库存和销售订单。尽管用户可以使用商业用的数据库程序来存储和检索这类信息,但是现有的数据库程序的学习曲线非常陡峭,这使得一般水平的计算机用户除了最简单的数据库之外不敢开发其他任何数据库了。
大多数传统的数据库程序都是使用所谓的关系型数据库结构。这些关系型数据库由一个或多个包含多个行和列的二维表组成。关系表的每一行都定义了一个数据记录。例如,在一客户表中,每一行都是关于数据库中一特定客户的。关系表的列用于存储每个记录的特定属性。例如,用某一列存储客户的姓,同时用其它列来存储用户的名字、客户所在街道或客户的信箱号等等。通常将数据库中所存储的数据的关系表的结构称为数据库模式。
使用商业上可获得的数据库程序的主要困难在于必须知道如何定义数据库模式。通常,除了建立最简单的数据库之外,用户如果想建立一个数据库,则他必须是一个专业的数据库设计者或聘请一位顾问。但这两方面都不太可能,因为大多数计算机用户没有时间或者也不希望成为专业的数据库设计者,并且因为费用问题也不愿意聘请顾问。
在现有的数据程序中存在的另一问题是:强迫用户必须按数据库程序所要求的方式来定义将要存储在数据库中的数据。例如,在生成一新的数据库时,大多数数据库程序呈现给用户的都是一空白表,并要求用户自己来确定每列的数据类型。如果需要一个以上的表来定义数据库模式,则为了建立表与表之间的关系,用户必须生成每个附加表,并且定义两个表或多个表所共有的关键字字段或属性。这种方法的问题是,用户很有可能没有考虑数据将存储在哪些表、哪些字段中,以及关键字是什么。例如,用户希望建立一个投资业务数据库,但他想到的只是数据中应包括:持有股票的公司的名字、每个公司持有股份、购进价格、购进日期、价格—利率比等。由于这类商用数据库程序要求用户必须按其严格规则来定义关系表,所以用户必须用这种不自然方式考虑将要存储的数据并识别出它们的特征。
于是,人们迫切需要这样一种系统:用户即使不熟悉数据库技术或定义数据库的规则,也能建立一个关系数据库模式。这种系统使用起来更方便,同时也能在通用计算机系统上运行。此外,用户能以反映他们数据观点的方式来定义将要存储的数据。
为了解决在现有技术的数据库系统中存在的这些问题,本发明的系统使得用户能够很方便地建立数据库模式。该系统允许用户建立一个像簿(album),该像簿可定义一个多个关系型数据库表的语义目标数据模型,其中这些关系型数据库表定义了数据库模式。
由像簿定义的语义目标数据模型包括一个或多个语义目标,每个语义目标都包括一个或多个用于定义语义目标特性的属性。这些属性被定义成:(a)用于描述语义目标单个属性的简单值属性;(b)包括一个或多个成员属性的组属性,该组属性用于整体地描述语义目标的特性;(c)建立公式的公式属性,该属性用于描述语义目标的特性;或(d)目标链属性,用于定义一个或多个语义目标之间的关系。像簿建立之后,系统马上对其进行有效性检验,以确定用户是否犯了模型建立错误。在证实像簿是有效的之后,系统就将语义目标及其包含在像簿中的包含属性传送给多个关系型数据库表,这些关系型数据库表将按语义目标数据模型所定义的方式来存储数据。
本发明还包括一种能对像簿进行有效性验证的方法,用于判断在像簿中是否存在任何与像簿中其它语义目标都无联系的语义目标。该有效性验证方法还判断在像簿中是否存在可以相互唯一地识别的语义目标。该有效性方法还判断是否存在对公式属性的递归定义。
本发明还包括一种用于解释公式属性的方法。该方法包括搜索语义目标步骤,以搜索出用在公式属性的表示特征中的项的名称。该系统从公式属性开始向包含公式属性的语义目标以及语义目标数据模型中的其它语义目标进行扩展环搜索。该搜索产生一个或多个属性表,这些属性与公式属性具有相同的逻辑距离。搜索该属性表以找出所有具有公式表示特征中所使用的属性名的属性例子以及所有通向公式中使用一单个属性的路径。如果在语义目标数据模型中——该语义目标数据模型对于用在一公式中的相同属性具有相同名称或两条不同路径,存在两个或多个属性,则该系统提示用户决定在公式中使用哪个属性或哪条路径。扩展环搜索可以使得用户能够根据在其它语义目标中定义的属性来定义一公式。
通过参照以下附图的详细描述可以更好地理解本发明前述的各个方面以及许多附加优点。
图1表示一图形用户接口屏幕的计算机显示,它可以使用户建立一个依照本发明的数据库模式;
图2表示一图形用户接口屏幕的计算机显示,它示出了可以由用户进行处理并能转换成数据库模式的多个语义目标的一个例子;
图3表示一计算机显示屏幕,它示出了用户能够改变语义目标、简要特征表(profile)或属性的一个或多个特征值的示意性特征窗口;
图3A是可以实施本发明的计算机系统的方框图;
图4是本发明在生成语义目标时所执行步骤的流程图;
图5是生成一简单值简要特征表所执行步骤的流程图;
图6是生成一简单值属性所执行步骤的流程图;
图7是生成组简要特征表时所执行步骤的流程图;
图8是生成组属性时所执行步骤的流程图;
图9是生成公式简要特征表时所执行步骤的流程图;
图10是生成公式属性时所执行步骤的流程图;
图11是生成目标链简要特征表时所执行步骤的流程图;
图12是生成目标链属性时所执行步骤的流程图;
图13是生成父型属性时所执行步骤的流程图;
图14是生成子型属性所要求的步骤的流程图;
图15是生成子型组属性所要求的步骤的流程图;
图16A-16C是在向语义目标中插入一属性时所执行步骤的一系列流程图;
图17A-17B是将属性插入到组属性中时所执行步骤的一系列流程图;
图18是将简要特征表插入到组文件中时所执行步骤的流程图;
图19A-19B是将属性插入到子型组属性中时所执行步骤的一系列流程图;
图20A-20C是评价公式属性时所执行步骤的一系列流程图;
图20D-20I是在对语义目标数据模型进行有效性验证时所执行步骤的一系列流程图;
图21是本发明将语义目标转换成一个或多个关系表时所采取步骤的流程图;
图22是本发明将简单值属性转换成关系表时所采取的步骤的流程图;
图23是本发明将组属性转换成一个或多个关系表时所采取的步骤的流程图;
图24是本发明将公式属性转换成关系表时所采取的步骤的流程图;
图25A-25C是本发明将目标链属性转换成一个或多个关系表时所采取步骤的一系列流程图;
图26是本发明将父型属性转换成一个或多个关系表时所采取步骤的流程图;
图27是本发明将子型组转换成一个或多个关系表时所采取的步骤的流程图;
图28是本发明将父型组变换成一个或多个关系表时所采取的步骤的流程图;以及
图29是本发明在定义关系表的主关键字和提示用户解决在语义目标数据模型转换过程中出现的表关键字歧义所采取的步骤的流程图。
如上所述,用户使用本发明的系统能够很方便地建立起正确存储和检索数据的数据库模式。正如以下将进一步描述的那样,用户建立起待被存储在数据库中数据的一个图形可视表示以及数据各部分之间存在的关系。本发明然后将称之为语义目标数据模型的可视表示转换成一系列计算机命令或函数调用,这样商用数据库程序就能产生相应的关系型数据库模式。
图1示出了本发明所产生的图形用户接口显示屏幕的一个示例,它允许用户建立和处理待被存储在数据库中的数据。为了更清楚地解释本发明,按如下方式提供一样本像簿。该像簿表示的数据库可用在一所小型学院中。数据库中可能包括用于标识教授和他们所教的课程的数据;以及用于标识学生和他们所选的课程的数据。在数据库中还包括有关教授和学生的更具体的信息。此外,在数据库中还可能包括这所学院所设课程、上课地点、上课时间的说明。另外,还希望数据库中能够识别每个学生的导师以及每个教授所指导的学生。
为了建立这样一个数据库,用户则与图形用户接口进行交互以生成合适的语义目标。正如从以下例子中所看到的,语义目标只简单地表示出用户希望在数据库中存储的数据的一个概念性单元。因为用户靠这些目标的定义和结构所具有的含义来开发数据库,所以将它们称为“语义”目标。
图1示出了4个语义目标。第一语义目标10代表学院的一位教授。在语义目标10中是一些与每个教授相关的属性。每个教授都具有:工资、该教授是否留任标识、该教授指导的一个或多个学生、以及该教授所教课程信息等属性。语义目标20代表学院的一位学生。每个学生都具有:该学生主修课程、平均成绩、学生所选课程和每门课成绩、导师姓名(如果该学生有指导教师)等属性。
语义目标30描述学院中所设课程,定义课程的属性包括:课程名称、课程描述、上课教室、上课时间。此外,还包括教授该门课的教授以及选该门课程的学生。
语义目标40是语义目标10和20的“父”型语义目标。父型语义目标40定义了学院中每个人都共有的属性。每个人都具有姓名、社会保险号、地址及电话号码。因为这些属性是学院中每个人都共有的,所以完全可以将它们放在其所有的语义目标中。教授和学生语义目标是人员语义目标40的子型语义目标,同时,因为教授和学生都属于人员范畴,所以每个教授和每个学生都具有人员语义目标的每个属性。在教授语义目标中定义了教授所特有的一些属性(例如:是否留任)。
正如以下将详细描述的那样,本发明允许用户建立可以表示任何他希望存储在数据库中的信息的语义目标数据模型。用户能够很方便地按反映其数据观点的方式来建立语义目标和提供每个语义目标的属性以及定义语义目标之间的关系。将定义语义目标数据模型的语义目标集合存储在称之为“像簿”的数据结构中。于是,像簿就表示数据的一个集合以及数据(这些数据将存储在数据库中)之间存在的关系。对于本具体例子来说,语义目标数据模型与像簿具有相同含义。用户建立像簿之后就可以选择“像簿有效性验证”选项,证实用户没有任何模型建立错误。一旦证实像簿有效,用户就可以选择“生成模式”选项,这样就可以将像簿转换成一系列命令或函数调用,这些命令或函数调用由商用数据库程序进行解释,以生成多个反映用户所建立的语义目标数据模型的关系表。
对以下术语含义的理解有助于进一步领会本发明。
像簿:语义目标的一个集合,其中语义目标代表即将存储在数据
库中的数据。
语义目标:信息的一个逻辑分组,其中信息定义了即将存储在数
据库中的一个实体。
属性:一条具体的信息,该信息描述了放置该属性的语义目标的
一个特性。
简单值属性:一条数据,例如包含在语义目标中的名称、工资、社
会保险号等。
组属性:属性的一逻辑分组,其中所指这些属性是一起共同发现
的(例如,地址可以定义包含街道名称、城市、州与邮政编码的一
个组)。
公式属性:一数学运算,用于描述语义目标的一个特性。
目标链属性:一属性,用于定义两个或多个语义目标之间的关
系。
简要特征表:一模板,用于建立相应的属性。
以上描述的每个属性都具有一可以生成该属性的简要特征表。然而,属性与特定的语义目标相关连并且其特征可被来自相应简要特征表中那些特征所替代。使用简要特征表可以使得用户能够很方便地通过改变简要特征表来改变语义目标数据模型中的所有属性,其中可以从所述简要特征表中派生出属性,并且可以将许多相同类型的属性放在不同语义目标中。
如图1所示,本发明包括一个简要特征表管理器窗口50,用户可以从该窗口中选取一个预定的简要特征表,用户也可以生成他/她自己的简要特征表。用户可以使用简要特征表管理器来定义一语义目标的属性。例如,为了在语义目标中建立相应的属性,用户将预定的或新产生的简要特征表拖至语义目标中。为了在人员语义目标40中建立名称属性,用户在简要特征表管理器中选择“标识符文本”,并将其放置到人员语义目标中。用户然后为该属性确定一个在语义目标中有意义的标题,例如“名称”。
图2更详细地示出了图1所示的四个语义目标。图形用户接口为该系统的用户示出了在一语义目标中所能发现的属性类型。简单值属性只用它们的名称列出,括号中示出的是组属性,轮廓线中示出的是目标链属性,并且在公式型属性的前边加了等号。
语义目标中的每个属性都示出了用户是否可以使用该属性访问语义目标的一个特定事例。在属性名称的左边用ID表示出这个特征。如果有标识“ID”,则表示该属性可用于限定语义目标中的一个唯一事例。例如,在图2中,人员语义目标中的社会保险号这个属性就可以唯一地标识一个特定的人。如果标识“ID”不带下划线则表示用户可以使用该属性访问语义目标的一个事例,但该属性不唯一。例如,在图2所示的学院语义目标数据模型中可以使用人员的姓名来访问学院中的某个人。但是,有可能两人具有相同的名字。于是,名称属性不是一个唯一的标识符。如果在属性的左边没有“ID”标识,则表示不能使用该属性来指定语义目标中的特定事例。
每个属性右下角的标识是属性的基数。用具有一对整数(采用“n.m”形式)的下标来表示。“n”表示属性的最小基数,即在语义目标有效情况下该属性的最小事例数。例如,在图1和图2所示的人员语义目标40中,组属性“地址”具有的基数是1.N。“1”表示一个人至少应该有一个地址。第二个数字表示最大基数,即语义目标能具有的该属性事例的最大数。组属性“地址”的最大基数是“N”,这表示一个人可能有多个地址。
目标链属性的下标“P”表示示出该属性的语义目标具有父语义目标。学生语义目标20的目标链属性“人员”具有下标“P”,这表示学生语义目标的父型语义目标是人员语义目标。同样,人员语义目标包含一个称为学生的目标链属性,其下标为O.ST,这表示学生语义目标是人员语义目标的子型语义目标。此外,还可以将子型属性放置到用“人员类型”组示出的组中,其中“人员类型”组的下标为“1.ST”,这表示在该语义目标数据模型中一个人或者是教授或者是学生。
正如以下将看到的,语义目标数据模型的可见显示使得用户能够看见他所定义的数据模型的一个表示。该语义目标数据模型使得用户能够处理语义目标和它所包含的属性之间的关系。通过处理语义目标(增加或删除属性、建立组、或建立父型与子型语义目标),用户能按他们所见数据的方式来建立数据模型。依据语义目标的转换,为用户提供一个数据库模式,该数据库模式将以一组能够反映用户数据观点的关系表来存储信息。
为了使得用户能够建立语义目标模型,本发明可以建立和处理下列基本组件:语义目标;has-型属性(即:简单值、公式、目标链和组);以及,is-型属性(父、子和子型组)。用户通过从图形用户接口的工具菜单中选择“生成语义目标”选项来建立语义目标。为了建立四个语义目标10、20、30和40,用户输入“教授”、“学生”、“课程”和“人员”。一旦语义目标已生成,用户就可以通过选择一个关于他所希望具有的属性的简要特征表并将该简要特征表拖送到语义目标的边界中去,把属性送到这些语义目标中去。例如,为了生成工资属性,用户可以从简要特征表管理器50中选取货币简要特征表并将其送入到教授语义目标10中。用户然后使用图3所示的特征表60将货币属性的名称改成对用户来说有意义的标题。然后,用户也可以使用特征表60来改变任何的属性特征。为了建立各语义目标之间的关系,用户可以通过在语义目标右上角的方框中按下鼠标器来选取一个语义目标并切实地将鼠标器放置在另一语义目标的边界上。例如,为了建立学生和课程之间的关系,用户选取课程语义目标并将其放置到学生语义目标的物理边界中去。这样就使得系统建立一个称为“课程”的目标链属性并将其放到学生语义目标中,同时也建立一个称为“学生”的目标链属性并将其放到相应的课程语义目标中。为了建立一语义目标与其父型语义目标之间的父关系;用户应在语义目标右上边的方框中按下鼠标,由此来选择语义目标,用户同时还应按住计算机上的“shift”键。于是系统在其父型语义目标的物理边界上产生一个子型图标。例如,为了生成表示学生和人员之间父型关系的属性,用户选择学生语义目标,同时按住“shift”键并将子型图标放在人员语义目标中。将子型属性放置到人员语义目标中会使得“人员”父型属性自动放到学生语义目标中。
一旦用户已建立了语义目标数据模型,并对其进行了有效性验证,用户就可以选择“生成模式”选项,这样系统就生成一组命令或函数调用,而这些命令或函数调用使得数据库程序产生相应于已建立的语义目标数据模型的数据库模式。
本发明可以在类似于图3A所示的通用台式计算机或个人计算机中实施。该计算机包括中央处理单元(CPU)70、存储器72、磁盘驱动器74、显示屏幕76、键盘78和输入指点设备80(例如鼠标器)。具有如下所述功能的计算机程序使得该计算机能够生成语义目标数据模型、对该语义目标数据模型进行有效性验证并将其转换成一组命令,该组命令使得数据库程序能够生成与所述语义目标数据模型相对应的数据库模式。
在本发明的这个优选实施例中,使用面向目标的程序设计语言(例如C++)来产生可以在图形用户接口(如MicrosoftTM Win-dows3.1)环境下以及上述所定义的语义目标建模组件下运行的程序。以下的说明并不详细讨论运行在图形用户接口环境下的计算机代码和低级例行程序,也不详细讨论图形用户接口。但是,这些例行程序对于那些一般的计算机编程人员来说应该是很明了的,或者根据附图中所提供的流程图就能很容易确定的。如下将要被详细描述的,用类C++建立语义目标、属性和相应的简要特征表。下列表中设定的数据成员每个可由类C++来维护,并用于建立语义目标、属性和简要特征表。
课程像簿
数据成员 | 数据类型 |
名称 | 文本 |
建立日期 | 日期 |
建立人 | 文本 |
内容 | 无序指针表 |
课程语义目标
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
内容 | 有序指针表 |
课程简单值简要特征表
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
ID状态 | (唯一、不唯一、无) |
值类型 | 任何DBMS数据类型 |
长度 | 整型 |
格式 | 文本 |
初始值 | 文本 |
最小基数 | 整型 |
最大基数 | 整型 |
派生属性 | 指针表 |
引用简要特征表 | 指针表 |
课程目标链简要特征表
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
ID状态 | (唯一、不唯一、无) |
最小基数 | 整型 |
最大基数 | 整型 |
基本语义目标 | 指针 |
派生属性 | 指针表 |
引用简要特征表 | 指针表 |
课程简单值属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
ID状态 | (唯一、不唯一、无) |
值类型 | 任何DBMS数据类型 |
长度 | 整型 |
格式 | 文本 |
初始值 | 文本 |
最小基数 | 整型 |
最大基数 | 整型 |
包含者指针 | 指针 |
基本简要特征表 | 指针 |
课程组简要特征表
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
ID状态 | (唯一、不唯一、无) |
最小基数 | 整型 |
最大基数 | 整型 |
最小计数 | 整型 |
最大计数 | 整型 |
格式 | 文本 |
派生属性 | 指针表 |
内容 | 指针表 |
引用简要特征表 | 指针表 |
课程组属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
ID状态 | (唯一、不唯一、无) |
最小基数 | 整型 |
最大基数 | 整型 |
最小计数 | 整型 |
最大计数 | 整型 |
格式 | 文本 |
包含者指针 | 指针 |
内容 | 有序指针表 |
基本简要特征表 | 指针 |
课程公式简要特征表
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
表达式 | 文本 |
公式类型 | (不存储、存储) |
值类型 | 任何DBMS数据类型 |
长度 | 整型 |
要求的标志 | (是,否) |
格式 | 文本 |
派生属性 | 指针表 |
引用简要特征表 | 指针表 |
课程公式属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
表达式 | 文本 |
公式类型 | (不存储、存储) |
值类型 | 任何DBMS数据类型 |
长度 | 整型 |
要求的标志 | (是,否) |
格式 | 文本 |
包含者指针 | 指针 |
基本简要特征表 | 指针 |
课程目标链属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
ID状态 | (唯一、不唯一、无) |
最小基数 | 整型 |
最大基数 | 整型 |
包含者指针 | 指针 |
基本简要特征表 | 指针 |
对指针 | 指针 |
课程父属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
包含者指针 | 指针 |
对指针 | 指针 |
基本简要特征表 | 指针 |
课程子型属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
要求的标志 | (是,否) |
包含者指针 | 指针 |
基本简要特征表 | 指针 |
对指针 | 指针 |
课程子型组属性
数据成员 | 数据类型 |
ID | 整型 |
名称 | 文本 |
标题 | 文本 |
说明 | 文本 |
要求的标志 | (是,否) |
最小计数 | 整型 |
最大计数 | 整型 |
包含者指针 | 指针 |
内容 | 有序指针表 |
建立语义目标数据模型
上述引用的表描述了用于建立语义目标数据模型的组件的类C++。图4-图15描述了用户在按前边所描述过的、由用户自己定义的语义目标数据模型来建立每个组件时所必须执行的操作。用户可以通过与图1、图2、图3所示的显示屏幕上的用户接口进行交互来完成该项任务。
图4是用户在建立一新的语义目标时,本发明实施的步骤。首先计算机在步骤100为新的语义目标块分配存储空间。接着在步骤102为该语义目标分配一唯一的标识符。在该优选实施例中,每在语义目标数据模型中建立一个语义目标、简要特征表或属性时,计数器都加“1”。为了在语义目标数据模型中用数字值来唯一地标识语义目标、简要特征表或属性,将计数器的值赋给每个目标、属性或简要特征表。在步骤104,提示用户建立语义目标名称。在步骤106,对该名称进行测试,以判断在该语义目标模型的所有已建立语义目标中该名称是否唯一。如果名称不唯一,则在步骤108为该语义目标名称加上一个数字后缀,以将其区分开来。例如,如果生成了两个都具有名称“人员”的语义目标,为了与第一个人员语义目标不同,在第二人员语义目标名称加上后缀后成为“人员-1”。在确定语义目标名称唯一或加以区分之后,在步骤110将标题初始化成一个空串。在步骤112将说明也初始化成一个空串,最后在步骤114将语义目标的内容数据成员初始化成空的、有序指针的集合,这些指针指向语义目标中的属性。
按表示的那样,将一特定语义目标数据模型中的所有语义目标存储在一像簿中。该像簿仅仅是指向每个语义目标的指针表。每生成一新的语义目标,就必须在像簿表内容中加上指向该新语义目标的相应指针。
一旦语义目标已经生成,系统就根据图11所示步骤自动地建立一个相应的目标链简要特征表。目标链简要特征表使得语义目标数据模型中一个语义目标与另一个语义目标之间建立起关系。例如,只要用户建立起图1所示的学生语义目标20,系统就根据学生语义目标简要特征表生成相应的目标链简要特征表。系统使用该目标链简要特征表来产生相应的目标链属性,以建立学生语义目标与其它语义目标的联系。为了建立目标链简要特征表,系统首先为该语义目标提供一个指针,这样在步骤400生成相应的目标链简要特征表。然后在步骤402为该新的目标链简要特征表分配存储空间,并在步骤404为该简要特征表分配一个唯一的标识符。在步骤406将基本语义目标(Base Semantic)(该目标由在步骤400得到的指针确定)的名称拷贝到目标链简要特征表的名称特征中去。在步骤408,系统判定该名称在语义目标数据模型的所有简要特征表中是否唯一。如果该名称不唯一,则在步骤410将新建立的简要特征表的名称加一个数字后缀,以与现有的简要特征表有所区别。一旦将目标链简要特征表文件的名称区分开来,则在步骤412将标题初始化成一空串。接着在步骤414将说明初始化成一空串。在步骤416将ID状态初始化成“无”。如前所述,语义目标或属性的ID状态表示该属性是否能用来唯一地识别出语义目标的一个事例。
初始化完ID状态,在步骤418将目标链简要特征表的最小基数初始化为“0”,最小基数指的是在数据有效情况下,从该简要特征表中派生出的目标链属性必须联系的最小目标事例数。在步骤420将目标链简要特征表的最大基数设置成“1”。在步骤422,使基本语义目标指针指向能够生成目标链简要特征表的语义目标的地址。最后在步骤424将派生的属性表初始化成一空的、指向从目标链简要特征表中派生出的目标链属性的无序指针集合。
如上所述,语义目标由它们所包含的属性来定义。属性定义了语义目标的特性以及语义目标之间的关系。最常用的属性类型是简单值属性,它在数据库中保持一单个值。所有的简单值属性是基于一些相应的简单值简要特征表的。本发明的逻辑系统为用户提供了一个预定可用于描述目标的典型简单值简要特征表。这些简单值简要特征表包括:区域代码、城市、货币量、说明、事件日期、事件时间、数字标识符、文本、标识符、本地电话号码、百分率、人名、量、州、街道和邮政编码。但是,如果用户愿意的话,他/她也可以建立一个简单值简要特征表并在语义目标数据模型的任意个语义目标中使用该简单值简要特征表。例如,用户可能希望定义一个简单值“工资”来描述数据库中的某个人的年收入。尽管用户为此可以使用数字标识符简要特征表,但是客户化的简要特征表可能更好地满足用户的要求,这是因为它更容易识别。此外,通过具有具体生成的属性简要特征表,用户就能很方便地通过仅改变简要特征表特征来改变由简要特征表生成的任何属性的特征。因为每个简要特征表都保持一个派生属性表。所以能很方便地根据简要特征表修改所有属性的任何特征。
图5示出了在建立一简单值简要特征表的本发明执行的步骤。首先在步骤160为新的简单值简要特征表分配足够的存储空间。然后在步骤162为该新简要特征表分配一个唯一的整型标识符。在步骤164提示用户为简要特征表取个名字。如果用户没有提供名称,系统就给该新简要特征表一缺省名“值”。在步骤166,判断该简要特征表的名称在语义目标数据模型的所有简要特征表中是否唯一。如果不唯一,则在步骤168,为其加上一个数字后缀,以把该新简要特征表的名称区分开来。如果该简要特征表的名称与语义目标数据模型中所有其它简要特征表的名称都不同,则在步骤170将简单值简要特征表的标题特征初始化成一空串。该标题特征提供了一个可在表格或报告上使用的可替换字段标题,其中所述的表格或报告是应用程序通过访问数据库(其模式由该语义目标数据模型定义)产生的。
在步骤172将简单值简要特征表的说明特征初始化成一空串。然后在步骤174将ID状态特征初始化成“无”。在步骤176将值类型初始化成“文本”。用户可以通过改变简要特征表的值类型,来选择简单简要特征表代表的数据类型。用户也可以选择任意一组预定的通用DBMS数据类型,包括:文本、货币、日期、时间、备忘录、小整数、短整数、长整数、真/假、计数器、浮点、双浮点、OLE目标以及二进制。一旦初始化完值类型,在步骤178将简单值简要特征表的长度特征初始化成“10”。可以看到长度特征只用于可变长度值类型。
在步骤182将公式特征初始化成一空串。格式特征定义了一个字段,数据库应用程序使用该字段中的数据来确定如何显示数据。在步骤184将简单值简要特征表的初始值特征初始化成一空串,并在步骤188将简要特征表的最小基数设置成“0”,同时在步骤190将最大基数设置成“1”。最后在步骤192将该简单值简要特征表的派生属性特征初始化成一空的、指向从新生成的简单值简要特征表中派生出的属性的一组无序指针。
在建立数据模型以将数据存储在数据库中时,用户可以建立语义目标并将属性放置到语义目标中。用户可以通过从图1所示的简要特征表管理器50中选择、拖拉一简单值简要特征表至语义目标中。一旦将简单值简要特征表放置到语义目标中,系统就可以产生一个相应的简单值属性。在图6中示出了这些步骤。产生简单值属性之后,系统立即使用以下将在图16和图17中描述的步骤将其插入到语义目标中去。
参照图6,系统首先在步骤210获得指向相应简单值简要特征表的指针。接着在步骤212为新的简单值属性目标分配足够的存储空间。然后在步骤214为该新简单值目标分配一个唯一的整型标识符。在步骤216用产生简单值属性的简单值简要特征表中相应的特征初始化名称、标题、说明、ID状态、值类型、长度、格式、最小基数、最大基数等特征。如果在任意时刻用户希望改变简单值属性的任意一个特征,使得这些特征仅适用于语义目标中的属性,用户就可以使用图3所示、并且己描述过的特征表60来改变特征。
在步骤217使包含者特征等于空(null)。当把简单值属性插入到一语义目标时,包含者指针将等于包含的语义目标的地址。如果将简单值属性放到一嵌套的组中,则在插入属性的例行程序执行期间会将包含者特征设置成指向包含该属性的最内层组。在步骤218,将基本简要特征表指针设置成等于建立该属性的简单值简要特征表的地址。最后在步骤220,将指向新生成的简单值属性的指针加到由相应的简单值简要特征表维护的派生属性表中。如果用户改变一简单值简要特征表中的特征,则系统使用由相应简要特征表维护的派生属性表来影响对基于简要特征表的所有属性的一个特征的改变。
通常将用于描述语义目标的一些属性看成是组属性。例如,图1和图2中示出的、用于限定一个人住处的地址属性。在该地址组属性中包括:街道、城市、州、邮政编码等简单值属性。而电话号码组属性包据区域号和本地电话号码等简单值属性。除了系统提供的地址、电号等预定的组属性之外,用户可以通过先建立组简要特征表来定义自己的组属性。然后,可以使用简要特征表在一个或多个语义目标中生成相应的组属性。
图7示出了系统在建立组简要特征表时执行的步骤。首先在步骤240为新的组简要特征表分配足够的存储空间。然后在步骤242为该组简要特征表分配一个唯一的标识符。在步骤244,提示用户为该组简要特征表提供一名称。如果用户不提供名称,系统就使用缺省名称“组”。在步骤246,系统判断该组名在语义目标数据模型的所有组中是否唯一。如果不唯一,则在步骤248将组名加上一个数字后缀,以将该组名与相关组名区分开来。接着在步骤250和252将组简要特征表的标题、说明特征初始化成空串。在步骤254将ID状态初始化成“无”。在步骤256将最小基数初始化成“0”,而在步骤258将最大基数初始化成“1”。
在步骤260将最小组计数初始化成“0”,而在步骤262将最大组计数初始化成“N”。最小组计数特征定义了在组有效情况下组中必须出现的属性个数。同时,最大组计数特征定义了在组有效情况下组中最多属性个数。例如,假设生成一个“特制午餐”组简要特征表。组中包含10个简单值属性,每一个都描述一道菜。客户必须选择2项但不能超出3项。于是该组的最大组计数为3、最小组计数为2。此外,可以使用最小组计数和最大组计数来表明排异情况,这主要是用在以下将进一步说明的子型组中。例如图1和图2示出的人员型子型组包含两个子型属性。用户可以通过将人员型组的最小计数和最大计数都指定为“1”来表明人员或者是教授或者是学生,但不能两者都是。如果需要子型组,则必须做一些选择(即:一个必须或者是教授或者是学生),但如果不需要,则一个人可以既不是教授也不是学生。
在步骤264将组格式属性初始化成一空串。在步骤266,将组的内容特征初始化成一空的、指向包含在组简要特征表中的简要特征表的有序指针集合。最后在步骤268,将派生属性表初始化成一个空的、指向从新产生的组简要特征表中派生出来的组属性的无序指针集合。
组简要特征表通常使得其它简要特征表在用于语义目标数据模型之前就加到其内容表中。使用图18所示的步骤来完成这种操作。一旦建立了一个新的组简要特征表,用户就可以通过选择组简要特征表,并将其拖至语义目标的边界中去,从而在一个或多个语义目标中生成相应的组属性。一旦将组简要特征表放置到语义目标中,系统就根据图8所示的步骤生成相应的属性。
为了生成组属性,首先需要按图8所示的在步骤280获取指向相应组简要特征表的指针。接着在步骤282为新的组属性分配足够的存储空间。在步骤284为该组属性分配一个唯一的标识符。在步骤286用相应的组简要特征表的特征来初始化组的名称、标题、说明、ID状态、最小基数、最大基数、最小组计数、最大组计数以及格式。在步骤288,将包含者指针设置成空(null)。当使用图16和图17所示的方法将组属性插入到语义目标中时,使包含者指针等于逻辑上包括新组属性的语义目标或组属性的地址。如果该组属性嵌套在另一组属性中,应使包含者指针指向最内层组。接着,生成由组简要特征表的内容表定义的属性。系统使用图17所示方法为内容表中的每个简要特征表建立一新属性并将指向该新属性的指针放到该新组属性的内容表中。最后在步骤292,将指向该新组属性的指针放到派生属性的相应组简要特征表中。
在语义目标数据模型中用于建立数据模型的另一种属性是公式属性。以下将看到,公式可以根据一组预先定义的通用算术运算符进行值计算或数据数型的处理。操作的类型取决于操作数的类型以及公式的表达式。例如,两个整型数相加产生第三个整型数,而两个串表达式相加生成一个连接在一起的串型表达式。
图9示出了本发明生成新的公式简要特征表时采取的步骤。首先在步骤320为新的简要特征表分配新的一块存储空间。接着在步骤322为该简要特征表分配一个唯一的整型标识符。在步骤324提示用户为该公式提供一名称。如果用户没提供,系统则提供缺省名“公式”。在步骤326系统判断该名称在语义目标数据模型的所有简要特征表中是否唯一。如果不唯一,给该名称加一个数字后缀以将其与其它相似名称区分开来。在步骤330将公式的标题初始化为一空串。在步骤334将公式的表达式初始化成一空串。该表达式是用于定义被计算公式的一个串。
在步骤346将公式特征初始化成“不存储”。该公式型特征表示每当数据库程序运行时系统是否在关系数据库中存储公式值或计算公式值。在步骤348将公式的值类型特征初始化成“文本”类型,同时在步骤350将初始长度初始化成“10”。在步骤352将要求标志初始化成“否”,并在步骤354将限定公式输出显示方式的格式特征设置成空串。最后在步骤356将公式简要特征表的派生属性特征初始化成一空的、指向从该新公式简要特征表中派生的公式属性的无序指针集合。
一旦用户已建立了公式简要特征表,就可以将该简要特征表插入到一个或多个语义目标中以生成相应的公式属性。图10示出了建立公式属性所需的步骤。首先,系统在步骤380获取指向相应公式简要特征表的指针。在步骤382,为公式属性新分配一块存储空间。在步骤384为该新公式属性分配一个唯一的整数标识符。在步骤386用相应的公式简要特征表特征初始化名称、标题、说明、表达式、公式类型、值类型、长度、所需标志、以及格式等特征。将公式属性的包含者指针设置成空(null)。在把公式属性插入到语义目标中时,使用图16和图17所示的方法在步骤388,使包含者指针指向逻辑上包含该公式属性的语义目标或组属性的地址。接着在步骤390使基本简要特征表指针指向相应的公式简要特征表的地址。最后在步骤392,将指向新公式属性的指针加到派生属性的相应的公式简要特征表中。
如上所述,一旦用户建立了一个语义目标,本发明就自动生成一个相应的目标链简要特征表。该目标链简要特征表用于建立语义目标中的目标链属性,这些目标链属性用于确定各语义目标之间的关系。例如,在图1中,一对目标链属性建立起教授语义目标和学生语义目标之间的联系。从教授到学生的目标链名称是“接受指导者”,并且该目标链的基数为0.N,这表明教授可能有零个接受指导者,也可能有多于一个的接受指导者。同样,学生语义目标也有一个名称为“指导者”的目标链属性,用于建立起学生语义目标至教授语义目标的链接关系,该指导者目标链的基数为0.1,这表示学生可以没有指导教师,但最多只能有一个指导教师。
当用户选择一目标链简要特征表并将其放入到一语义目标中时,或当用户通过在语义目标的右上角方框中按下鼠标器选择整个语义目标并将系统生成的图标放入到另一语义目标时,本发明就产生一目标链属性。图12示出了在生成目标链属性时本发明执行的步骤。系统首先在步骤440获取指向新属性所基于的相应的目标链简要特征表的指针。在步骤442为该目标链属性分配一块新的存储空间。在步骤444为该新属性分配一个新的唯一的整数标识符。在步骤446用相应的目标链简要特征表特征初始化名称、标题、说明、ID状态、以及最小和最大基数。接着在步骤448使包含者指针等于空(nuil)。使用图16和图17所示方法来修改包含者指针,使其指向逻辑上包括目标链属性的语义目标或组的地址。在步骤450将指向相应目标链属性的一对指针初始化成空(null),其中,相应的目标链属性放置在由该目标链属性指示的被引用的语义目标中。在步骤452,使基本简要特征表指针指向目标链属性所基于的目标链简要特征表的地址。最后在步骤454,将指向该新目标链属性的指针加到派生属性的基本简要特征表表。
与目标链属性相似的另一属性是父型属性。该父型属性使得用户能够确定一个语义目标是另一语义目标的子型。例如,如图1所示,学生语义目标和教授语义目标都包含称为“人员”的父型属性。人员属性表示教授和学生语义目标都是数据模型中的人员(即:是人员语义目标的子型)。由于父型属性与目标链型属性是如此相似,所以就不再单独生成父型简要特征表,使用目标链简要特征表来代替。
如图13所示,为了建立父型属性,系统首先在步骤480获取指向与该父型语义目标相关的目标链简要特征表的指针。在步骤482为该新的父型属性分配一块新的存储空间,并在步骤484为该属性分配一个唯一的整数标识符。在步骤486用相应的目标链简要特征表特征初始化新的父型属性的名称、标题以及说明。在步骤488使得包含者指针等于空。在步骤492,使得基本简要特征表指针等于用来生成父属性的目标链简要特征表的地址。最后在步骤494将指向该新的父属性的指针加到派生属性的基本简要特征表表中。当将属性放到子型语义目标中时,则修改父型属性的特征。
一旦将父型属性放到语义目标中,系统就自动生成相应的子型属性,并将其放置到相应的父语义目标中。图14示出了在生成一相应的子型属性时本发明采取的步骤。系统首先在步骤520获取指向与子型语义目标相关的目标链简要特征表的指针。在步骤522为该新的子型属性分配一块存储空间,并在步骤524为该新的子型属性分配一个唯一的整型标识符。在步骤526,用与子型语义目标相关的相应的目标链简要特征表的初始化名称、标题、说明和需求标志。在步骤528使得包含者指针等于空、并在将子型属性插入到语义目标时,修改包含者指针,使其指向逻辑上包含新子型属性的语义目标或子型组的地址。在步骤530初始化一对指针,并且在步骤532使基本简要特征表指针等于生成子型属性的相应的目标链简要特征表的地址,最后在步骤534,将一指针加到派生属性的相应目标链简要特征表表中新的子型属性中去。
有可能在语义目标数据模型的一个组中包括子型属性。图2所示的子型组例子是包含在人员语义目标中的人员类型组。该组表示一个人必须或者是教授或是学生。子型组用括号(用于标识组中成员)边上的下标“ST”表示出来。
图15示出了本发明在生成一子型组时采用的步骤。首先在步骤550为该新的子型组属性分配足够的存储空间。在步骤552指定一个唯一的标识符,在步骤554提示用户为子型组提供一名称。如果用户没提供名称,系统则使用缺省名称“子型组”。
在本发明的优选实施例中,在单个语义目标中存在三个名称空间。第一名称空间保持子型名称和子型组名称。在一单个语义目标中,不允许子型或子型组具有相同名称。在第二名称空间中保持单个语义目标中的所有父属性的名称。在一个语义目标中,不允许两个父属性具有相同的名称。第三名称空间用于立即地保持语义目标中的所有其它属性的名称。三个不同的名称空间使得用户能够很方便地模型化这种形势,就是语义目标可以具有同名的目标链属性和父属性,或同名的目标链属性与子型属性。例如,假设用户生成一个称为“雇员”的语义目标。该语义目标具有一个称为“经理”的目标链属性,以及称为“经理”的子型属性。这是因为一个雇员可能有一个经理,而一个经理又是一个雇员。如果不允许用户建立的目标链属性名称与子型或父型名称相同,则用户在模型化上述例子过程中会遇到麻烦。
在步骤560和562将该子型组属性的标题或说明初始化成空串。在步骤564将需求标志初始化成“假”。在步骤566将最小组计数初始化成“O”,而在步骤568将最大组计数初始化成“N”。在步骤570将包含者指针初始化成空。一旦将子型组插入到一语义目标中,就使用图16和图19所示的方法使包含者指针指向逻辑上包含该新的子型组的语义目标或子型组属性的地址。最后,在步骤572将子型组属性的内容表初始化成一空的、指向包含在新生成的子型组属性中的子型属性和其它子型组属性的有序指针表。
图4-15描述了用户在开发语义目标数据模型过程中,建立语义目标、简要特征表或属性时,本发明实施的步骤。然而,它也可以处理图形用户接口中的目标,以进一步提炼数据模型。如上所述,处理模型的一种方式是选择一简要特征表,并将其拖拉至一语义目标中,从而生成相应的属性。
图16A-16C描述了在用户已将一新的属性插入至一语义目标(即:当前语义目标)时,本发明为了更新该语义目标数据模型所采取的步骤。再次参照图口,假设用户正试图生成人员属性40中的“社会保险号”属性。为此用户先从简要特征表管理器50中选择“数字标识符”简要特征表,并将其放置到人员语义目标的物理边界中去。用户然后使用图3所示的特征表60将新产生属性的名称改成“社会保险号”。用户可以进一步改变ID状态、最小基数、最大基数,以反映出该属性的类型,即,加到语义目标中去的一个社会保险号。
首先系统在步骤590获得指向被插入的新属性的指针。在步骤592,系统判断用户是否想从某一语义目标(该语义目标是当前语义目标的子型)的简要特征表插入一父属性,或者想从语义目标已包含的父型属性相同的简要特征表插入一父型属性。在本例子中,学生和教授都不可能是人员的父型,这是因为表明父属性关系的是基于人员语义目标的目标链简要特征表。同样,教授和学生都没有基于人员语义目标的第二个父属性,因为他们每个人已经有了一个父属性。由于教授和学生语义目标都是人员语义目标的直接子型,另外一个这样的连接就是冗余的了。
如果在步骤592得到的答案是“是”,则按步骤594所示产生错误信息,并且不允许用户将这样的父型属性插入到当前语义目标中,在步骤596,系统判断用户是否想从某一语义目标(该语义目标是当前语义目标的父型)的相应简要特征表中生成一子型属性,或者想基于与当前语义目标已包含的子型属性相同的简要特征表生成一子型属性。使用图1和图2所示模型,系统在步骤596阻止用户将基于从人员语义目标中产生的简要特征表的子型属性插入到教授语义目标中或学生语义目标中。同样,也不允许将基于从教授语义目标和学生语义目标中产生的简要特征表的其它子型属性插入到人员语义目标中。如果在步骤596得出的判断结果是“是”,在步骤598产生错误信息,并且不允许插入。
假如用户并没有对语义目标进行属性的非法插入,则在步骤600将指向新加入属性的指针放入到当前语义目标的内容表中。接着在步骤602修改插入的属性的包含者指针,使其指向当前的语义的目标。
系统在步骤604保证在如是一子型组情况下,新增加属性的名称和所有属性内容在该语义目标中是唯一的。如果名称不唯一,则加上一个数字后缀,以将它们区分开来。
在步骤606,系统判断新增加的属性是否是一目标链型属性。如果是,系统在步骤608判断该属性是否具有位于另一语义目标的相应的配对的目标链属性。如果存在这样的配对的属性,则在步骤610将该配对的标链属性的基本简要特征表修改成来自于已插入了该链属性的当前语义目标的简要特征表。如果不存在相应的配对的属性,系统在步骤612建立一个基于当前语义目标的简要特征表的新的目标链属性。在步骤614将新生成的目标链属性和插入的目标链属性的一对指针指向对方。最后在步骤616,将新生成的目标链属性插入到在简要特征表(该简要特征表是在步骤590获得的插入目链的简要特征表)中作为基本目标列出的语义目标中。例如,如果将称为学生的目标链属性放到如图1所示的课程语义目标中,那么就产生一个相应的目标链,并将其放到一语义目标中去,该语义目标作为产生学生目标链的简要特征表的基本语义目标(即学生语义目标)。
如果插入的属性不是目标链属性,系统则在步骤618判断插入的属性是否是父型属性。如果插入的属性是父型属性,系统则在步骤620判断该父型属性是否具有位于另一语义目标的配对的子型属性。如果有,则在步骤622将该配对的子型属性的目标链简要特征表修改成基于当前语义目标的目标链简要特征表。如果不存在相应子型属性,则在步骤624以根据当前语义目标的目标链简要特征表中生成一新的子型属性。在步骤626使该属性的一对指针指向对方,按与步骤590相同的方式,在步骤628将新子型属性插入到一语义目标中去,该语义目标是派生出该新插入父型属性的简要特征表的基本目标。
如果插入的属性不是父型。则在步骤630判断新插入的属性是否是子型属性。如果是子型属性,则在步骤632判断是否存在相应的父型属性。如果存在,则在步骤634将配对的父型属性的简要特征表修改成基于加入的语义目标的简要特征表。如果不存在相应的父型属性,则在步骤636根据与加入的语义目标相关的简要特征表,生成一新的父型属性。在步骤638使这两个属性的一对指针指向对方,并将新生成的父型属性插入到一语义目标中,这个语义目标是派生子型属性的简要特征表的基本目标。
在开发语义目标数据模型过程中,用户可能希望将一属性加到组属性中去。这可以通过在语义目标数据模型中选择一属性并将其放到组属性中去来完成。图17A-17B示出了在把一属性加入到组属性中去时,本发明所采取的步骤。在步骤641,系统判断即将加入到组中去的属性是否是简单值、组、公式或目标链属性。如果不是这些类型属性,在步骤642产生一个错误信息,表明这种插入是不允许的。一旦确定该属性可以加到组属性中去,就在步骤634将指向该新属性的指针加入到组的有序内容表中去。在步骤644,将该插入属性的包含者指针修改成指向包含该新属性的组属性。
在步骤645判断该属性的名称在该组属性中是否唯一。如果不唯一,则在步骤646将该属性名称加一个数字后缀以示区分。然后在步骤647判断插入了该新属性的组属性是否是从相应的组简要特征表中派生出来的唯一的一个组。如果判断结果是“是”,则在步骤650将指向该增加属性的简要特征表的指针加到组简要特征表的内容表中去。如果从相应的组简要特征表中产生出一个以上的组,则在步骤648生成一个新的组简要特征表。在步骤469将该新的组简要特征表的内容表初始化成包括所有成员属性(包括该新的成员属性)的简要特征表。
在步骤651,判断当前组是否包含在另一组中,即:是否在“包含者组”中。如果判断结果是“是”,则在步骤652判断包含者组是否是从相应的简要特征表中派生出来的唯一的一个组。如果是,则在步骤655更新相应的组简要特征表的内容表,使其包括新增加属性的简要特征表。如果包含者组不是从相应的简要特征表中派生出来的唯一的一个组,则在步骤653生成一个新的组简要特征表。在步骤654,初始化新生成的组简要特征表的内容表,使其包含所有成员属性的指针。继续执行该过程,直到所有的包含者组已被修改,或者一包含者组不再建立新的简要特征表。
在步骤656,判断新加入的属性是否是目标链类型的。如果是,系统则在步骤657判断该目标链是否具有一配对的目标链属性。如果存在这样的配对目标链,则在步骤658将配对的属性的简要特征表修改成基于语义目标的简要特征表,该语义目标包含新增加的目标链属性的组。如果不存在相应的配对目标链属性,系统则在步骤659生成一新的目标链属性,该属性从基于包含该组的语义目标的简要特征表中派生出来。在步骤661,使插入的属性和新生成的目标链属性的一对指针指向对方。在步骤663,将新生成的目标链属性插入到一语义目标中,该语义目标是该插入的目标链属性的基本目标。
在某些情况下,用户可能希望通过改变组属性的简要特征表来改变语义目标数据模型中的所有组。例如,表示电话号码的组属性包括区域代码和电话号码。但是,如果用户希望能够使用国外电话号码,则必须设置一些规则,以把国家代码属性插入到每个电话号码组中。该种修改可以通过将国家代码简要特征表加到相应的电话号码组简要特征表中来实现。这样就可以将国家代码属性自动插入到从相应的电话号码组简要特征表中生成的、在派生属性表中列出的每个属性中去。
图18描述了用户在组简要特征表中插入一简要特征表时本发明所采取的步骤。系统在步骤665判断用户是否试图插入组简要特征表的内容表中已经包括的组简要特征表。如果判断结果是“是”,则在步骤667提供一错误信息,表示这种插入操作是不允许的,因为这表示了一个递归的关系。如果允许将该简要特征表插入到组简要特征表,则在步骤669将指向该新加入的简要特征表的指针加到组简要特征表的内容表中去。如上所述,每个简要特征表都包括一个它在其中的简要特征表的包含者表。在步骤671,将指向该组简要特征表的指针加到新插入的简要特征表的包含者表中去。最后,系统在步骤673查看由组简要特征表维护的派生属性表中的每一个属性,并从新插入的属性简要特征表中产生一新属性,并将其插入到派生属性中去。于是,语义目标像簿中的每个属性都被更新,从而反映出组简要特征表中新加入的简要特征表。
图19A-19B描述了用户在将子型属性或子型组属性插入到另一子型组中时,本发明采取的步骤。在步骤675,判断加入的属性是否是子型属性或是子型组属性。如果两者都不是,则系统在步骤677发出一错误警告,表示这种插入是不允许的。
本发明只允许子型组包括子型或其它子型组作为其成员属性。如果插入的属性满足要求,则判断加入的属性是否是从这样的语义目标的简要特征表中派生出来:它是包含将插入新属性的子型组的当前语义目标的父型。如果是,则在步骤677产生错误信息,表示这种插入是不允许的,因为它表示了一个递归的关系。在步骤681,系统判断语义目标是否已包含了一个子型属性,该属性基于的简要特征表与派生该新子型属性的简要特征表相同。如果是这样,则在步骤677报告一个错误信息,表示这种插入操作是不允许的。本发明只允许一个语义目标包括从任何给定简要特征表中生成的一个子型属性。
一旦确认用户的插入操作是允许的,则在步骤683将指向该新的子型属性的指针插入到子型组的有序内容表中。在步骤685,将新插入的属性的包含者指针修改成当前子型组属性,并在步骤687,系统判断新插入属性的名称(以及如果插入的属性是组,则所有成员属性的名称)在语义目标所包含的所有子型和子型组中是否唯一。如果名称不唯一,则在步骤689为名称加一个数字后缀,以便于区分。在步骤691,系统判断插入的每个子型属性是否都具有配对的父属性。如果有,则在步骤699将配对属性的简要特征表修改成基于当前语义目标的简要特征表。如果插入的子型属性没有配对的父属性,,则在步骤693从基于当前语义目标的简要特征表中产生一个新的父属性。接着使子型属性和新产生的父型属性的一对指针分别指向对方。最后,在步骤697,将新生成的父型属性插入到一语义目标中去,该语义目标是插入的子型属性的简要特征表的基本目标。
公式处理
本发明允许用户在语义目标中定义公式,还可以使公式按用户所定义的语义进行解释。其实现方式是:允许用户依据语义数据模型中所包含的语义目标或属性(但语义目标不必与公式属性相同)来表达公式。系统然后搜索整个语义目标数据模型以确定用户准备在公式中使用的属性。
作为在公式属性中能够产生岐义性的一个例子,假设用户产生成一个表示订单表的语义目标。该订单表包括多个定义定单的行项目的属性,一个连接发出定单客户的目标链属性和连接完成定单的销售人员的目标链属性。假设订单语义目标包含公式“税”,将其定义成:订单中项目的量和以项目价格以及税率。但是,订单语义目标可能不包括“税率”这个属性。但是,客户语义目标和销售人员语义目标都包含地址属性,表示客户或销售人员居住的街道、城市,州及邮编。如果将州本身定义成语义目标,它就可能进一步包括称为“税率”的属性。于是,订单语义目标中的公式属性需要在整个语义目标数据模型中搜索税率这个属性。在该例子中,客户语义目标和销售人员语义目标都与州语义目标有链接,所以产生歧义:至税率的路径是经过客户语义目标还是经过销售人员语义目标。如果两者距公式属性的距离相等,系统则提示用户指出系统使用客户语义目标中的税率还是使用销售人员语义目标中的税率。
在将语义目标数据模型转换成一组关系型数据库表之前,本发明的公式通过对语义目标数据模型中公式的各项进行扩展环搜索,来验证公式属性的有效性。如果有两种以上方式指定公式中的一项,则系统采用一组规则来保证使用正确的属性。
图20A-20C示出了公式属性的解释。为了开始解释公式属性,首先在图20A所示的步骤660中,对表达式特征进行语法分析和进行标记。对串表达式进行语法分析和标记的技术在计算机程序设计领域中已广为人知。所以在这里不进行详细说明。在对串表达式进行标记之后,在步骤662进行一项测试以判断表达式的语法是否正确,即:它符合预定允许的数学运算和逻辑运算。在本实施例中,规定了数的加、减、除、乘、以及日期和串的加、减。对计算机程序设计领域的一般技术人员来说,如何保证数学表达式语法正确也是广为人知的。
在图1、图2、图3所示的本例子中,学生语义目标具有标记为“GAP”的公式属性,用于计算平均成绩,它定义为:课程成绩的和除以课程的门数。为了正确地解释该公式,公式处理器必须在语义目标数据模型中找到项“成绩”。公式中的项“成绩”可以由本身的属性名字或其路径名来指定。在本例子中,成绩属性的全路径名是“学生、课程、成绩。”其中“学生”和“课程”是引用的路径,而“成绩”是系统搜索的目标名。
为了对公式求值,系统在引用的每个路径上搜索目标名,即:本例中的“学生”和“课程”。在步骤664,系统判断公式处理器是否在目标名路径的第一引用上搜索。如果判断结果是“是”,则在步骤666将公式的包含者名称和包含的属性加到正被搜索的目标的一个当前环形表中去。如果正被搜索的引用不是在目标名路径的第一引用,则本步骤668只把前边引用所包含的那些属性加到当前的环形表中去。
从步骤670开始,系统通过一系列步骤来分析当前环形表中的每个属性。在步骤672,判断属性名是否与目标名匹配。如果匹配,则在步骤674将该名称加到匹配表中去。如果名称不匹配,则公式处理器在当前的环形表中获取属性的数据类型。如属性是子型,则在步骤678将子型所引用的语义目标加到属性的下一属性环中去。本发明认为子型目标在逻辑上比与正在分析的公式属性位于同一语义目标中的目标更远。另一方面,本发明认为父型目标与包含公式属性的语义目标中的目标具有相同的逻辑距离。因此,如果数据类型是父目标,则在步骤680将被引用的语义目标与其属性加到当前环中去。
如果数据类型是组目标,则公式处理器继续执行步骤682a(如图20B所示),将包含者属性表加到当前环形表中。系统在步骤684对于组属性进行判断,是否正在处理目标名路径上的第一引用。如果判断结果是“是”,则在步骤686判断组属性的包含者是否在包含的语义目标路径上存在。如果存在,则在步骤686进一步判断父包含者的最大计数是否大于“1”,如果大于“1”,则在步骤690判断正在处理的属性的类型是否是子型。如果是,则在步骤692将当前包含者的包含者加到当前环形表中去。如果正在处理的属性的类型不是子型,则在步骤694将当前包含者的包含者加到下一环形表中去。如果在步骤684、686、688中任意步骤的判断结果是“否”,则在步骤682a只将包含者属性的表加到当前环形表中去。
如果正在处理的属性的类型是一语义目标,则在步骤700将所有包含者属性的表加到当前环中去。最后,如果数据类型是一目标链,则在步骤702将被引用的语义目标的属性加到下一环形表中去。
在步骤709(图20c)判断正在搜索的属性的当前环形表是否为空。如果为空,系统则在步骤670搜索下一环形表。在将所有环形表搜索完之后,在步骤710判断匹配表是否为空。如果为空,则在步骤712判断是否所有环形表都已搜索过。如果是,则在步骤714发出一错误信息,表示没有找到目标名。如果没有搜索完全部环形表,则在步骤716根据以上从步骤670开始的方法来计算下一环形表。如果匹配的表不为空,则在步骤718判断是否有一条以上通向给定名称的路径或属性。如果是,则在步骤720要求用户指出通向该属性的属性或路径。假设匹配表中仅包含一个属性,则在步骤722判断整个表达式是否已计算完了。如果回答是“否”,则在步骤724开始搜索下一目标名。当已唯一地识别出所有属性引用,则对它们的值类型进行检验,以确保表达式中上下文的有效性。
像簿有效性验证
如上所述,用户在将由像簿定义的语义目标数据模型转换成一个或多个关系表之前,要对像簿进行有效性验证,以确保用户没有出现任何建立模型错误。图20D-20I描述了在一像簿中对所定义的语义目标数据模型进行有效性验证时,本发明所采取的步骤。如以下所述,本发明分析像簿,以确保用户在数据模型中没出现任何递归关系。例如,公式属性不能包含根据自身定义公式的表达式特征。同样,如果一目标链属性涉及的是由第一语义目标唯一确定的第二语义目标,则第一语义目标不能包括用于唯一识别该第一语义目标的目标链属性,最后,系统判断在语义目标数据模型中是否存在与其它所有语义目标都没有任何联系的语义目标。把这种情况称为分区的语义目标数据模型。
为了判断数据模型中是否存在递归关系或者数据模型是否是分区的,本发明建立了三个映象:环形公式映象、环形ID映象和分区映象。映象是数组或矩阵的逻辑等式。映象与一般的数组不同之处在于它的下标可以是任何(几乎)类型的。例如,标准数组的内容可以通过用整数下标来访问(arry[2])而映象可以使用串作为其下标(map[”Hello World”])
本发明使用映象来跟踪特定项目的连通性:公式、语义目标ID及作为整体的数据模型。每个映象具有略微不同的意义,并且在每个下标上保持不同的信息表。
环形公式映象使用公式属性作为映象的下标,并且映象中的每个单元引用了标引公式表达式特性中使用的公式属性表。
环形ID映象使用语义目标作为下标,并且引用了用于唯一地识别标引语义目标的其它语义目标表。
分区像簿映象使用语义目标作为其下标,但(与上述的环形ID映象不同)引用的是由包含在标引语义目标中的目标链属性所直接引用的所有其它语义目标表。应当注意,尽管公式和语义目标ID的循环性(即:自身引用)是错误的,但在这种上下关系中,它表示一个完全连接(非分布区的)的像簿。
在已检查完像簿的所有简要特征表之后(并且无错误),三个映象已完全产生并且做了关于连通性的检查。
使用以下的递归测试来测试循环性:
1)对映象中每个未被访问下标进行:
2)将其标记为正在被访问。
3)对于该单元所引用的表中的每一项进行:
4)使用表项作为该映象的下标;
5)如果该映象下标已被访问过
6)如果没对分区像簿进行测试则返回一错误信息,表示有递归关系
7)如果测试像簿分区,并且在对第一单元进行递归测试之后,并没有访问所有单元,则像簿是分区的。错误返回。
图20D描述了在验证一像簿有效性时本发明采取的步骤。首先,系统在步骤1100分析像簿中每个简要特征表。在步骤1102确定简要特征表的类型。在步骤1104,系统根据被分析的简要特征表的类型,采取一系列步骤。
图20E描述了在验证像簿有效性过程中分析出简要特征表是简单值类型时所采取的步骤。在步骤1140,系统判断简要特征表的初始值是否与值类型特征匹配。如果不匹配,则在步骤1142产生一错误信息,表示数据类型不匹配并且有效性验证程序结束。在步骤1144,系统分析派生属性的简要特征表表中的每个属性。在步骤1146,判断属性的初始值与其值类型是否匹配。如果不匹配,则在步骤1148产生错误信息,表示数据类型不匹配,并且结束有效性验证程序。
图20F示出了当有效性验证程序分析出简要特征表是公式类型时,本发明所采取的步骤。在步骤1160系统开始检查简要特征表表达式特征的句法与语法。如果句法与语法不正确,则在步骤1167产生一相应的错误信息。一旦已经检查完简要特征表的表达式特征,系统在步骤1162分析包含在派生属性的公式简要特征表表中的每个公式属性。在步骤1164,系统执行如图20A所提出的公式表达式有效性检证过程。在步骤1166,判断表达式是否有效。如果无效,则在步骤1168产生错误信息,表示是个无效表达式,并且结束有效性验证程序。如果表达式有效,系统在步骤1170将公式属性以及在表达式特征中包含的引用公式属性加到环形公式映象中去。
如果系统在有效性验证程序中分析出简要特征表是组,系统执行图20G所示的步骤。在步骤1190,系统在一循环中分析派生属性的组简要特征表表中所包含的每个属性。系统在步骤1192判断组属性的内容表是否只包含其它组。如果判断结果是“是”,则在步骤1194产生一警告,表示组中无属性。正如以下将看到的,步骤1 192对组中可能包含的嵌套组进行递归处理。假设一组属性包括至少一个非组属性,则系统在步骤1196对所有成员属性的最小基数求和。在步骤1198,判断最小基数的和是否大于组的最大计数。如果大于,则在步骤1200产生一错误信息,表示最大计数太低。如果设置的最大计数正确,则系统在步骤1202对所有成员属性的最大基数求和。在步骤1204判断最大基数的和是否小于组的最小计数。如果是,则在步骤1206产生一错误信息,表示最小计数太高。
如果有效性验证程序分析出简要特征表是目标链,则系统执行图20H-20I所示步骤。在步骤1220,系统将目标链属性的基本语义目标加到分区映象中去。在步骤1222,判断基本语义目标的内容表是否为空。如果是,系统则在步骤1224产生警告,表示引用的语义目标空。
在步骤1226,系统通过一系列步骤分析在派生属性简要特征表表中包含的每个目标链属性。在步骤1228,系统确定正在分析的目标链属性的包含语义目标。在步骤1230,将该目标链属性的基本语义目标加到分区映象中的包含语义目标表中去。在步骤1232,系统计算从目标链属性到包含语义目标的最大路径基数。系统在步骤1234判断到包含语义目标的最大路径基数是否等于“1”。如果等于“1”,系统在步骤1236判断在目标链属性和包含语义目标之间存在的所有包含组的ID状态是否唯一。如果唯一,系统在步骤1238将目标链属性的基本语义目标加到环形ID映象中的包含语义目标表中去。
在步骤1240,系统判断目标属性的ID状态是否唯一。如果ID状态唯一,系统在步骤1242判断从目标链属性到包含语义目标的最大路径基数是否等于“1”。如果不等于“1”,系统在步骤1244判断目标链属性的最大基数是否等于“1”。如果最大基数大于“1”,则在步骤1246向用户发出警告,表示用户事实上已模型化了一个组,于是将产生一个代用组。在步骤1248,判断语义目标是否是目标链的包含者。如果是,则在步骤1250产生一错误信息,表示用户已模型化了一个未表达的子型。如果语义目标不是目标链的包含者,则在步骤1252产生一警告信息,表示语义目标ID被嵌套在一个组中。在步骤1254,判断目标链的配对属性是否具有大于“1”的最大基数。如果是,则在步骤1256产生一错误信息,表示存在语义目标ID对的基数不匹配。
在步骤1258,系统判断分析的目标链属性是否是子型或父型。如果是,则在步骤1260判断子型或父型的包含者是否是组。如果是,系统按图20G步骤1196所示进行组计数测试。
现在返回到图20D,系统分析在图20E-20I中产生的三个映象。在步骤1106,分析环形公式映象。在步骤1108,判断环形公式映象表示的公式属性是否包括一递归的公式表达式特征。如果是,则在步骤1110产生一错误信息,表示公式属性被递归地定义。
在步骤1112,分析环形ID映象。在步骤1114,判断环形ID映象是否表示由其自己唯一地标识的一个语义目标。如果是,则在步骤1116产生一错误信息,表示语义目标包括一递归的标识。
在步骤1118,分析分区映象。在步骤1120判断像簿中的所有语义目标是否都连接。如果不连接,系统在步骤1122产生警告信息,表示像簿是分区的。
如上所述,有效性验证程序判断用户在建立语义目标数据模型中是否有任何错误。除了判断属性的数据类型是否正确地被建立之外,系统还检查公式属性中与语义目标标识符中是否存在递归关系。一旦证实像簿是有效的,用户就可以指示系统将语义目标转换成一组命令或系统调用,它们可以建立数据库模式。
将语义目标转换成关系表
如上所述,本发明的系统允许用户建立一个表示将被存储在数据库中数据的语义目标数据模型。系统然后将该模型转换成一组或多组命令,这种命令可由传统的数据库程序进行解释,以产生多个相应于该语义目标数据模型的关系数据库表。
图21示出的步骤使得本发明能够将包括多个语义目标的语义目标数据模型转换成相应的商业数据库程序可以使用的多个关系数据库表。从步骤800开始,对语义目标像簿中的每个语义目标进行处理,以生成该语义目标的一个或多个关系表。对像簿中的每个语义目标,系统在步骤802开始一外循环,在步骤804为该语义目标建立关系表。在步骤806给出表的名称,该名称与语义目标名称相同。接着,在循环808中分析语义目标中的每个属性。
循环808包括步骤:首先在步骤810确定语义目标中每个属性的类型。在步骤812,根据属性的类型对属性进行处理。以下参照附图详细地描述本发明用于转换属性的特定步骤。
在分析完语义目标中的每个属性以及像簿中的所有语义目标之后,在步骤814要求用户选择用于建立关系表的关键字。在用户选择完关键字之后,在步骤816明确在生成关系表时引起歧义的任何外部关键字。
可以使本发明所产生的特定表定义满足特定的数据库协议,这些数据库协议是基于用户所例举的、本发明将使用的一特定商业数据库程序所确定的。以下说明了如何将语义目标模型转换成一些关系表,对于计算机编程人员来说,它可以产生任何商用关系型数据库程序的一个驱动软件,它将产生一组合适的命令,以使数据库生成相应的用于所希望模式的关系型数据库表。
图22-29详细地描述了在将语义目标中的属性转换成一个或多个关系表时,本发明采取的步骤。如上所述,本发明并不产生关系数据库中的关系表,替代的是使商用数据库程序生成关系表。每当通过转换语义目标模型而产生表、表的列或表的关键字时,就产生相应于特定数据库应用的合适命令,并将这些命令存储在数据库程序可以读的数据文件中,也可以调用合适的数据程序的子例程以产生关系数据库表。用户把他将使用的数据库程序的类型通知给系统。系统包括一系列查看表,这些表可以使系统能够选择正确的适合选择数据库的命令或子例程。
图22示出了本发明在将简单值属性转换成输入到一个或多个关系表的数据时,所执行的步骤。首先,在步骤830,系统判断简单值属性是否具有小于或等于“1”的最大基数。如果有,系统在步骤832确定属性的数据类型(由值类型特征指定)。一旦已经确定了数据的类型,系统在步骤834在语义目标表或为简单值属性的包含者生成的多值组表(称为父型表)中建立合适的数据类型的列在步骤835判断属性的ID状态是否为无(none)。如果是,则表中无列可标记。系统在步骤836查看简单值属性的ID状态特征,并判断它是否唯一。如果ID状态唯一,则在步骤838将新的列标记为一个唯一的关键字。如果列不唯一,则在步骤840将列标记成一个索引。
如果简单值属性的最大基数大于“1”,则在步骤842为该属性生成一新表。在步骤844给该新表分配一个名称,该名称是父表名称与属性名称的结合。然后,在步骤846确定由值类型特征指定的属性的数据类型。然后在步骤848将适合数据类型的一个新列加到属性表中去,并插入该属性。在步骤850将来自于父表的外部关键值加到新生成的简单值属性表的一个新列上。在步骤851,判断属性的ID状态是否为无。如果是,在步骤856将代用关键字插入到表中。在步骤852,系统判断属性的ID状态特征是否唯一。如果是,则在步骤854将放置属性值的列标记为唯一的关键字。如果属性不唯一,则在步骤856将一新列加到属性表中并插入一代用关键字。
图23示出了本发明在将组属性转换成一个或多个关系表时所采取的步骤。系统首先在步骤870判断组的最大基数是否小于或等于“1”。如果是,则不需要产生分离的表来表示该组。然而,为了将组的成员与关系表中留下的实体区分开来,则在步骤872将组的名称作为前缀加到组中所包含的每个属性的名称上。系统然后在步骤876判断组的ID状态特征是否唯一。如果不唯一,则在步骤878对该语义目标所产生的关系表将组标记成一个不唯一的索引。如果组ID唯一,则在步骤880将组标记成一个候选关键字。
如果组的最大基数大于“1”,则把对于该组包含者所产生的表名称作为前缀,在步骤882中将其加到组名上。接着,系统在步骤884生成一新的组表,并在步骤886将来自父表的外部关键字加到新组表中去。在步骤888,判断组中任意属性的ID状态特征是否唯一。如果是,系统在步骤890判断整个组的ID状态特征是否唯一。如果组的ID状态唯一,则在步骤894将组中包含的每个唯一属性作为一个候选的关键字。如果组的ID状态不唯一,则在步骤892将来自于父表的每对唯一属性以及外部关键字作为候选关键字。如果在组中属性的ID状态特征都不唯一,系统则在步骤895判断组的ID状态是否唯一。如果唯一,则在步骤896将组中所有属性作为候选关键字。最后,系统在步骤898判断组的ID状态特征是否不唯一。如果不唯一,则在步骤900将所有列标记为不唯一索引。如果没有定义组的ID状态是唯一还是不唯一,则系统在步骤902假设组的ID状态等于“无(none)”,并且在组表的一附加列上加上副关键字。最后,在步骤903,根据图21所示的循环808处理组中的每个属性。
如图24所示,本发明通过确定是否将公式或表达式的结果存储在数据库中来转移公式属性,以产生关系表。在步骤920,系统得到公式属性的公式型特征。在步骤922,系统判断是否“存储”公式类型。如果是,则系统在步骤924获得由属性的值类型特征指定的结果的数据类型。在步骤926将附加列加到合适的数据类型的父语义目标表中。如果公式类型特征表明不存储该公式属性的结果,则在数据库模式中不产生附加的列或表。
目标链的转换涉及查看由目标链引用的每个属性的最大基数,以及计算称为最大路径基数的值。最大路径基数指的是语义目标和任何插入包含者中一个目标的最大基数。
图25A-25C示出了在把目标链属性转换成一系列关系表时,本发明所采取的步骤。在步骤940,系统获得指向由正在处理的目标链所引用的语义目标的指针。在步骤942,系统判断是否所引用的语义目标已建成一个表。如果没有,则在步骤944为所引用的语义目标生成一个关系表,不处理其属性。在步骤946,为目标链和配对的目标链计算最大路径基数,这是通过取目标链与包含该目标链的所有组的最大基数中的最大值来实现的。最大路径基数对是以下四个状态中的一个:〔1∶1〕、〔1∶N〕、〔N∶T〕〔N∶N〕。在步骤948,系统根据在步骤946确定的最大路径基数对而采取各种处理步骤。
图25B示出了在当一对目标链属性之间的最大路径基数是1∶1时,本发明采取的步骤。在步骤960,系统判断正在处理的目标链属性是否是在一个组中。如果是,系统在步骤962判断配对的目标链属性是否也是在一个组中。如果配时的目标链不在一个组中,则在步骤964将来自引用的语义目标表中的外部关键字加到正被定义的父目标表中。如果第一目标链不在一个组中,系统则判断配对的目标链是否在一个组中。如果是,不做任何处理。如果配对的目标链不在一个组中,系统判断目标链的整型ID标识符是否小于配对的目标链属性的整型ID标识符。如果不小于,系统不生成任何附加的外部关键字或表。然而,如果根据步骤968,目标链的标识符小于配对的目标链的标识符,则在步骤964将来自引用的语义目标表的一个外部关键字加到父语义目标中。正如所看到的,步骤968中的判断是任选的,这样系统能更容易地将来自父语义目标表的外部关键字放入到所希望的引用的语义目标表中。
图25C示出了本发明转换具有〔1∶N〕、〔N∶1〕、〔N∶N〕最大路径基数对的目标链属性时,所采取的步骤。在步骤980,系统判断正在处理的目标链属性的最大路径基数是否小于或等于“1”。如果是,系统在步骤982将来自引用的父表的一个外部关键字加到目标链的父表中去。在步骤983判断目标链的最大基数是否小于或等于“1”。如果不是,系统在步骤984生成一新的关系表。在步骤986将一外部关键字插入到来自父表和引用的语义目标表的关系表中去。如果在步骤983判断结果是“是”,系统必须在步骤983a判断目标链是否被包含在一个多值组中。如果没有,系统则在步骤996判断由目标链指定的关系是否是多对多。在步骤988判断目标链的ID状态特征是否唯一。如果唯一,在步骤990将从引用的语义目标中加上的外部关键字作为一候选关键字。如果目标链的ID状态不唯一,则系统在步骤992判断ID状态是否为“无”。如果ID状态为无,则在步骤994将代用关键字加到在步骤984产生的关系表的一个新列中去。在各种情况下,系统都在步骤996检验目标链的最大路径基数是否是〔N∶N〕并且(1)是否目标链的包含者都在语义目标中或(2)都在组中。如果这些判断中有一个是真,就在步骤998产生交叉表,并将来自父语义目标表的外部关键字以及来自引用的语义目标表的外部关键字加到该交叉表中去。如果在步骤996确定一目标链的包含者包含在一组中并且另一包含在一语义目标中或一目标链的包含者包含在一语义目标中并且另一包含在一组中,则不生成交叉表。
如图26所示,不需要关系表或列来处理子型属性。一子型属性总是与相应的父型属性配对,于是本发明用父型属性来定义为父关系表和子型关系表产生的表之间的关系。
图27示出了在将父型属性转换成一个或多个关系表时本发明所采取的步骤。在步骤1010,系统找到由父型属性所引用的语义目标。在步骤1012,系统判断对于所引用语义目标是否存在一个表。如果不存在表,则在步骤1014为所引用的语义目标生成一个表。在步骤1016,将来自所引用的语义目标表的外部关键字放到父语义目标表中。最后在步骤1018,将外部关键字标记为一候选关键字。
图28示出了在转换子型组属性时本发明采取的步骤。在步骤1028,系统判断子型组的最小计数是否大于“0”。系统然后在步骤1030判断组的最大计数是否小于组中所包含的成员属性的个数。如果步骤1028和步骤1030的判断结果是“否”,则不做任何处理。但是如果在至少一个步骤中判断结果是“是”,则在步骤1032判断组的最大基数是否小于或等于1。如果组的最大基数大于“1”,则在步骤1034产生一新的关系表,并在步骤1036将来自父表的外部关键字加到该新的关系表中。最后,将一列加到表中,并且定义一二进制数据类型,用于在所选择的组中表明属性。
图29示出了为定义表的主关键字和修改任何在生成表时产生歧义的关键字,本发明所采取的步骤。在步骤1050,为每个已建立的表定义相应的表的主关键字。在步骤1054,系统判断是否有任何被标识的候选关键字。如果有候选的关键字,用户则在步骤1056选择主关键字或者是代用关键字(surrogate key)或者是数据关键字。在步骤1058,系统判断用户是否已选择了数据关键字。如果是,则在步骤1057提示用户从可用的候选关键字表中选择一关键字。如果用户已选择了代用关键字,则在步骤1060将一新列加入到表中,并插入该代用关键字。在步骤1061,将关系表中已选作关键字的所有列标记为主关键字。在步骤1062将其余的不用作主关键字的候选关键字定义为唯一的索引,一旦对于所有表都确定了所有主关键字,则在步骤1064修改与所有选择的候选关键字有关的外部关键字,以反映出哪个候选关键字选作主关键字。
如上所述,本发明并不产生数据库程序中的表。本发明或者将函数调用及其合适的变元送到数据库程序提供的例行程序中以建立起关系表,或者生成带有合适命令的文本文件,由数据程序读该文本元件以建立起关系表。
例如,本发明在建立用于Microsoft公司的Access数据库程序的表时,则调用预定的例行程序来产生表。下列函数调用可以建立Access中的关系表。
Start table(”Table Name”) add field(”Colname”,data type) · · · create primary key(”Colname,Colname...”) create index(”Colname,Colname...”,unique) End table <dp n="d52"/> Open table create foreign key(”reference table name,”Colname, Colname...”,table name) Close table
本代码生成一个表、增加无数个特定数据类型的列、设置主关键了并产生索引。此外,例行程序“建立外部关键字”在引用的表定义之后,还为该表定义了一个外部关键字。正如所看到的,在给出按上述各图所定义的表的定义之后,一般的程序设计人员就能确定调用什么样的命令或建立什么样的命令以使数据库程序能够生成相应的关系表。
尽管描述了本发明的优选实施例,但应清楚地看到在不背离本发明的精神和范围内可以作各种修改。
Claims (36)
1.一种建立语义目标数据模型的系统,使得用户能够生成数据库管理系统用于存储和检索数据的关系型数据库模式,该系统包括:
使得用户能够生成多个语义目标的装置,所述语义目标对应于限定了数据库模式的多个关系表;
使得用户能够将属性与至少一个语义目标联系起来的装置,所述属性描述了所述语义目标的所有实例所共有的至少一个特性;
使得用户能够定义各语义目标之间关系的装置;以及
用于将语义目标、属性以关系转换成限定数据库模式的一个或多个关系表的装置。
2.根据权利要求1的系统,其中,能与语义目标相联系的属性包括:
简单值属性,定义了语义目标的一单个特性;
组属性,包含一共同地限定语义目标的一个特性的一个或多个成员属性;
公式属性,定义了包括语义目标的一个特性的计算;以及
目标链属性,定义了两语义目标之间的关系。
3.根据权利要求2的系统,其中,简单值、组、公式以及目标属性每个都是从相应的简要特征表中派生出来的,该简要特征表包括从该简要特征表中产生的每个属性所共有的特征表以及从该简要特征表中产生的派生属性表。
4.根据权利要求3的系统,进一步包括用于改变简要特征表中特征以及更新从该简要特征表派生出的每个属性中的相应特征的装置。
5.根据权利要求3的系统,其中,简单值、组和目标链属性的简要特征表中的特征包括最小基数和最大基数,最小基数限定了语义目标必须具有的这些属性的最小实例数,最大基数限定了语义目标能够具有的这些属性的最大实例数。
6.根据权利要求5的系统,其中,组属性的简要特征表中的特征进一步包括:
最小计数,在有效情况下,包含该组属性的语义目标必须具有的组的最小成员属性数;以及
最大计数,在有效情况下,包含该组属性的语义目标能具有的组的最大成员属性数。
7.根据权利要求3的系统,其中,简单值、组、目标链属性的简要特征表中包括ID状态特征,用于限定包括该属性的语义目标的实例是否能唯一地由该属性确定。
8.根据权利要求2的系统,其中每个公式属性包括一个表达式特征,用于依据一个或多个属性或简要特征表的名称来定义一公式,系统进一步包括:
用于在多个语义目标中搜索表达式特征中的属性名称的装置和
用于定义通向在表达式特征中所使用的属性名称的路径,以使系统能够确定表达式特征中所使用的值的装置。
9.根据权利要求8的系统,其中,用于在多个语义目标中搜索表达式特征中的属性名称的装置包括:用于从公式属性到包含该公式属性的语义目标以及其余语义目标实施扩展环搜索的装置,该扩展环搜索产生一个或多个属性表,在这些属性表中搜索公式属性的表达或特征中的属性名称,每个表中包含的那些属性与公式属性具有共同的逻辑距离。
10.根据权利要求2的系统,其中与语义目标相联系的属性进一步包括:
父型属性,它表示第一语义目标是第二语义目标的父型;以及
子型属性,它表示第一语义目标是第二语义目标的子型。
11.根据权利要求1的系统,进一步包括:
用于验证多个语义目标的有效性,以判断用户在语义目标中是否产生了递归关系的装置。
12.根据权利要求11的系统,其中,用于验证多个语义目标有效性的装置进一步包括:用于判断是否第一语义目标唯一地由第二语文目标识别,并且第二语义目标唯一地由第一语义目标识别的装置。
13.根据权利要求11的系统,其中,每个公式属性包括一表达式特征,该表达式特征根据一个或多个属性定义计算,并且用于验证多个语义目标有效性的装置进一步包括:用于判断对于需要唯一实例的公式属性,最大基数的路径是否为“1”。
14.根据权利要求11的系统,其中用于验证多个语义目标有效性的装置进一步包括:用于判断在多个语义目标中是否存在一语义目标与其余的语义目标都无关系的装置。
15.一种用于产生关系型数据库模式以将数据存储在数据库中的方法,包括步骤:
产生欲被存储在数据库中的数据的模型,根据一个或多个语义目标定义该模型,每个语义目标包括一个或多个限定该语义目标特性的属性;以及
将数据模型转换成限定数据库模式的多个关系型数据库表。
16.根据权利要求15的方法,其中,所述属性包括定义语义目标一单个特性的简单值属性,该简单值属性具有一最大基数特征,用于限定语义目标所能具有的简单值属性的最大实例数,并且所述的转换数据模型步骤进一步还包括步骤:
为数据模型中的每个语义目标生成一关系表;
分析语义目标中的每个属性,以确定它是否是一简单值属性,并且,如果是:
确定简单值属性的最大基数;
如果最大基数小于或等于“1”,则在为该语义目标生成的关系数据库表中为该属性生成一附加的列,并且,否则
为该属性生成一分离的表,并将增加一外部关键字,该外部关键字将分离的表与为该语义目标所产生的表联系起来。
17.根据权利要求15的方法,其中属性包括组属性,该组属性具有一个或多个共同地限定语义目标的特性的成员属性,该组属性具有最大基数特征,用于限定语义目标所能具有的组属性的最大实例数,其中,转换数据模型的步骤进一步包括步骤:
判断该属性是否是组属性;并且如果是:
确定组属性的最大其数;
如果最大基数大于“1”,则生成一新表并增加一外部关键字,该外部关键字将新表与为语义目标所建立的表联系起来;并且
分别地转换组属性的每个成员属性。
18.根据权利要求17的方法,其中,组属性进一步包括最小计数特征,该特征表明语义目标必须具有的成员属性数,所述组属性还包括最大计数特征,该特征表明语义目标能具有的最多的成员属性数,其中转换数据模型的步骤进一步还包括:
判断(a)组属性的最小计数是否大于“0”,或者(b)最大计数是否小于组中所包含的成员属性数,并且如果是:
在存储成员属性的关系表中加一列;并且
在该列中插入一表示在语义目标的一个实例中存在的是哪些成员属性的代码。
19.根据权利要求15的方法,其中,属性包括公式属性,该属性设置了定义语义目标的特性的计算,所述公式属性具有公式型特征,用于定义公式属性的结果是否存储在数据库中,所述公式属性还具有值类型特征,用于表示由该公式属性所产生的数据的类型,其中,转换数据模型的步骤进一步包括:
读取公式类型特征,以判断是否将公式的结果存储在数据库中;以及
(a)读取值类型特征;
(b)如果公式类型特征表示存储公式的结果,则在由值类型特征标明的数据类型的关系表中增加一新列。
20.根据权利要求15的方法,其中,属性包括目标链属性,用于定义第一语义目标和引用的语义目标之间的关系,每个目标链属性在引用的语义目标中具有一配对的目标链属性,该目标链属性具有最大基数特征,它表示与第一语义目标的一个实例有关以的所引用的语义目标的实例数,其中,转换数据模型的步骤进一步所括步骤:
判断是否已为所引用的语义目标生成了关系表;
如果没有,则为所引用的语义目标生成一关系表;
确定目标链属性和配对的目标链属性的最大路径基数;
如果最大路径基数表明目标链属性将第一语义目标的一单个实例与所引用的语义目标的单个实例联系起来,则将来自于为所引用的语义目标生成的关系表的外部关键字加到为第一语义目标所生成的关系表中去。
21.根据权利要求20的方法,进一步包括步骤:
判断最大路径基数是否表示第一语义目标的一个实例与所引用的语义目标的二个或多个实例有关,并且,如果是:
将来自于为第一语义目标生成的关系表中的一外部关键字加到为所引用的语义目标生成的关系表中去。
22.根据权利要求20的方法,进一步包括步骤:
判断最大路径基数是否表示第一语义目标的二个或多个实例与所引用的语义目标的二个或多个实例有关,并且,如果是:
为所述目标链属性建立一交叉关系表;并且
将来自于为第一语义目标生成的关系表中的外部关键字以及来自于为所引用的语义目标生成的关系表中的外部关键字加入到所述交叉表中去。
23.根据权利要求15的方法,其中,所述属性包括父型属性,它表示一语义目标是一父语义目标的子型,其中,转换数据模型的步骤进一步包括步骤:
判断属性是否是父型属性,并且,如果是:
判断对于该父语义目标是否存在一关系表;
如果不存在关系表,则为该父语义目标生成一关系表,并且
将来自于为该父语义目标生成的表中的外部关键字加到为包括该父属性的语义目标生成的关系表中去。
24.一种用于解释语义目标数据模型中公式的方法,所述语义目标数据模型包括一个或多个具有一个或多个属性的语义目标,所述属性限定了语义目标的特性以及两个或多个语义目标之间的关系,其中,公式包括表达式特征,该表达式特征包括一个或多个定义在语义目标数据模型中的属性名称,所述方法包括步骤:
在语义目标数据模型中搜索包括在表达式特征中的属性名;
判断用在表达式特征中的属性名是否对应于一个以上定义在语义目标数据模型中的属性;
为语义目标数据模型中与用在表达式特征中的属性具有相同名称的每个属性,确定一个逻辑距离,即为该属性相距公式属性的逻辑距离;以及
选择与公式属性逻辑上最近的属性作为将用在表达式特征中的属性。
25.根据权利要求24的方法,其中,每个属性被包括在包含者中,所述包含者包括一个或多个属性,其中,所述的搜索语义目标数据模型的步骤进一步包括:
对表达式特征中的属性名进行扩展环搜索,这是通过:
建立一个属性表,它包括公式属性包含者以及包括在所述公式属性包含者中的所有属性;
分析表中的每个属性,以确定它是否与表达式特征中的属性名相匹配。
26.根据权利要求25的方法,其中,实施扩展环搜索的步骤进一步包括步骤:
判断表中的一属性是否是父型,并且,如果是,则将包含在相应父语义目标中的所有属性加到被搜索的属性表中去。
27.根据权利要求26的方法,其中,实施扩展环搜索的步骤进一步包括步骤:
判断表中的一属性是否是子型,并且,如果是,则将包含在相应子型语义目标中的所有属性加到被搜索的下一属性表中去。
28.一种验证语义目标数据模型有效性的方法,所述语义目标数据模型包括多个语义目标,每个语义目标包括一个或多个定义了语义目标的特性的属性或定义了两个或多个语义目标之间关系的目标链属性,所述方法包括步骤:
通过将语义目标数据模型中作为索引的每个语义目标插入到第一映象中去来建立一个第一映象;
将唯一标识该索引的语义目标数据模型中的所有语义目标的列表加到每个索引中去,分析第一映象,判断映像中的一个索引在其唯一地由该索引识别的语义目标表中是否具有一语义目标。
29.根据权利要求28的方法,其中属性包括公式属性,用于定义描述语义目标的特性的一个计算,所述公式属性具有根据语义目标数据模型中一个或多个属性限定所述计算的表达式特征,其中,验证语义目标数据模型有效性的步骤进一步包括步骤:
通过将语义目标数据模型中作为索引的每个公式属性插入到第二映象中去来建立一个第二映象;
将在索引所使用的公式属性的表达式特征中的所有属性表加到第二映象的每个索引中去;以及
分析第二映象,判断第二映象中的索引在其属性表中是否具有一属性,该属性是用于产生索引的一公式属性。
30.根据权利要求28的方法,其中用于验证语义目标数据模型有效性的步骤进一步包括步骤:
通过将语义目标数据模型中的作为索引的每个语义目标插入到第三映象中去来建立第三映象;
将包含在用作索引的语义目标中的所有目标链属性表加到第三映象的每个索引中去;
分析第三映象,以判断语义目标数据模型中的每个语义目标是否通过一个或多个目标链属性引用于另一语义目标。
31.一种用于建立数据库模式的系统,包括:
用于建立一个或多个语义目标的装置,其中每个语义目标表示存在数据库中的一个数据单元;
用于将一个或多个属性加到语义目标中的装置,每个属性表示语义目标中所有实例所共有的特性;以及
用于将一个或多个语义目标加到像簿中的装置。
32.根据权利要求31的系统,其中,属性包括目标链属性,用于表示两个或多个语义目标之间的关系该系统进一步包括:用于将目标链属性加入到语义目标中去,以表示该语义目标与另一语义目标之间关系的装置。
33.根据权利要求31的系统,其中,属性包括组属性,该组属性包括一个或多个共同描述语义目标的特性的成员属性,该系统进一步包括:
用于将组属性插入到一语义目标中去的装置;以及
将一属性插入到组属性中去的装置。
34.根据权利31的系统,其中,属性包括子型属性及父属性,该子型属性用于表示第一语义目标是第二语义目标的子型父属性表示第二语义目标是第一语义目标的父型,该系统进一步包括:
用于将父属性插入到第一语义目标中去的装置;
用于确定是第一语义目标的父型的第二语义目标的装置;以及
用于将子型属性插入到父语义目标中去的装置。
35.根据权利要求30的系统,其中,每个属性都具有相应的简要特征表,从该简要特征表中产生属性,简要特征表定义每个特征都具有的一个或多个特征,该系统进一步包括:
用于更换简要特征表中特征的装置;以及
用于更新从简要特征表中产生的每个属性同样地更换属性中特征的装置。
36.根据权利要求31的系统,进一步包括用于将像簿转换成一个或多个关系数据库表的装置,所述关系数据库表定义了数据库模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/145,997 | 1993-10-29 | ||
US08/145,997 US5548749A (en) | 1993-10-29 | 1993-10-29 | Semantic orbject modeling system for creating relational database schemas |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1137320A true CN1137320A (zh) | 1996-12-04 |
Family
ID=22515470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94194493A Pending CN1137320A (zh) | 1993-10-29 | 1994-09-13 | 用于建立关系型数据库模式的语义目标模型化系统 |
Country Status (14)
Country | Link |
---|---|
US (2) | US5548749A (zh) |
EP (1) | EP0727070B1 (zh) |
JP (1) | JP2957702B2 (zh) |
KR (1) | KR960706138A (zh) |
CN (1) | CN1137320A (zh) |
AT (1) | ATE180073T1 (zh) |
AU (1) | AU676395B2 (zh) |
BR (1) | BR9407897A (zh) |
CA (1) | CA2175243A1 (zh) |
DE (1) | DE69418474T2 (zh) |
ES (1) | ES2134959T3 (zh) |
NO (1) | NO961698L (zh) |
NZ (1) | NZ275544A (zh) |
WO (1) | WO1995012172A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311386C (zh) * | 1999-07-02 | 2007-04-18 | 皇家菲利浦电子有限公司 | 多媒体信息的元描述符 |
WO2007137468A1 (fr) * | 2006-05-26 | 2007-12-06 | Huawei Technologies Co., Ltd. | Procédé et système de création automatique de modèle relationnel |
CN100451968C (zh) * | 2001-12-05 | 2009-01-14 | 微软公司 | 语法创建系统 |
CN103810266A (zh) * | 2014-01-27 | 2014-05-21 | 中国电子科技集团公司第十研究所 | 语义网络目标识别判证方法 |
CN109145033A (zh) * | 2009-09-25 | 2019-01-04 | 阿德南·法科 | 计算机系统以及计算机实施方法 |
Families Citing this family (239)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604899A (en) * | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
US5870764A (en) * | 1993-05-12 | 1999-02-09 | Apple Computer, Inc. | Method of managing a data structure for concurrent serial and parallel revision of a work |
GB9320404D0 (en) * | 1993-10-04 | 1993-11-24 | Dixon Robert | Method & apparatus for data storage & retrieval |
US5548749A (en) * | 1993-10-29 | 1996-08-20 | Wall Data Incorporated | Semantic orbject modeling system for creating relational database schemas |
EP0667586A3 (en) * | 1994-02-14 | 1996-08-28 | Digital Equipment Corp | Database creation system. |
US5627979A (en) * | 1994-07-18 | 1997-05-06 | International Business Machines Corporation | System and method for providing a graphical user interface for mapping and accessing objects in data stores |
FR2724471B1 (fr) * | 1994-09-13 | 1996-10-25 | Bull Sa | Dispositif de generation d'interfaces orientees objet pour des bases de donnees relationnelles et procede mis en oeuvre par ledit dispositif |
US5809296A (en) * | 1994-11-29 | 1998-09-15 | St Computer Systems & Services Ltd. | Method and structure for clustering database tables into classes and presenting each class as an E-R model |
US5684985A (en) * | 1994-12-15 | 1997-11-04 | Ufil Unified Data Technologies Ltd. | Method and apparatus utilizing bond identifiers executed upon accessing of an endo-dynamic information node (EDIN) |
US5799309A (en) * | 1994-12-29 | 1998-08-25 | International Business Machines Corporation | Generating an optimized set of relational queries fetching data in an object-relational database |
JP2947111B2 (ja) * | 1995-02-17 | 1999-09-13 | 日本電気株式会社 | 交換機のデータ引き継ぎ方法およびシステム |
WO1996034350A1 (en) * | 1995-04-24 | 1996-10-31 | Aspect Development, Inc. | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon |
US5829006A (en) * | 1995-06-06 | 1998-10-27 | International Business Machines Corporation | System and method for efficient relational query generation and tuple-to-object translation in an object-relational gateway supporting class inheritance |
US5819086A (en) * | 1995-06-07 | 1998-10-06 | Wall Data Incorporated | Computer system for creating semantic object models from existing relational database schemas |
US5717924A (en) * | 1995-07-07 | 1998-02-10 | Wall Data Incorporated | Method and apparatus for modifying existing relational database schemas to reflect changes made in a corresponding object model |
US6543046B1 (en) * | 1995-07-20 | 2003-04-01 | Accenture Llp | Apparatus and method for navigating objects within a computer-implemented object environment |
WO1997007470A1 (en) * | 1995-08-17 | 1997-02-27 | Wall Data Incorporated | Method and apparatus for storing and retrieving data in a relational database using an object model |
US5732257A (en) * | 1995-09-13 | 1998-03-24 | Hewlett-Packard Co. | Object conversion method from a flat object space to a class structured space |
US5659742A (en) * | 1995-09-15 | 1997-08-19 | Infonautics Corporation | Method for storing multi-media information in an information retrieval system |
US5717914A (en) * | 1995-09-15 | 1998-02-10 | Infonautics Corporation | Method for categorizing documents into subjects using relevance normalization for documents retrieved from an information retrieval system in response to a query |
US5742816A (en) * | 1995-09-15 | 1998-04-21 | Infonautics Corporation | Method and apparatus for identifying textual documents and multi-mediafiles corresponding to a search topic |
US5640553A (en) * | 1995-09-15 | 1997-06-17 | Infonautics Corporation | Relevance normalization for documents retrieved from an information retrieval system in response to a query |
US5675788A (en) * | 1995-09-15 | 1997-10-07 | Infonautics Corp. | Method and apparatus for generating a composite document on a selected topic from a plurality of information sources |
US5873076A (en) * | 1995-09-15 | 1999-02-16 | Infonautics Corporation | Architecture for processing search queries, retrieving documents identified thereby, and method for using same |
US5822731A (en) * | 1995-09-15 | 1998-10-13 | Infonautics Corporation | Adjusting a hidden Markov model tagger for sentence fragments |
US5721902A (en) * | 1995-09-15 | 1998-02-24 | Infonautics Corporation | Restricted expansion of query terms using part of speech tagging |
DE19538240A1 (de) * | 1995-10-13 | 1998-08-06 | Annette Brueckner | Informationssystem und Verfahren zur Speicherung von Daten in einem Informationssystem |
US6112199A (en) * | 1995-10-18 | 2000-08-29 | Nelson; Paul M. | Data item values |
US5794250A (en) * | 1995-10-20 | 1998-08-11 | Ncr Corporation | Method and apparatus for extending existing database management system for new data types |
US5864843A (en) * | 1995-10-20 | 1999-01-26 | Ncr Corporation | Method and apparatus for extending a database management system to operate with diverse object servers |
US5689698A (en) * | 1995-10-20 | 1997-11-18 | Ncr Corporation | Method and apparatus for managing shared data using a data surrogate and obtaining cost parameters from a data dictionary by evaluating a parse tree object |
US6085223A (en) * | 1995-10-20 | 2000-07-04 | Ncr Corporation | Method and apparatus for providing database information to non-requesting clients |
US5754841A (en) * | 1995-10-20 | 1998-05-19 | Ncr Corporation | Method and apparatus for parallel execution of user-defined functions in an object-relational database management system |
US5930786A (en) * | 1995-10-20 | 1999-07-27 | Ncr Corporation | Method and apparatus for providing shared data to a requesting client |
US6069627A (en) * | 1995-11-01 | 2000-05-30 | International Business Machines Corporation | Extender user interface |
US5873092A (en) * | 1995-12-14 | 1999-02-16 | International Business Machines Corporation | Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties |
US5797137A (en) * | 1996-03-26 | 1998-08-18 | Golshani; Forouzan | Method for converting a database schema in relational form to a schema in object-oriented form |
US5970124A (en) | 1996-06-05 | 1999-10-19 | Voice Fx Corporation | Sponsored information distribution method and apparatus |
US5907846A (en) * | 1996-06-07 | 1999-05-25 | Electronic Data Systems Corporation | Method and system for accessing relational databases using objects |
EP0979464A4 (en) | 1996-06-11 | 2005-04-06 | Yeong Kuang Oon | ITERACTIVE PROBLEM SOLUTION PROCESS |
US5787442A (en) * | 1996-07-11 | 1998-07-28 | Microsoft Corporation | Creating interobject reference links in the directory service of a store and forward replication computer network |
US5778373A (en) * | 1996-07-15 | 1998-07-07 | At&T Corp | Integration of an information server database schema by generating a translation map from exemplary files |
US5819254A (en) * | 1996-07-23 | 1998-10-06 | Wall Data Incorporated | Method of transferring data between relational database tables |
US5826265A (en) * | 1996-12-06 | 1998-10-20 | International Business Machines Corporation | Data management system having shared libraries |
US6088693A (en) * | 1996-12-06 | 2000-07-11 | International Business Machines Corporation | Data management system for file and database management |
US6035297A (en) * | 1996-12-06 | 2000-03-07 | International Business Machines Machine | Data management system for concurrent engineering |
US5905498A (en) * | 1996-12-24 | 1999-05-18 | Correlate Technologies Ltd | System and method for managing semantic network display |
US6865524B1 (en) | 1997-01-08 | 2005-03-08 | Trilogy Development Group, Inc. | Method and apparatus for attribute selection |
US5918235A (en) * | 1997-04-04 | 1999-06-29 | Hewlett-Packard Company | Object surrogate with active computation and probablistic counter |
GB2324450A (en) * | 1997-04-19 | 1998-10-21 | Ibm | Graphical user interface |
US6047284A (en) * | 1997-05-14 | 2000-04-04 | Portal Software, Inc. | Method and apparatus for object oriented storage and retrieval of data from a relational database |
US6108664A (en) * | 1997-10-31 | 2000-08-22 | Oracle Corporation | Object views for relational data |
US6385618B1 (en) * | 1997-12-22 | 2002-05-07 | Sun Microsystems, Inc. | Integrating both modifications to an object model and modifications to a database into source code by an object-relational mapping tool |
US6442557B1 (en) * | 1998-02-27 | 2002-08-27 | Prc Inc. | Evaluation of enterprise architecture model including relational database |
US6182064B1 (en) | 1998-03-06 | 2001-01-30 | International Business Machines Corporation | Method and system for identifying an object located among a number of multiple interconnected computing systems |
US6775674B1 (en) * | 1998-03-26 | 2004-08-10 | Sap Aktiengesellschaft | Auto completion of relationships between objects in a data model |
US6327606B1 (en) * | 1998-06-24 | 2001-12-04 | Oracle Corp. | Memory management of complex objects returned from procedure calls |
US6915301B2 (en) * | 1998-08-25 | 2005-07-05 | International Business Machines Corporation | Dynamic object properties |
GB2341250A (en) * | 1998-09-04 | 2000-03-08 | Balaena Limited | Database structure avoids duplication of stored data |
US6115709A (en) * | 1998-09-18 | 2000-09-05 | Tacit Knowledge Systems, Inc. | Method and system for constructing a knowledge profile of a user having unrestricted and restricted access portions according to respective levels of confidence of content of the portions |
US7117433B1 (en) | 1998-09-29 | 2006-10-03 | International Business Machines Corporation | HTML mapping substitution graphical user interface for display of elements mapped to HTML files |
KR20010093775A (ko) * | 1998-09-30 | 2001-10-29 | 아이투 테크놀로지스 인코포레이티드 | 다차원 데이터 관리 시스템 |
US6327587B1 (en) | 1998-10-05 | 2001-12-04 | Digital Archaeology, Inc. | Caching optimization with disk and/or memory cache management |
US6601058B2 (en) | 1998-10-05 | 2003-07-29 | Michael Forster | Data exploration system and method |
US6735593B1 (en) * | 1998-11-12 | 2004-05-11 | Simon Guy Williams | Systems and methods for storing data |
US7035855B1 (en) * | 2000-07-06 | 2006-04-25 | Experian Marketing Solutions, Inc. | Process and system for integrating information from disparate databases for purposes of predicting consumer behavior |
US7272593B1 (en) * | 1999-01-26 | 2007-09-18 | International Business Machines Corporation | Method and apparatus for similarity retrieval from iterative refinement |
US9262383B2 (en) * | 1999-05-21 | 2016-02-16 | E-Numerate Solutions, Inc. | System, method, and computer program product for processing a markup document |
US9268748B2 (en) * | 1999-05-21 | 2016-02-23 | E-Numerate Solutions, Inc. | System, method, and computer program product for outputting markup language documents |
JP3211956B2 (ja) * | 1999-08-31 | 2001-09-25 | 勲 清水 | データベースシステム |
US6748389B1 (en) | 1999-09-21 | 2004-06-08 | International Business Machines Corporation | Method, system, and program for inverting columns in a database table |
US6965888B1 (en) | 1999-09-21 | 2005-11-15 | International Business Machines Corporation | Method, system, program, and data structure for cleaning a database table using a look-up table |
US6920443B1 (en) | 1999-09-21 | 2005-07-19 | International Business Machines, Corporation | Method, system, program, and data structure for transforming database tables |
US7120638B1 (en) | 1999-09-21 | 2006-10-10 | International Business Machines Corporation | Method, system, program, and data structure for cleaning a database table |
US6604095B1 (en) | 1999-09-21 | 2003-08-05 | International Business Machines Corporation | Method, system, program, and data structure for pivoting columns in a database table |
US6704724B1 (en) | 1999-12-14 | 2004-03-09 | Ncr Corporation | Parallel optimizer hints with a direct manipulation user interface |
KR100609575B1 (ko) | 1999-12-31 | 2006-08-04 | 주식회사 케이티 | 객체지향형 공간 데이터베이스 관리시스템에서의 지리정보파일 저장 방법 |
US6546365B1 (en) | 2000-02-04 | 2003-04-08 | International Business Machines Corporation | System for national language support and automated translation table |
US6915298B1 (en) * | 2000-02-09 | 2005-07-05 | International Business Machines Corporation | User-defined relationships for diagramming user-defined database relations |
US7072896B2 (en) * | 2000-02-16 | 2006-07-04 | Verizon Laboratories Inc. | System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor |
US6931414B1 (en) * | 2000-02-18 | 2005-08-16 | Microsoft Corporation | Creating visual data models combining multiple inter-related model segments |
AU2001239425A1 (en) * | 2000-03-31 | 2001-10-15 | British Telecommunications Public Limited Company | Resource modelling |
AU2001239424A1 (en) | 2000-03-31 | 2001-10-15 | British Telecommunications Public Limited Company | Resource creation method and tool |
EP1290581A4 (en) * | 2000-04-10 | 2008-02-13 | Innovit Pty Ltd | ELECTRONIC CATALOG |
US6609132B1 (en) | 2000-04-11 | 2003-08-19 | Revelink, Inc. | Object data model for a framework for creation, update and view navigation of data objects and textual annotations of relations between data objects |
US6618732B1 (en) | 2000-04-11 | 2003-09-09 | Revelink, Inc. | Database query handler supporting querying of textual annotations of relations between data objects |
US6618733B1 (en) | 2000-04-11 | 2003-09-09 | Revelink Inc. | View navigation for creation, update and querying of data objects and textual annotations of relations between data objects |
AU2001251527A1 (en) * | 2000-04-11 | 2001-10-23 | Revelink, Inc. | Framework for creation, update, query, and view navigation of data objects and textual annotations of relations between data objects |
US6591275B1 (en) | 2000-06-02 | 2003-07-08 | Sun Microsystems, Inc. | Object-relational mapping for tables without primary keys |
US7016917B2 (en) | 2000-06-05 | 2006-03-21 | International Business Machines Corporation | System and method for storing conceptual information |
US6611837B2 (en) | 2000-06-05 | 2003-08-26 | International Business Machines Corporation | System and method for managing hierarchical objects |
AUPQ966400A0 (en) * | 2000-08-24 | 2000-09-21 | Xemplex Pty Ltd | Method of graphically defining a formula |
US6640231B1 (en) * | 2000-10-06 | 2003-10-28 | Ontology Works, Inc. | Ontology for database design and application development |
US6990501B2 (en) | 2000-11-30 | 2006-01-24 | Monsanto Technology, Llc | Method for organizing laboratory information in a database |
US20030014420A1 (en) * | 2001-04-20 | 2003-01-16 | Jessee Charles B. | Method and system for data analysis |
EA008675B1 (ru) * | 2001-06-22 | 2007-06-29 | Нервана, Инк. | Система и способ поиска, управления, доставки и представления знаний |
US6795821B2 (en) | 2001-07-17 | 2004-09-21 | Trendium, Inc. | Database systems, methods and computer program products including primary key and super key indexes for use with partitioned tables |
US8010887B2 (en) * | 2001-09-21 | 2011-08-30 | International Business Machines Corporation | Implementing versioning support for data using a two-table approach that maximizes database efficiency |
US7096231B2 (en) * | 2001-12-28 | 2006-08-22 | American Management Systems, Inc. | Export engine which builds relational database directly from object model |
US7062502B1 (en) * | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US8099393B2 (en) | 2002-03-22 | 2012-01-17 | Oracle International Corporation | Transaction in memory object store |
US20030188278A1 (en) * | 2002-03-26 | 2003-10-02 | Carrie Susan Elizabeth | Method and apparatus for accelerating digital logic simulations |
US20030200220A1 (en) * | 2002-04-23 | 2003-10-23 | International Business Machines Corporation | Method, system, and program product for the implementation of an attributegroup to aggregate the predefined attributes for an information entity within a content management system |
US7383284B2 (en) * | 2002-04-30 | 2008-06-03 | Sap Aktiengesellschaft | Inventory management |
EP1525541A2 (en) * | 2002-07-26 | 2005-04-27 | Ron Everett | Data management architecture associating generic data items using references |
US7213026B2 (en) * | 2002-08-23 | 2007-05-01 | Sun Microsystems, Inc. | Apparatus and method for associating classes |
US9805373B1 (en) | 2002-11-19 | 2017-10-31 | Oracle International Corporation | Expertise services platform |
US7640267B2 (en) * | 2002-11-20 | 2009-12-29 | Radar Networks, Inc. | Methods and systems for managing entities in a computing device using semantic objects |
US7584208B2 (en) | 2002-11-20 | 2009-09-01 | Radar Networks, Inc. | Methods and systems for managing offers and requests in a network |
US7158962B2 (en) | 2002-11-27 | 2007-01-02 | International Business Machines Corporation | System and method for automatically linking items with multiple attributes to multiple levels of folders within a content management system |
US7426520B2 (en) | 2003-09-10 | 2008-09-16 | Exeros, Inc. | Method and apparatus for semantic discovery and mapping between data sources |
US10325272B2 (en) * | 2004-02-20 | 2019-06-18 | Information Resources, Inc. | Bias reduction using data fusion of household panel data and transaction data |
US7433876B2 (en) * | 2004-02-23 | 2008-10-07 | Radar Networks, Inc. | Semantic web portal and platform |
GB0407150D0 (en) * | 2004-03-30 | 2004-05-05 | British Telecomm | Distributed computer |
US8225221B2 (en) * | 2004-04-12 | 2012-07-17 | Microsoft Corporation | Method and apparatus for constructing representations of objects and entities |
US7689410B2 (en) * | 2004-04-23 | 2010-03-30 | Microsoft Corporation | Lexical semantic structure |
US7761858B2 (en) * | 2004-04-23 | 2010-07-20 | Microsoft Corporation | Semantic programming language |
EP1596311A1 (fr) * | 2004-05-10 | 2005-11-16 | France Telecom | Système et procédé de gestion de tables de données |
US7450696B2 (en) * | 2004-05-11 | 2008-11-11 | At&T Intellectual Property I, L.P. | Knowledge management, capture and modeling tool for multi-modal communications |
US7672966B2 (en) * | 2004-06-30 | 2010-03-02 | Microsoft Corporation | Adding extrinsic data columns to an existing database schema using a temporary column pool |
US9038001B2 (en) * | 2004-07-01 | 2015-05-19 | Mindjet Llc | System and method for graphically illustrating external data source information in the form of a visual hierarchy in an electronic workspace |
US9047388B2 (en) | 2004-07-01 | 2015-06-02 | Mindjet Llc | System, method, and software application for displaying data from a web service in a visual map |
US20090228447A1 (en) * | 2004-07-01 | 2009-09-10 | Creekbaum William J | System, method, and solfware application for enabling a user to search an external domain within a visual mapping interface |
EP1615127B1 (en) * | 2004-07-06 | 2015-04-22 | Comptel Corporation | Data processing in a mediation or service provisioning system |
US7305413B2 (en) * | 2004-12-14 | 2007-12-04 | Microsoft Corporation | Semantic authoring, runtime and training environment |
US7693918B2 (en) * | 2005-03-28 | 2010-04-06 | Microsoft Corporation | Rapid prototyping, generating and dynamically modifying a schema representing a database |
US8412780B2 (en) | 2005-03-30 | 2013-04-02 | Google Inc. | Methods and systems for providing current email addresses and contact information for members within a social network |
US8223935B2 (en) | 2005-04-30 | 2012-07-17 | Oracle International Corporation | Revenue management systems and methods |
JP4664410B2 (ja) | 2005-06-28 | 2011-04-06 | オラクル・インターナショナル・コーポレイション | 収益管理システムおよび方法 |
AU2006275665A1 (en) | 2005-07-28 | 2007-02-08 | Oracle International Corporation | Revenue management system and method |
US20070106797A1 (en) * | 2005-09-29 | 2007-05-10 | Nortel Networks Limited | Mission goal statement to policy statement translation |
US20070078701A1 (en) * | 2005-09-30 | 2007-04-05 | Karol Bliznak | Systems and methods for managing internal controls with import interface for external test results |
US7558808B2 (en) * | 2005-10-17 | 2009-07-07 | Accenture Global Services Gmbh | Data model for performance management system |
US8223777B2 (en) | 2005-11-15 | 2012-07-17 | Oracle International Corporation | Gateway for achieving low latency and high availability in a real time event processing system |
US7779052B2 (en) * | 2005-12-12 | 2010-08-17 | Verizon Business Global Llc | Network management system |
US20070143250A1 (en) * | 2005-12-20 | 2007-06-21 | Beckman Coulter, Inc. | Adaptable database system |
US20070156712A1 (en) * | 2005-12-28 | 2007-07-05 | Wasserman Brian J | Semantic grammar and engine framework |
US20070156472A1 (en) * | 2005-12-29 | 2007-07-05 | Karol Bliznak | Systems and methods for testing internal control effectiveness |
US20070250499A1 (en) * | 2006-04-21 | 2007-10-25 | Simon Widdowson | Method and system for finding data objects within large data-object libraries |
US10268970B2 (en) * | 2006-06-07 | 2019-04-23 | International Business Machines Corporation | Method, system and program product for generating an implementation of business rules linked to an upper layer business model |
US8538786B2 (en) * | 2006-06-07 | 2013-09-17 | International Business Machines Corporation | Method, system and program product for generating an implementation of a business rule including a volatile portion |
US8103703B1 (en) | 2006-06-29 | 2012-01-24 | Mindjet Llc | System and method for providing content-specific topics in a mind mapping system |
US8924838B2 (en) | 2006-08-09 | 2014-12-30 | Vcvc Iii Llc. | Harvesting data from page |
US7801856B2 (en) * | 2006-08-09 | 2010-09-21 | Oracle International Corporation | Using XML for flexible replication of complex types |
WO2008039502A2 (en) * | 2006-09-26 | 2008-04-03 | Rhythmbase Communications, Inc. | Adaptable computing architecture |
US8370479B2 (en) | 2006-10-03 | 2013-02-05 | Axeda Acquisition Corporation | System and method for dynamically grouping devices based on present device conditions |
WO2008041242A2 (en) * | 2006-10-05 | 2008-04-10 | Brainwave Applications Limited | A novel database |
US8688749B1 (en) | 2011-03-31 | 2014-04-01 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US8515912B2 (en) | 2010-07-15 | 2013-08-20 | Palantir Technologies, Inc. | Sharing and deconflicting data changes in a multimaster database system |
US7698259B2 (en) * | 2006-11-22 | 2010-04-13 | Sap Ag | Semantic search in a database |
US20080154939A1 (en) * | 2006-12-22 | 2008-06-26 | Unisys Corporation | Information transfer from object-oriented repository to relational database |
US8065397B2 (en) | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US20080172628A1 (en) * | 2007-01-15 | 2008-07-17 | Microsoft Corporation | User Experience for Creating Semantic Relationships |
US8160984B2 (en) | 2007-01-26 | 2012-04-17 | Symphonyiri Group, Inc. | Similarity matching of a competitor's products |
US10621203B2 (en) * | 2007-01-26 | 2020-04-14 | Information Resources, Inc. | Cross-category view of a dataset using an analytic platform |
US8504598B2 (en) | 2007-01-26 | 2013-08-06 | Information Resources, Inc. | Data perturbation of non-unique values |
US20080263000A1 (en) * | 2007-01-26 | 2008-10-23 | John Randall West | Utilizing aggregated data |
US20080250054A1 (en) * | 2007-02-20 | 2008-10-09 | Donald Bert Nickel | Object based heuristics database platform |
US9098263B2 (en) * | 2007-04-30 | 2015-08-04 | Microsoft Technology Licensing, Llc | Database application assembly and preparation |
US7761473B2 (en) | 2007-05-18 | 2010-07-20 | Microsoft Corporation | Typed relationships between items |
US8401987B2 (en) * | 2007-07-17 | 2013-03-19 | International Business Machines Corporation | Managing validation models and rules to apply to data sets |
US7996416B2 (en) * | 2007-08-31 | 2011-08-09 | Red Hat, Inc. | Parameter type prediction in object relational mapping |
US8423955B2 (en) * | 2007-08-31 | 2013-04-16 | Red Hat, Inc. | Method and apparatus for supporting multiple business process languages in BPM |
US9058571B2 (en) * | 2007-08-31 | 2015-06-16 | Red Hat, Inc. | Tool for automated transformation of a business process definition into a web application package |
US7873611B2 (en) * | 2007-08-31 | 2011-01-18 | Red Hat, Inc. | Boolean literal and parameter handling in object relational mapping |
US8914804B2 (en) * | 2007-09-12 | 2014-12-16 | Red Hat, Inc. | Handling queues associated with web services of business processes |
US8825713B2 (en) * | 2007-09-12 | 2014-09-02 | Red Hat, Inc. | BPM system portable across databases |
US20090076887A1 (en) * | 2007-09-16 | 2009-03-19 | Nova Spivack | System And Method Of Collecting Market-Related Data Via A Web-Based Networking Environment |
US20090248740A1 (en) * | 2007-11-20 | 2009-10-01 | Microsoft Corporation | Database form and report creation and reuse |
US9152656B2 (en) * | 2007-11-20 | 2015-10-06 | Microsoft Technology Licensing, Llc | Database data type creation and reuse |
US8954952B2 (en) * | 2007-11-30 | 2015-02-10 | Red Hat, Inc. | Portable business process deployment model across different application servers |
US20090157616A1 (en) * | 2007-12-12 | 2009-06-18 | Richard Barber | System and method for enabling a user to search and retrieve individual topics in a visual mapping system |
US20090157801A1 (en) * | 2007-12-12 | 2009-06-18 | Richard Barber | System and method for integrating external system data in a visual mapping system |
US8161396B2 (en) * | 2007-12-20 | 2012-04-17 | Mindjet Llc | System and method for facilitating collaboration and communication in a visual mapping system by tracking user presence in individual topics |
US20090228501A1 (en) * | 2008-03-06 | 2009-09-10 | Shockro John J | Joint response incident management system |
US7953755B2 (en) * | 2008-03-24 | 2011-05-31 | Dataura LLC | Semantic relational database |
US20090282068A1 (en) * | 2008-05-12 | 2009-11-12 | Shockro John J | Semantic packager |
US20090282063A1 (en) * | 2008-05-12 | 2009-11-12 | Shockro John J | User interface mechanism for saving and sharing information in a context |
US9348804B2 (en) * | 2008-05-12 | 2016-05-24 | The Nielsen Company (Us), Llc | Methods and apparatus to provide a choice selection with data presentation |
US9720971B2 (en) * | 2008-06-30 | 2017-08-01 | International Business Machines Corporation | Discovering transformations applied to a source table to generate a target table |
US20100070891A1 (en) * | 2008-09-18 | 2010-03-18 | Creekbaum William J | System and method for configuring an application via a visual map interface |
US9396455B2 (en) | 2008-11-10 | 2016-07-19 | Mindjet Llc | System, method, and software application for enabling a user to view and interact with a visual map in an external application |
US8195703B1 (en) * | 2008-12-02 | 2012-06-05 | Cellco Partnership | System and method for storage of disparate items by a database |
CN102171693B (zh) * | 2008-12-16 | 2015-05-20 | 诺基亚公司 | 用于向上下文模型提供多维处理的方法、装置和计算机程序产品 |
US8200617B2 (en) | 2009-04-15 | 2012-06-12 | Evri, Inc. | Automatic mapping of a location identifier pattern of an object to a semantic type using object metadata |
WO2010120925A2 (en) | 2009-04-15 | 2010-10-21 | Evri Inc. | Search and search optimization using a pattern of a location identifier |
US10628847B2 (en) | 2009-04-15 | 2020-04-21 | Fiver Llc | Search-enhanced semantic advertising |
WO2010120929A2 (en) | 2009-04-15 | 2010-10-21 | Evri Inc. | Generating user-customized search results and building a semantics-enhanced search engine |
US8392267B1 (en) | 2009-06-30 | 2013-03-05 | Mindjet Llc | System, method, and software application for dynamically generating a link to an online procurement site within a software application |
WO2011088396A1 (en) * | 2010-01-15 | 2011-07-21 | Group Business Software Ag | Apparatus and method for constructing data applications in an unstructured data environment |
US20110178847A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for identifying a selected demographic's preferences using spend level data |
US8255268B2 (en) * | 2010-01-20 | 2012-08-28 | American Express Travel Related Services Company, Inc. | System and method for matching merchants based on consumer spend behavior |
US20110178848A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for matching consumers based on spend behavior |
US8571919B2 (en) * | 2010-01-20 | 2013-10-29 | American Express Travel Related Services Company, Inc. | System and method for identifying attributes of a population using spend level data |
US20110178845A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for matching merchants to a population of consumers |
US20110178841A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for clustering a population using spend level data |
US20110178855A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, | System and method for increasing marketing performance using spend level data |
US20110178843A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for using spend behavior to identify a population of consumers that meet a specified criteria |
US20110178846A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for using spend level data to match a population of consumers to merchants |
US20110178844A1 (en) * | 2010-01-20 | 2011-07-21 | American Express Travel Related Services Company, Inc. | System and method for using spend behavior to identify a population of merchants |
US20120041989A1 (en) * | 2010-08-16 | 2012-02-16 | Tata Consultancy Services Limited | Generating assessment data |
US8346775B2 (en) | 2010-08-31 | 2013-01-01 | International Business Machines Corporation | Managing information |
US8478786B2 (en) * | 2010-09-14 | 2013-07-02 | Microsoft Corporation | Automatic layout derivation and implementation |
US9323807B2 (en) * | 2010-11-03 | 2016-04-26 | Sap Se | Graphical manipulation of data objects |
US9348941B2 (en) | 2011-06-16 | 2016-05-24 | Microsoft Technology Licensing, Llc | Specification of database table relationships for calculation |
DE102011087843B4 (de) * | 2011-12-06 | 2013-07-11 | Continental Automotive Gmbh | Verfahren und System zur Auswahl mindestens eines Datensatzes aus einer relationalen Datenbank |
US20140317146A1 (en) * | 2012-01-18 | 2014-10-23 | XANAMEDIA, Inc. | Method and system for the construction and management of complex ecosystem relationship models using a defined bidirectional entity relationship vocabulary for a multidimensional relationship data store |
US8782004B2 (en) * | 2012-01-23 | 2014-07-15 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
US8930303B2 (en) | 2012-03-30 | 2015-01-06 | International Business Machines Corporation | Discovering pivot type relationships between database objects |
US9116716B2 (en) | 2012-06-24 | 2015-08-25 | Veerai Bharatia | Systems and methods for declarative applications |
GB2505183A (en) * | 2012-08-21 | 2014-02-26 | Ibm | Discovering composite keys |
US9299050B2 (en) * | 2012-09-04 | 2016-03-29 | Optymyze PTE Ltd. | System and method of representing business units in sales performance management using entity tables containing explicit entity and internal entity IDs |
KR101445580B1 (ko) * | 2012-09-27 | 2014-10-14 | 배재대학교 산학협력단 | 유비쿼터스 센서 네트워크에 있어서 센서노드 데이터의 표현 방법 |
US9081975B2 (en) | 2012-10-22 | 2015-07-14 | Palantir Technologies, Inc. | Sharing information between nexuses that use different classification schemes for information access control |
US9501761B2 (en) | 2012-11-05 | 2016-11-22 | Palantir Technologies, Inc. | System and method for sharing investigation results |
US20140149093A1 (en) * | 2012-11-28 | 2014-05-29 | James Michael Amulu | Modeling content data for generating information models |
US9116953B2 (en) * | 2013-05-17 | 2015-08-25 | Sap Se | Calculation engine with dynamic partitioning of intermediate results |
US9116960B2 (en) * | 2013-05-17 | 2015-08-25 | Sap Se | Calculation engine with optimized multi-part querying |
US8886601B1 (en) | 2013-06-20 | 2014-11-11 | Palantir Technologies, Inc. | System and method for incrementally replicating investigative analysis data |
US9569070B1 (en) | 2013-11-11 | 2017-02-14 | Palantir Technologies, Inc. | Assisting in deconflicting concurrency conflicts |
US20150220945A1 (en) * | 2014-01-31 | 2015-08-06 | Mastercard International Incorporated | Systems and methods for developing joint predictive scores between non-payment system merchants and payment systems through inferred match modeling system and methods |
US9009827B1 (en) | 2014-02-20 | 2015-04-14 | Palantir Technologies Inc. | Security sharing system |
US9785773B2 (en) | 2014-07-03 | 2017-10-10 | Palantir Technologies Inc. | Malware data item analysis |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
US9021260B1 (en) | 2014-07-03 | 2015-04-28 | Palantir Technologies Inc. | Malware data item analysis |
US20160092829A1 (en) * | 2014-09-29 | 2016-03-31 | Oracle International Corporation | Consigned inventory management system |
US20160188710A1 (en) * | 2014-12-29 | 2016-06-30 | Wipro Limited | METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE |
US10621198B1 (en) | 2015-12-30 | 2020-04-14 | Palantir Technologies Inc. | System and method for secure database replication |
US10262053B2 (en) | 2016-12-22 | 2019-04-16 | Palantir Technologies Inc. | Systems and methods for data replication synchronization |
US10984030B2 (en) | 2017-03-20 | 2021-04-20 | International Business Machines Corporation | Creating cognitive intelligence queries from multiple data corpuses |
US11100100B2 (en) | 2017-03-20 | 2021-08-24 | International Business Machines Corporation | Numeric data type support for cognitive intelligence queries |
US11182414B2 (en) | 2017-03-20 | 2021-11-23 | International Business Machines Corporation | Search queries of multi-datatype databases |
US11080273B2 (en) | 2017-03-20 | 2021-08-03 | International Business Machines Corporation | Image support for cognitive intelligence queries |
US10068002B1 (en) | 2017-04-25 | 2018-09-04 | Palantir Technologies Inc. | Systems and methods for adaptive data replication |
US10430062B2 (en) | 2017-05-30 | 2019-10-01 | Palantir Technologies Inc. | Systems and methods for geo-fenced dynamic dissemination |
US11030494B1 (en) | 2017-06-15 | 2021-06-08 | Palantir Technologies Inc. | Systems and methods for managing data spills |
US10380196B2 (en) | 2017-12-08 | 2019-08-13 | Palantir Technologies Inc. | Systems and methods for using linked documents |
US10915542B1 (en) | 2017-12-19 | 2021-02-09 | Palantir Technologies Inc. | Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme |
US11341418B2 (en) * | 2018-11-13 | 2022-05-24 | Salveretec PRC | Ascriptive and descriptive entities for process and translation: a limited iterative ontological notation |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4930071A (en) * | 1987-06-19 | 1990-05-29 | Intellicorp, Inc. | Method for integrating a knowledge-based system with an arbitrary database system |
US5278946A (en) * | 1989-12-04 | 1994-01-11 | Hitachi, Ltd. | Method of presenting multimedia data in a desired form by comparing and replacing a user template model with analogous portions of a system |
US5195178A (en) * | 1990-04-27 | 1993-03-16 | Bachman Information Systems, Inc. | Adaptive window system for dynamically modeling information systems |
GB2253500A (en) * | 1990-08-23 | 1992-09-09 | Data General Corp | Object oriented-data bases |
US5307499A (en) * | 1990-11-30 | 1994-04-26 | Singapore Computer Systems Limited | Interpretive object-oriented facility which can access pre-compiled classes |
US5295256A (en) * | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
US5212787A (en) * | 1991-03-12 | 1993-05-18 | International Business Machines Corporation | Method and apparatus for accessing a relational database without exiting an object-oriented environment |
US5263167A (en) * | 1991-11-22 | 1993-11-16 | International Business Machines Corporation | User interface for a relational database using a task object for defining search queries in response to a profile object which describes user proficiency |
JP2711204B2 (ja) * | 1992-03-09 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | リレーショナルデータベースのユーザインターフェースを生成する方法 |
JPH0689307A (ja) * | 1992-05-04 | 1994-03-29 | Internatl Business Mach Corp <Ibm> | データベース内の情報を表示する装置および方法 |
WO1995003586A1 (en) * | 1993-07-21 | 1995-02-02 | Persistence Software, Inc. | Method and apparatus for generation of code for mapping relational data to objects |
US5548749A (en) * | 1993-10-29 | 1996-08-20 | Wall Data Incorporated | Semantic orbject modeling system for creating relational database schemas |
-
1993
- 1993-10-29 US US08/145,997 patent/US5548749A/en not_active Expired - Fee Related
-
1994
- 1994-09-13 JP JP7512611A patent/JP2957702B2/ja not_active Expired - Lifetime
- 1994-09-13 CA CA002175243A patent/CA2175243A1/en not_active Abandoned
- 1994-09-13 WO PCT/US1994/010355 patent/WO1995012172A1/en active IP Right Grant
- 1994-09-13 CN CN94194493A patent/CN1137320A/zh active Pending
- 1994-09-13 AT AT94930429T patent/ATE180073T1/de active
- 1994-09-13 NZ NZ275544A patent/NZ275544A/en unknown
- 1994-09-13 KR KR1019960702205A patent/KR960706138A/ko not_active Application Discontinuation
- 1994-09-13 DE DE69418474T patent/DE69418474T2/de not_active Expired - Fee Related
- 1994-09-13 ES ES94930429T patent/ES2134959T3/es not_active Expired - Lifetime
- 1994-09-13 AU AU79552/94A patent/AU676395B2/en not_active Ceased
- 1994-09-13 EP EP94930429A patent/EP0727070B1/en not_active Expired - Lifetime
- 1994-09-13 BR BR9407897A patent/BR9407897A/pt unknown
-
1996
- 1996-04-26 NO NO961698A patent/NO961698L/no not_active Application Discontinuation
- 1996-08-09 US US08/695,000 patent/US5809297A/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311386C (zh) * | 1999-07-02 | 2007-04-18 | 皇家菲利浦电子有限公司 | 多媒体信息的元描述符 |
CN100451968C (zh) * | 2001-12-05 | 2009-01-14 | 微软公司 | 语法创建系统 |
WO2007137468A1 (fr) * | 2006-05-26 | 2007-12-06 | Huawei Technologies Co., Ltd. | Procédé et système de création automatique de modèle relationnel |
CN109145033A (zh) * | 2009-09-25 | 2019-01-04 | 阿德南·法科 | 计算机系统以及计算机实施方法 |
CN109145033B (zh) * | 2009-09-25 | 2022-09-13 | 阿德南·法科 | 计算机系统以及计算机实施方法 |
CN103810266A (zh) * | 2014-01-27 | 2014-05-21 | 中国电子科技集团公司第十研究所 | 语义网络目标识别判证方法 |
CN103810266B (zh) * | 2014-01-27 | 2017-04-05 | 中国电子科技集团公司第十研究所 | 语义网络目标识别判证方法 |
Also Published As
Publication number | Publication date |
---|---|
AU7955294A (en) | 1995-05-22 |
JP2957702B2 (ja) | 1999-10-06 |
BR9407897A (pt) | 1996-11-19 |
DE69418474D1 (de) | 1999-06-17 |
EP0727070B1 (en) | 1999-05-12 |
NZ275544A (en) | 1997-05-26 |
AU676395B2 (en) | 1997-03-06 |
KR960706138A (ko) | 1996-11-08 |
JPH09507106A (ja) | 1997-07-15 |
NO961698L (no) | 1996-06-26 |
US5809297A (en) | 1998-09-15 |
DE69418474T2 (de) | 1999-12-09 |
WO1995012172A1 (en) | 1995-05-04 |
NO961698D0 (no) | 1996-04-26 |
US5548749A (en) | 1996-08-20 |
ATE180073T1 (de) | 1999-05-15 |
CA2175243A1 (en) | 1995-05-04 |
ES2134959T3 (es) | 1999-10-16 |
EP0727070A1 (en) | 1996-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1137320A (zh) | 用于建立关系型数据库模式的语义目标模型化系统 | |
CN1221911C (zh) | 用于组织数据的系统与方法 | |
AU2002340393B2 (en) | Method and system for performing information extraction and quality control for a knowledge base | |
US7650339B2 (en) | Techniques for facilitating information acquisition and storage | |
CN100347696C (zh) | 企业业务过程管理的方法和系统 | |
US9514408B2 (en) | Constructing and maintaining a computerized knowledge representation system using fact templates | |
CN101036141A (zh) | 具有持久性、用户可访问的位图值的数据库管理系统 | |
CN1591409A (zh) | 一种使用应用程序处理数据的方法 | |
CN1310824A (zh) | 用于数据仓库的选择聚集层和交叉产品层的方法和装置 | |
CN1711522A (zh) | 图形用户接口建模系统 | |
AU2002340393A1 (en) | Method and system for performing information extraction and quality control for a knowledge base | |
CN1694100A (zh) | 改进文档检索的内容传播 | |
CN1839401A (zh) | 信息处理装置及信息处理方法 | |
CN1869989A (zh) | 用于从非结构化描述生成结构化表示的系统和方法 | |
CN1203430C (zh) | 数据管理系统和数据管理方法 | |
US8463763B2 (en) | Method and tool for searching in several data sources for a selected community of users | |
CN1555523A (zh) | 办公应用程序中用于提供内容相关帮助信息的方法和系统 | |
CN1902647A (zh) | 推理机 | |
CN1836234A (zh) | 用于生物化学信息的信息管理系统 | |
CN1496529A (zh) | 商品开发方法、商品开发系统、商品开发程序以及存储商品开发程序的存储介质 | |
JP2018205905A (ja) | 出力プログラム及びビジネスモデルデータ | |
CN1143231C (zh) | 汉语信息处理装置 | |
Lam et al. | Collection of prokaryotic genome contents expectation rules from scientific literature | |
AU2006201478B2 (en) | Method and system for performing information extraction and quality control for a knowledge base | |
Wang | Knowledge-based selection of databases: an algorithm and its evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |