专利名称:一种基于记录逻辑表示的数据库记录数据查询系统的制作方法
技术领域:
本发明属于电子记录和数据库技术领域,特别地,是ー种基于记录逻辑表示的数据库记录数据查询系统。
背景技术:
关系数据库(relational database)被广泛用于存储各种应用数据。一个关系数据库由ー张或多张数据库表(database tab I e )组成,其中数据库表又由行(array )组成,而行又由多个字段(field)或列(column)组成,应用数据被最終保存在(ー张或多张)数据库表的相应行的相应字段中。保存在数据库表中的数据也称为记录(record)。保存在不同数据库表中的数据记录可通过一定的方式关联起来构成ー个更大的数据记录,或者形成具有一定关联关系的记录,前者对应于将一条记录保存在多张不同表中的情形,后者对应于不 同数据记录之间存在关联关系的情形(如,ー个病人的电子病历记录与其电子化验单记录之间的关联关系)。相同或者不同种类的记录之间的关联关系称为记录关系。关系数据库系统对保存在数据库中的满足一定条件或关系的记录数据的查询采用的是SQL (Structured Query Language)语句,使用SQL语句查询数据记录存在如下局限性或缺点I)需直接使用数据库表及其字段进行查询,需知道数据库表的结构,不适合于普通人群SQL直接使用数据库表、数据表字段表示查询条件,直接使用表的字段之间的相互关系(如〉,く,=等)来表示数据记录之间的关系;当记录数据保存在多张不同数据库表中时,需要将这些数据库表连接(join)起来查询并将来自不同数据库表的查询结果组合(SP将针对不同数据库表的记录字段的查询结果整合)。这种记录查询条件、记录关系的表达方式和查询结果组合方式,用户使用时需要知道数据库表的结构,且仅适合于熟悉数据库技术、具有相关专业知识的专业技术人员,普通用户根本无法使用。实际上,对普通人群来说,他们关心的往往是逻辑层面或者抽象层面表示的记录数据(称为逻辑记录),如某人的姓名、年龄、工作単位等信息,他们不关心记录数据在数据库的具体存放形式(数据库中的具体记录数据);使用记录数据的普通用户在表达满足某些条件或关系的记录时,往往用逻辑层面或抽象层面的记录信息(数据)来表达相关条件(如年龄大于20岁的人的身份信息、具有同一父母的人的身份信息),而不是用数据库表中的具体记录(因为他们甚至根本不懂什么是数据库!)。2)通过人机界面只能针对固定的记录数据内容进行查询,缺乏灵活性由于SQL不适合普通用户使用,因此,普通用户只能通过数据应用系统提供的专门的人机交互界面、按给定的方式对固定的记录数据内容进行查询,不能根据自己需要自定义查询对象、查询方式,缺乏灵活性。3)不能通过命名关系(named relation)查询相互关联的记录基于SQL语句,只能通过数据库表的记录字段之间的数值关系来表示记录(两条或更多)之间的关系,并查询、获取满足给定关系的记录,如表I和表2中满足表I中的字段A的值与表2中的字段B的值相等的A中记录数据与B中记录数据的组合,或者满足此关系的来自表I和表2的关联记录,不能通过直观的关系名称表示多条记录之间的关系,并查询、获取满足该种关系的记录,如电子病历记录和抽血化验单中满足“同一人”关系的电子记录组合等。本发明的目的就是要解决以上问题。逻辑表示是知识表示的ー种基本方式,能在此基础表示复杂的知识、进行逻辑推理,本发明的方案借用了知识表示的某些思路,如通过规则定义关系,但本发明所采用的逻辑表示与通常的逻辑表示(即知识表示)理论和方法不同,主要体现在如下几点I)数据库中的数据记录不是作为知识对象的描述信息,而是将其本身作为知识对象,记录数据的每个数据字段是其描述信息;
2)不同知识对象具体的实例之间的关系不作为知识保存在数据库中;3)所涉及的知识对象(记录类及其实例)不是预定的、固定的,而是数据库用户根据自己的需要针对数据库中的数据自己定义的;4)对关系数据库中的数据没有特别的格式、存放方式要求,适合于通常的关系数据库数据,保存在关系数据库中的应用数据不需要为了使用本方法和系统而做改变。5)最后在技术实现上,本发明的技术方案并没有使用逻辑表示/知识表示的复杂技术(如 Web Ontology/Resource Description Framework, 0WL/RDF),也没有使用相关的技木工具(如0WL/RDF工具);而是通过简单的记录关系定义和展开过程、抽象记录数据与数据库记录数据间的映射实现记录数据(知识)的查询、捜索。
发明内容
本发明的目的是提出一种数据库数据记录的用户可根据应用需要自定义数据库数据记录对象的抽象分类、且普通用户可据此通过人机界面自定义记录关系包括命名关系并以此作为记录查询条件查询所需记录数据而无需关心记录数据在数据库中具体存放形式和方式的基于记录逻辑表示的数据库记录数据查询系统,所述命名关系即具有名称的记录关系O为了实现上述目的,本发明所采用的技术方案是ー种基于记录逻辑表示的数据库记录数据查询系统,所述记录逻辑表示是ー种只与记录包含的信息内容有关而与记录数据的具体存储形式、方式和位置无关的一种记录数据表示形式或表达方式,用这种形式或方式表示的记录称为逻辑记录;在逻辑记录中,一条包含具体数据的记录称为逻辑记录实例,简称记录实例;针对同一目的、具有相同属性的逻辑记录实例的集合称为ー个逻辑记录类;与逻辑记录对应的、保存在数据库中的具体记录数据称为具体记录;记录类的记录实例集合中满足某种限定关系的记录实例的集合(子集)构成ー个新的记录类,称为原记录类的限定类,或记录限定类或限定记录类或简称限定类(除非特别指明,以下所述记录类、记录实例、记录关系指逻辑记录类、逻辑记录实例、逻辑记录关系)。所述系统包括逻辑记录定义与映射组件、命名关系与限定类定义组件、逻辑记录查询组件、记录关系展开子过程、记录数据库,其中
逻辑记录定义与映射组件ー个具有人机交互界面的功能模块,数据管理员通过该组件对保存在关系数据库中的记录数据进行抽象的逻辑表示,定义相应的逻辑记录类,以及逻辑记录数据与数据库数据之间的对应关系或映射关系;命名关系与限定类定义组件ー个具有人机交互界面的功能模块,普通用户通过该组件输入逻辑记录命名关系定义规则,定义记录命名关系,以及通过该组件定义已有逻辑记录类的限定类;逻辑记录查询组件ー个具有人机交互界面的功能模块,普通用户通过该组件输入用逻辑记录关系表示的记录查询条件,查询、获取满足条件的逻辑记录数据;记录关系展开子过程在记录数据查询过程中被逻辑记录查询组件调用,基于逻辑记录命名关系定义规则或限定类定义规则,展开、替换记录关系表达式中的命名关系和/ 或记录限定类,使得最終的作为记录查询条件的记录关系表达式中不包含命名关系和/记录限定类;记录数据库存放具体记录数据的关系数据库系统。所述逻辑记录定义与映射组件按如下步骤定义逻辑记录,以及逻辑记录数据与数据库具体记录数据之间的对应关系第I步定义ー个逻辑记录类及其唯一名称和/或标识(ID);第2步定义所述逻辑记录类的记录实例所包含的记录字段及每个字段的类型(如字串、文本、字节、整数、日期、时间等);第3步定义所述逻辑记录类与数据库表的对应关系,包括所述逻辑记录类对应的一张或多张数据库表的名称;第4步定义所述逻辑记录类的记录实例的记录字段与所述对应的数据库表的字段之间的对应关系或映射关系;第5步定义相关数据库表之间的关联方式(如通过数据库表的哪些字段相互关联)。 不同的逻辑记录类及其记录实例所对应的数据库表以及数据表字段可以相同,也可以不同;所述逻辑记录实例有ー个在所属记录类中唯一的名称或标识来代表自己;逻辑记录实例可以用其记录数据中的某个记录字段的值(如对应的记录主体的名称、身份号码)作为其名称或标识,或者用记录字段的导出值作为其名称或标识;对于ー个确定的或已知的逻辑记录实例,其名称是ー个由字串组成的确定的常量,称为逻辑记录实例名称常量(或常量名称、确定名称),相应的逻辑记录实例称为常量逻辑记录实例,在记录查询条件中,逻辑记录实例名称常量即代表这个确定的、已知的逻辑记录实例;对于不确定的或待定的逻辑记录实例,其名称是ー个不定量(即名称的内容或值是不确定),用一个变量名代替,称为逻辑记录实例名称变量,相应的逻辑记录实例称为变量逻辑记录实例,在进行记录数据查询时,逻辑记录实例名称变量即代表需要查询获取的、满足查询条件的ー个或多个逻辑记录实例。所述记录关系或者是逻辑记录实例的记录字段与常数值之间关系,或者是两个逻辑记录实例之间的字段关系,或者是两个逻辑记录实例之间的命名关系,或者是这些关系的逻辑“与”运算组合;其中,所述逻辑记录实例的记录字段与常数值之间关系,即记录字段与常数值之间的数值关系(如>、〈、=、!=),其表达式中包含如下信息逻辑记录实例的记录类名、逻辑记录实例的名称、逻辑记录实例的相关字段名及该字段与常数值之间的数值关系(如,逻辑记录类A的记录实例X的字段a的值等于123);所述两个逻辑记录实例之间的字段关系,即两个逻辑记录实例的记录字段之间的数值关系,其表达式中包含如下信息相关逻辑记录实例的记录类名、相关逻辑记录实例的名称、相关逻辑记录实例的相关字段名,以及相关逻辑记录实例的记录字段之间的数值关系(如逻辑记录类A的记录实例X的字段a的值等于逻辑记录类B的记录实例Y的字段b的值);逻辑记录实例的记录字段与常数值之间关系和两个逻辑记录实例之间的字段关系统称为逻辑记录实例字段关系;两个逻辑记录实例之间的命名关系,即用命名关系表示的两个记录实例之间的关系,其表达式包含如下信息相关逻辑记录实例的记录类名,相关逻辑记录实例的名称,以及相关逻辑记录实例之间命名关系的名称;出现在记录关系中的逻辑记录实例或者是常量逻辑记录实例,或者是变量逻辑记录实例;若出现在记录关系中的逻辑记录实例是常量逻辑记录实例,则其名称使用名称常量;若出现在记录关系中的逻辑记录实例是变量逻辑记录实例,则其名称使用名称变量;在记录关系表达式中,通过相应的方式区分名称常量和名称变量(如在名称变量的变量名前面加ー个问号?);所述记录关系的逻辑运算组合中的每个组成因子(Element),即变量逻辑记录实例的记录字段与常数值之间关系或者两个记录实例之间的字段关系或者两个记录实例之间的命名关系,称为记录关系表达式的关系因子;所述关系因子的逻辑 评估值是“真”或“假”。命名关系与限定类定义组件使用如下命名关系定义规则定义逻辑记录实例之间的命名关系如果两个逻辑记录实例并通过相关的中间逻辑记录实例满足给定的记录关系,那么这两个逻辑记录实例间存在所定义的命名关系。所述关系定义规则中的“如果”语句对应于规则条件,即结果成立需要满足的前堤;所述关系定义规则中的“那么”语句对应于规则的结果,即要定义的命名关系;所述规则的条件中出现的两个逻辑记录实例并通过相关的中间逻辑记录实例需要满足的给定的记录关系(即“如果”中的记录关系)称为命名关系定义规则的条件关系(简称规则条件关系);所述命名关系定义规则的结果(即“那么”)中的两个逻辑记录实例至少ー个是变量逻辑记录实例;所述命名关系定义规则的条件关系中的中间逻辑记录实例,指在规则条件关系中出现的而在规则结果中不出现的常数或变量逻辑记录实例(比如关系规则如果逻辑记录类A的记录实例X的字段a的值等于逻辑记录类B的记录实例Y的字段b的值,并且,记录类B的记录实例Y的字段c的值等于记录类C的记录实例Z的字段e的值,那么逻辑记录类A的记录实例X与记录类C的记录实例Z之间存在关系R ;这里的Y就是定义记录实例X和记录实例Z之间关系时引入的额外的、中间变量逻辑记录实例的名称变量);记录关系定义规则中出现的逻辑记录实例的名称变量,包括额外的、中间变量记录实例的名称变量,对于记录关系的定义和表达是无关紧要的;ー个命名关系的定义规则的条件关系中可以使用其他已定义的命名关系,但不能直接或间接使用规则要定义的命名关系本身,即不能递归定义;ー个命名关系可用多条所述命名关系定义规则定义,多条规则之间是逻辑“或”的关系,即只要一条规则被满足,则两个记录实例之间存在相应的命名关系。所述命名关系与限定类定义组件内部通过如下特别的逻辑记录命名关系定义规则提供记录限定类的定义功能
如果某个已存在的逻辑记录类的变量记录实例并通过其他中间逻辑记录实例满足给定的记录关系,那么这个变量逻辑记录实例与要定义的记录限定类中的任意实例具有预定的命名关系属于同一记录类;其中,给定的记录关系即是对所述逻辑记录类中记录实例的限定关系;所述记录限定类的任意记录实例用ー个具有特别名称变量的变量逻辑记录实例表示(如使用名称变量?ANY表示);所述表示任意记录实例的变量逻辑记录实例的名称变量(如?ANY)不出现在规则条件关系的表达式中;基于所述特别的记录命名关系定义规则,所有满足这个“属于同一记录类”记录关系的变量记录实例所对应的记录实例即构成了要定义的已存在的记录类的限定类;限定类定义可以嵌套,即在已定义的限定记录类的基础上进ー步定义记录限定类;但限定类定义不能递归,即定义规则的规则条件中不能直接或间接地包含要定义的限定类本身。以上所述特别的关系定义规则,仅在命名关系与限定类定义组件内部使用;在命名关系与限定类定义组件外部,即用户界面层,不宣接使用,用户在定义记录限定类时只需 通过专门的界面输入如下信息要定义限定类的原记录类的类名、要定义的限定类名、表示原记录类中变量逻辑记录实例的名称变量及其需要满足的给定记录关系。所述逻辑记录查询组件根据用记录关系表示的记录查询条件查询、获取所需的记录包括単独或存在关联关系的记录,即查询获取用变量逻辑记录实例代表的、能使得所述记录关系成立的,即使得记录关系的逻辑组合运算的结果为“真”的所有逻辑记录实例。所述逻辑记录查询组件按如下步骤根据用记录关系表示的记录查询条件,查询获取所需的记录数据步骤I :通过调用一个记录关系展开子过程(子程序、函数)将表示记录查询条件的记录关系中包含的命名关系或记录限定类记录实例表达式展开,获得一展开的记录关系集,关系集中的每ー项都是由非限定类的逻辑记录实例的字段关系表示的关系因子的逻辑“与”运算组合所形成的记录关系,即记录关系的关系因子或者是变量逻辑记录实例的记录字段与常数值之间的关系或者是两个逻辑记录实例之间的字段关系,且关系因子中不存在记录限定类表示的逻辑记录实例;步骤II :依次将步骤I中的所述展开的记录关系集中的每ー项记录关系作为记录查询条件执行步骤III到步骤IV的操作,完成处理后返回结果;步骤III :根据逻辑记录的记录数据与数据库中具体记录数据之间的对应关系或映射关系,将仅包含逻辑记录字段关系的、作为记录查询条件的记录关系转化成数据库中用数据库表字段表示的记录查询条件并生成对应SQL语句;步骤IV :基于第III步转化生成的SQL语句查询数据库,然后将数据库查询获得的具体记录数据结果转化成逻辑记录数据,并将得到的逻辑记录数据合并到最終的、需要返回的查询结果中。所述逻辑记录查询组件在步骤I调用的所述记录关系展开子过程具有如下入口參数输入參数I)待展开的记录关系;2)中间名称变量计数对象,ー个包含整数计数值的数据对象,该计数值对应的字串值被插加到记录关系展开过程中引入的额外的、中间变量逻辑记录实例的名称变量中,以区分不同的中间名称变量或中间变量逻辑记录实例;输出參数I)已展开的记录关系集,将输入的待展开的记录关系展开后得到的“相当的”、包含多个记录关系的记录关系集合。所述记录关系展开子过程按如下步骤进行操作步骤I :依次扫描输入的待展开的记录关系中的每个关系因子,一旦扫面遇到一个用命名关系表示或包含记录限定类记录实例的关系因子,则转入步骤2;若扫描完成未遇到用命名关系表示或包含记录限定类记录实例的关系因子,则直接将输入的待展开的记录关系加入到输出參数已展开的记录关系集中,然后返回结果(输出结果仅包含一个记录关系,即输入的待展开的记录关系); 步骤2 :若步骤I扫描遇的需要处理的关系因子是用命名关系表示的两个记录实例间的记录关系,则将该命名关系用其命名关系定义规则的条件关系替换,否则对包含记录限定类记录实例的关系因子作如下处理先将出现在关系因子表达式中的限定类逻辑记录实例的记录限定类用对应的原记录类替代,然后将记录限定类定义规则中的条件关系通过逻辑“与”加入到被替代处理的关系因子中;在替代处理过程中,作替代用的规则条件关系中的相关变量逻辑记录实例的名称变量被正在处理的关系因子中的对应的逻辑记录实例的名称常量或名称变量替代;对于替换展开过程中引入的规则条件关系中的额外的、中间变量逻辑记录实例的名称变量,根据预定的方式将中间名称变量计数对象的计数值对应的字串值加入到该额外的、中间变量逻辑记录实例的名称变量的变量名中;若要替代展开的所述命名关系或记录限定类逻辑记录实例对应多个命名关系定义规则,则分别用每个关系定义规则的条件关系替代,得到多个替代展开后的关系因子;步骤3 :将步骤2替代处理后得到的一个或多个展开后的关系因子分别和余下的尚未扫描到的关系因子按逻辑“与”组合,得到一个或多个临时的、中间的待展开的记录关系;以所有经此处理得到的临时的、中间的待展开的记录关系生成ー个集合;步骤4 :将中间名称变量计数对象中的计数值加I ;步骤5 :依次取出步骤3产生的临时的、中间的待展开的记录关系集中的每ー项记录关系,执行步骤6-7的处理;完成处理后返回结果;步骤6:调用记录关系展开子过程自身(即递归调用自身),调用时的输入參数待展开的记录关系为步骤5中从临时的、中间记录关系集中取出的ー项记录关系,输入參数中间名称变量计数对象为当前执行过程的中间名称变量计数对象;步骤7 :对步骤6中调用记录关系展开子过程返回的输出參数展开的记录关系集作如下处理将当前执行过程步骤I中已扫描过的非命名关系表示的或不包含限定类记录实例的所有关系因子与返回的展开的记录关系集中的每ー项记录关系按逻辑“与”运算进行合并形成相应的新的记录关系,并将所有合并后的新的记录关系加入到当前执行过程的输出參数已展开的记录关系集中。若在所述步骤I中扫描到的需要处理的关系因子既是ー个用命名关系表示的关系因子同时又是ー个包含记录限定类记录实例的关系因子,则在所述步骤2仅按命名关系表示的关系因子处理。
在所述记录关系展开子过程展开记录关系的过程中,对于能确定其逻辑评估值是“真”的关系因子(如两个常量逻辑记录实例的字段关系),用逻辑值“真”替换;对于包含逻辑评估值是“假”的关系因子的记录关系,直接用逻辑值“假”替换。所述逻辑记录查询组件在步骤I调用所述记录关系展开子过程吋,输入參数待展开的记录关系即是作为记录查询条件的记录关系,输入參数中间名称变量计数对象的计数值为预定的初值(如O或I等)。在所述记录关系展开子过程的递归调用过程中,传递的输入參数中间名称变量计数对象是同一个数据对象(如通过数据指针指向的同一个C/C++数据对象或通过对象引用指向的同一个Java对象)。所述步骤2中所述的将中间名称变量计数对象的计数值对应的字串值加入到替换展开过程中引入的规则条件关系中的额外的、中间的变量逻辑记录实例的名称变量中的所述预定的方式无特别的规定,只要使得展开过程中引入的额外、中间变量逻辑记录实例的名称变量不与其他变量逻辑记录实例的名称变量重复即可。 所述记录关系展开子过程通过如下功能扩展,允许逻辑记录查询组件调用所述子过程时输入的作为记录查询条件的所述待展开的记录关系中,或者命名关系的定义规则的条件关系中,出现关系因子的逻辑“或”和/或“非”运算组合若作为查询条件的记录关系中存在关系因子的逻辑“或”运算,则将该记录关系分解为多个不包含逻辑“或”运算的记录关系(然后分别以分解得到每个记录关系作为查询条件查询获取数据,最后将查询获得结果合并);若作为查询条件的记录关系中存在针对逻辑记录实例字段关系的逻辑评估值的逻辑“非”运算,则将该逻辑“非”运算所针对的逻辑记录实例字段关系连同“非”运算逻辑算子用等价的不包含“非”运算逻辑算子的逻辑记录实例字段关系替代(如将记录实例的字段关系“等干”变成“不等干”,“小干”变成“不小干”);若作为命名关系定义规则的规则条件关系中存在关系因子的逻辑“或”运算,则将该规则条件关系分解为多个不包含逻辑“或”运算的记录关系,然后以分解得到每个记录关系作为命名关系定义规则的规则条件关系,得到多个相互之间是“或”关系的命名关系定义规则;若作为命名关系定义规则的规则条件关系中存在逻辑记录实例字段关系的逻辑“非”运算,则将该逻辑“非”运算所针对的逻辑记录实例字段关系连同“非”运算逻辑算子用等价的不包含“非”运算逻辑算子的逻辑记录实例字段关系替代。所述逻辑记录查询组件根据相应的查询命令设定,不但能查询获取使得记录关系成立的变量逻辑记录实例所对应的所有逻辑记录实例,而且能够返回使得记录关系成立所需的所有中间逻辑记录实例。本发明的创新之处在于将逻辑表示的一些思路和方法用于数据库记录数据的查询,提出了基于记录逻辑表示的关系数据库记录数据查询的ー种通用方法和系统;该方法和系统通过用逻辑记录表示记录查询条件和定义逻辑记录数据与数据库具体记录数据之间的对应关系,使得记录查询条件或命令的表示能被普通用户所用;通过记录命名关系、记录限定类的引入,使得记录查询条件的表达更加简单;该方法和系统虽然使用了逻辑表示的部分思路和方法,但未采用逻辑表示的复杂技木。
图I为本发明的整体结构图。图2为本发明的逻辑记录查询组件的实现流程图。图3A-图3B为本发明的记录关系展开子过程的实现流程图。
具体实施例方式下面结合附图对本发明作进ー步的详细描述。本发明是ー种基于记录逻辑表示的数据库记录数据查询方法和系统,本发明系统的整体结构如图I所示,实心箭头表示使用方向,空心箭头表示数据生成方向,其中,逻辑记录定义与映射组件SI、命名关系与限定类定义组件S2、逻辑记录查询组件S3、记录关系 展开子过程S4、数据库S5是功能组件,其他为相关数据。图中各组成要素的作用和功能在前面发明内容中已论述,在此不重复,各要素之间的相互关系简单描述如下数据管理员通过使用(Tl)逻辑记录定义与映射组件SI,针对数据库S5中的记录数据(具体记录)S6进行抽象表示(T2),产生(Gl)逻辑记录S7 (包括逻辑记录类及其实例),产生(G2)逻辑记录与数据库记录之间的映射关系S8 ;逻辑记录实例字段与常数值间关系S9使用(T3)逻辑记录S7 ;两个逻辑记录记录实例之间的字段关系SlO使用(T4)逻辑记录S7 ;用户使用(T5)命名关系与限定类定义组件S3输入(G3)命名关系定义规则Sll ;命名关系定义规则Sll使用(T6、T7、T8)逻辑记录实例字段与常数值间关系S9、两个逻辑记录记录实例之间的字段关系SlO和已定义的逻辑记录实例命名关系S12,或者定义、产生(G4)新的逻辑记录实例命名关系S12,或者定义、产生(G5)已有逻辑记录类的限定类(新的记录类);逻辑记录实例的记录关系S13用(T9、T10、T11)逻辑记录实例字段与常数值间关系S9、两个逻辑记录实例之间的字段关系S10、逻辑记录实例命名关系S12的逻辑运算组合表示;用户通过(Τ12)逻辑记录查询组件S3,使用(Τ13)记录关系S13作为查询条件查询记录数据;逻辑记录查询组件S3基于记录关系查询记录数据时,调用(Τ14)关系展开子过程S4 ;关系展开子过程S4使用(Τ15 )记录关系定义规则SI I,或者对记录关系中的命名关系进行替换、展开处理,或者对记录关系中的限定类进行替换、展开处理,使得替换、展开后的作为记录查询条件的记录关系仅包含逻辑记录实例的字段关系;之后,逻辑记录查询组件S3利用(Τ16)逻辑记录与具体记录映射关系S8,将仅包含逻辑记录实例字段关系的记录查询条件和命名进行转换,生成(G5)数据库查询SQL语句S14 ;然后使用数据库查询SQL语句S14查询、获取(Τ18)数据库S5中的具体记录数据S6,然后将查询的记录数据用(Τ19)逻辑记录的形式展现给用户。有了以上关系描述后,本发明内容的具体实施主要涉及各类数据的表示,以及逻辑记录定义与映射组件SI、命名关系与限定类定义组件S2、逻辑记录查询组件S3、记录关系展开子过程S4的实施实现,下面就它们的具体实施分别描述。所述各类数据主要包括逻辑记录(包括记录类、记录实例)定义数据,逻辑记录数据(逻辑记录实例的字段)与数据库记录数据(数据库表及字段)对应关系的描述数据,逻辑记录实例数据,记录关系表示数据,记录关系定义规则表示数据。所有这些数据表示分两个层面系统处理层面,用户界面层面。所述系统处理层面的数据表示指保存在内存、文件和/或数据库中能被计算机系统处理的数据表示形式;所述用户界面表层面的数据表示指通过计算机的人机交互界面看到的或者写在纸质介质上面的数据表示形式。对于所述逻辑记录的定义数据、逻辑记录数据与数据库记录数据对应关系的描述数据,无论在系统处理层面,还是在用户界层面,其具体实施没有特别的限定,只要具体实施方案能反映出表I、表2中所描述的内容和表达的信息即可表I举例说明了定义ー个逻辑记录类、记录实例字段、及描述记录字段与数据库表对应关系所需的内容;表2举例说明了将两个数据库表关联起来所需的内容和信息(数据库中的User表和数据库中的AddressTable表通过它们的字段WD关联,当然两个表中的字段可以不同名)。表I逻辑记录(类、实例)定义及与数据库记录数据的映射关系描述
记录类名或标识
记录字段名记录字段数记录字段对应的数据记录字段对应的
_据类型_库表_数据库表字段名
Name字串UserName
UserID 字串UserUID
Address 字串AddressTabIeMai IAddress
OOO表2数据库表的关联关系
数据库表I~I表I关联字段I数据库表2 I表2关联字段 UserUIDAddressTable UID同样地,对于逻辑记录实例数据的表示,无论在系统处理层面,还是在用户界层面,其具体实施没有特别的限定,只要具体实施方案对逻辑记录实例数据的表示包含如下信息记录实例所属的记录类、记录实例名称、所包含的记录字段及字段的对应数据。逻辑记录实例的数据表示中,需要通过一定的方式区分数据内容已知的、确定的记录实例(常量记录实例)和内容未知的、不确定的记录实例(变量记录实例),比如在内存中表示记录实例的数据结构中可以用ー个标志表示、区分这两种不同的逻辑记录实例;在用户界面层,可在记录实例的名称变量的变量名前面加ー个?表示内容未知的、不缺定的记录实例。类似地,对于记录关系表示数据、记录关系定义规则表示数据,无论在系统处理层面,还是在用户界层面,其具体实施没有特别的限定,只要具体实施方案对逻辑记录实例数据的表示包含发明内容中所述信息即可。对于以上数据的用户界面层面表示,下面给出ー种实施方案。用“记录类名逻辑记录实例名称常量”表示ー个内容已知的、确定的逻辑记录实例,如ClassA:ID230871 ;用“记录类名?逻辑记录实例名称变量”表示内容未知的、不确定性的记录实例,如ClassA: X;用“记录类名逻辑记录实例名称常量.字段名”表示某个内容已知、确定的逻辑记录实例的字段,如ClassA: ID230871. name ;用“记录类名?逻辑记录实例名称变量.字段名”表示某个内容未知、不确定的记录实例 的字段,如ClassA: X.name。对于变量记录实例的字段与常数值间的关系可用如下方式表示记录类名?逻辑记录实例名称常量.字段名r常数值,其中,!·表示数值关系,如〉(大于)、>=(大于等干)、=(等干)等。对于两个记录实例之间的字段关系可用如下方式表示记录类名?逻辑记录实例名称变量.字段名r记录类名逻辑记录实例名称常量.字段名,或者,记录类名?逻辑记录实例名称变量.字段名r记录类名?逻辑记录实例名称变量.字段名,其中,!·同前表示数值关系。对于逻辑记录实例的命名关系,可用如下方式表示记录类名?逻辑记录实例名称变量R记录类名逻辑记录实例名称常量,或者,记录类名?逻辑记录实例名称变量R记录类名?逻辑记录实例名称变量,其中,R表不关系的名称,如“有化验单”。对于用记录关系表示的查询条件可用如下方式表示Cl AND C2 AND …AND Cn,其中,AND表示逻辑“与”,Cl、C2-Cn为用前述方式表示的变量逻辑记录实例与常数值之间的关系,或者两个逻辑记录实例之间的字段关系,或者逻辑记录实例的命名关系。对于命名关系定义规则可用如下方式表示IF Cl AND C2 AND …AND CnTHEN记录类名?逻辑记录实例名称变量R记录类名?逻辑记录实例名称变量,或者,IF Cl AND C2 AND …AND CnTHEN记录类名?逻辑记录实例名称变量R记录类名逻辑记录实例名称常量,其中,R是要定义的关系名,AND表示逻辑“与”,Cl、C2…Cn为用前述方式表示的变量逻辑记录实例与常数值之间的关系,或者两个逻辑记录实例之间间的字段关系,或者逻辑记录实例的命名关系。ー种将中间名称变量计数对象的计数值加入到替换展开过程中引入的规则条件关系中的额外的、中间的变量逻辑记录实例的名称变量的变量名的实施方式是将_xxx_作为名称前缀前缀加入到所述额外的、中间的变量逻辑记录实例的名称变量的变量名中,其中XXX是所述计数值对应的字串值。若采用这种加入方式,则用户在进行记录查询时输入的作为查询条件的记录关系中的变量逻辑记录实例的名称变量的变量名不能以此类前缀开头。下面举例说明这种命名关系定义规则和额外的、中间的变量逻辑记录实例的名称变量的变量名的处理方案的应用。假设有如下命名关系定义规则IF Classl: X. a = Class2: Y. b AND Class2: Y Rl Class3: ZTHEN Classl: X R Class3: Z;假设某记录关系中有关系因子Classl: U R Class2: V,则记录关系展开子过程 对该关系因子进行一次替换、展开后,得到的记录关系如下Classl: U. a = Class2: _χχχ_Υ· b AND Class2: _xxx_Y Rl Class3: V,这里,U、V分别替代了规则条件关系中的对应的名称变量X、Z ;XXX是中间名称变量计数对象的计数值的字串值。当然,记录关系展开子过程需要对替代展开过程中引入的命名关系Class2: _xxx_Y Rl Class3: V进行进一步的替代、展开。对于逻辑记录记录限定类的定义规则可用如下方式表示IF Cl AND C2 AND …AND CnTHEN原记录类名?逻辑记录实例名称变量isOfSameClassAs记录限定类名?ANY,其中, ANY是特别的名称变量,表示任何记录实例,isOfSameClassAs表示预定的记录关系属于同一记录类。有了以上限定类定义后,凡是记录关系中出现记录限定类名逻辑记录实例名称常量,的地方,在进行关系展开时都用原记录类名逻辑记录实例名称常量,替代;凡是记录记录关系中出现记录限定类名变量逻辑记录实例名称变量,的地方,都用原记录类名变量逻辑记录实例名称变量,替代,并在查询条件中加入相应的限定类定义规则的条件关系AND Cl AND C2 AND …AND Cn。下面举例说明这种限定类的应用。假设有如下限定类定义规则IF Classl: X. a >20 AND Classl: X R Class3:ZZZTHEN Classl: X isOfSameClassAs SubClassl: ANY,这里ZZZ是名称常量;假设某记录关系中有关系因子SubClassl : U. b = “Zhang Shan”,则记录关系展开子过程对该关系因子进行一次替换、展开后,得到的记录关系如下Classl: U. b = “Male” AND Classl: U. a >20 AND Classl: U R Class3:ZZZ,这里,U替代了限定类规则条件关系中的对应名称变量X。为了便于处理,在具体实施时,对于记录限定类及其记录实例的数据表示在系统处理层面可以用某个特别的标志表示其是ー个记录限定类或限定类记录实例,并通过相应的数据信息指向、弓丨用其原记录类。以上所述各类数据的用户界面层表示方案,只是ー种可选的方法,在具体实施中,这些数据的用户界面层表现形式可结合用户的使用习惯、方便性、数据表达能力和系统表示层中的数据表示方案综合考虑、设计,只要能满足发明内容中所述要求和提供相关的信息内容即可。
有了以上各类数据表示的具体实施,逻辑记录定义与映射组件SI、命名关系与限定类定义组件S2、逻辑记录查询组件S3、记录展开子过程S4的具体实施可通过选择适合的信息系统开发技术(如ASP. NET、J2EE、C/C++等),并通过相应的流程实现。图2是逻辑记录查询组件实现的參考流程图,图3A-图3B是记录关系展开子过程实现的參考流程图。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技木。
权利要求
1.ー种基于记录逻辑表示的数据库记录数据查询系统,所述记录逻辑表示是ー种只与记录包含的信息内容有关而与记录数据的具体存储形式、方式和位置无关的ー种记录数据表示形式或表达方式,用这种形式或方式表示的记录称为逻辑记录;在逻辑记录中,一条包含具体数据的记录称为逻辑记录实例,简称记录实例;针对同一目的、具有相同属性的逻辑记录实例的集合称为ー个逻辑记录类;与逻辑记录对应的、保存在数据库中的具体记录数据称为具体记录;记录类的记录实例集合中满足某种限定关系的记录实例的集合构成ー个新的记录类,称为原记录类的限定类,或记录限定类或限定记录类或简称限定类; 所述系统包括逻辑记录定义与映射组件、命名关系与限定类定义组件、逻辑记录查询组件、记录关系展开子过程以及记录数据库,其中 逻辑记录定义与映射组件ー个具有人机交互界面的功能模块,数据管理员通过该组件对保存在关系数据库中的记录数据进行抽象的逻辑表示,定义相应的逻辑记录类,以及逻辑记录数据与数据库数据之间的对应关系或映射关系; 命名关系与限定类定义组件一个具有人机交互界面的功能模块,普通用户通过该组件输入逻辑记录命名关系定义规则,定义记录命名关系,以及通过该组件定义已有逻辑记录类的限定类;所述命名关系为具有名称的记录关系; 逻辑记录查询组件ー个具有人机交互界面的功能模块,普通用户通过该组件输入用逻辑记录关系表示的记录查询条件,查询、获取满足条件的逻辑记录数据;所述逻辑记录关系简称记录关系; 记录关系展开子过程在记录数据查询过程中被逻辑记录查询组件调用,基于逻辑记录命名关系定义规则或限定类定义规则,展开、替换记录关系表达式中的命名关系和/或记录限定类,使得最終的作为记录查询条件的记录关系表达式中不包含命名关系和/记录限定类; 记录数据库存放具体记录数据的关系数据库系统。
2.根据权利要求I所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述逻辑记录定义与映射组件按如下步骤定义逻辑记录以及逻辑记录数据与数据库具体记录数据之间的对应关系 第I步定义ー个逻辑记录类及其唯一名称和/或标识; 第2步定义所述逻辑记录类的记录实例所包含的记录字段及每个字段的类型; 第3步定义所述逻辑记录类与数据库表的对应关系,包括所述逻辑记录类对应的一张或多张数据库表的名称; 第4步定义所述逻辑记录类的记录实例的记录字段与所述对应的数据库表的字段之间的对应关系或映射关系; 第5步定义相关数据库表之间的关联方式; 不同的逻辑记录类及其记录实例所对应的数据库表以及数据表字段既可以相同,也可以不同;所述逻辑记录实例有ー个在所属记录类中唯一的名称或标识来代表自己;逻辑记录实例用其记录数据中的某个记录字段的值作为其名称或标识,或者用记录字段的导出值作为其名称或标识;对于ー个确定的或已知的逻辑记录实例,其名称是ー个由字串组成的确定的常量,称为逻辑记录实例名称常量或常量名称或确定名称,相应的逻辑记录实例称为常量逻辑记录实例,在记录查询条件中,逻辑记录实例名称常量即代表这个确定的、已知的逻辑记录实例;对于不确定的或待定的逻辑记录实例,其名称是ー个不定量,即名称的内容或值是不确定,用一个变量名代替,称为逻辑记录实例名称变量,相应的逻辑记录实例称为变量逻辑记录实例,在进行记录数据查询时,逻辑记录实例名称变量即代表需要查询获取的、满足查询条件的一个或多个逻辑记录实例。
3.根据权利要求I或2所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述记录关系或者是逻辑记录实例的记录字段与常数值之间关系,或者是两个逻辑记录实例之间的字段关系,或者是两个逻辑记录实例之间的命名关系,或者是这些关系的逻辑“与”运算组合;其中,所述逻辑记录实例的记录字段与常数值之间关系,即记录字段与常数值之间的数值关系,其表达式中包含如下信息逻辑记录实例的记录类名、逻辑记录实例的名称、逻辑记录实例的相关字段名及该字段与常数值之间的数值关系;所述两个逻辑记录实例之间的字段关系,即两个逻辑记录实例的记录字段之间的数值关系,其表达式中包含如下信息相关逻辑记录实例的记录类名、相关逻辑记录实例的名称、相关逻辑记录实例的相关字段名,以及相关逻辑记录实例的记录字段之间的数值关系;逻辑记录实例的记录字段与常数值之间关系和两个逻辑记录实例之间的字段关系统称为逻辑记录实例字段关系;两个逻辑记录实例之间的命名关系,即用命名关系表示的两个记录实例之间的关系,其表达式包含如下信息相关逻辑记录实例的记录类名,相关逻辑记录实例的名称,以及相关逻辑记录实例之间命名关系的名称;出现在记录关系中的逻辑记录实例或者是常量逻辑记录实例,或者是变量逻辑记录实例;若出现在记录关系中的逻辑记录实例是常量逻辑记录实例,则其名称使用名称常量;若出现在记录关系中的逻辑记录实例是变量逻辑记录实例,则其名称使用名称变量;在记录关系表达式中,通过相应的方式区分名称常量和名称变量;所述记录关系的逻辑运算组合中的每个组成因子,即变量逻辑记录实例的记录字段与常数值之间关系或者两个记录实例之间的字段关系或者两个记录实例之间的命名关系,称为记录关系表达式的关系因子;所述关系因子的逻辑评估值是“真”或“假”。
4.根据权利要求I或2所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述命名关系与限定类定义组件使用如下命名关系定义规则定义逻辑记录实例之间的命名关系 如果两个逻辑记录实例并通过相关的中间逻辑记录实例满足给定的记录关系,那么这两个逻辑记录实例间存在所定义的命名关系; 所述关系定义规则中的如果语句对应于规则条件,即结果成立需要满足的前提;所述关系定义规则中的那么语句对应于规则的結果,即要定义的命名关系;所述规则的条件中出现的两个逻辑记录实例并通过相关的中间逻辑记录实例需要满足的给定的记录关系称为命名关系定义规则的条件关系,简称规则条件关系;所述命名关系定义规则的结果中的两个逻辑记录实例至少ー个是变量逻辑记录实例;所述命名关系定义规则的条件关系中的中间逻辑记录实例,指在规则条件关系中出现的而在规则结果中不出现的常数或变量逻辑记录实例;记录关系定义规则中出现的逻辑记录实例的名称变量,包括额外的、中间变量记录实例的名称变量,对于记录关系的定义和表达是无关紧要的;ー个命名关系的定义规则的条件关系中可以使用其他已定义的命名关系,但不能直接或间接使用规则要定义的命名关系本身,即不能递归定义;ー个命名关系可用多条所述命名关系定义规则定义,多条规则之间是逻辑“或”的关系,即只要一条规则被满足,则两个记录实例之间存在相应的命名关系O
5.根据权利要求I或2所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述命名关系与限定类定义组件内部通过如下特别的逻辑记录命名关系定义规则提供记录限定类的定义功能 如果某个已存在的逻辑记录类的变量记录实例并通过其他中间逻辑记录实例满足给定的记录关系,那么这个变量逻辑记录实例与要定义的记录限定类中的任意实例具有预定的命名关系属于同一记录类; 其中,给定的记录关系即是对所述逻辑记录类中记录实例的限定关系;所述记录限定类的任意记录实例用ー个具有特别的名称变量变量名的变量逻辑记录实例表示;所述表示任意记录实例的变量逻辑记录实例的名称变量不出现在规则条件关系的表达式中;基于所述特别的记录命名关系定义规则,所有满足这个属于同一记录类记录关系的变量记录实例所对应的记录实例即构成了要定义的已存在的记录类的限定类;限定类定义可以嵌套,即在已定义的限定记录类的基础上进ー步定义记录限定类;但限定类定义不能递归,即定义规则的规则条件中不能直接或间接地包含要定义的限定类本身; 所述特别的关系定义规则,仅在命名关系与限定类定义组件内部使用;在命名关系与限定类定义组件外部,即用户界面层,不宣接使用,用户在定义记录限定类时只需通过专门的界面输入如下信息要定义限定类的原记录类的类名、要定义的限定类名、表示原记录类中变量逻辑记录实例的名称变量及其需要满足的给定记录关系。
6.根据权利要求I或3所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述逻辑记录查询组件根据用记录关系表示的记录查询条件查询、获取所需的记录包括単独或存在关联关系的记录,即查询获取用变量逻辑记录实例代表的、能使得所述记录关系成立的,即使得记录关系的逻辑组合运算的结果为“真”的所有逻辑记录实例; 所述逻辑记录查询组件按如下步骤根据用记录关系表示的记录查询条件,查询获取所需的记录数据 步骤I :通过调用ー个记录关系展开子过程将表示记录查询条件的记录关系中包含的命名关系或记录限定类记录实例表达式展开,获得一展开的记录关系集,关系集中的每ー项都是由非限定类的逻辑记录实例的字段关系表示的所述关系因子的逻辑“与”运算组合所形成的记录关系,即记录关系的关系因子或者是变量逻辑记录实例的记录字段与常数值之间的关系或者是两个逻辑记录实例之间的字段关系,且关系因子中不存在记录限定类表示的逻辑记录实例; 步骤II:依次将步骤I中的所述展开的记录关系集中的每ー项记录关系作为记录查询条件执行步骤III到步骤IV的操作,完成处理后返回结果; 步骤III :根据逻辑记录的记录数据与数据库中具体记录数据之间的对应关系或映射关系,将仅包含逻辑记录字段关系的、作为记录查询条件的记录关系转化成数据库中用数据库表字段表示的记录查询条件并生成对应SQL语句; 步骤IV :基于第III步转化生成的SQL语句查询数据库,然后将数据库查询获得的具体记录数据结果转化成逻辑记录数据,并将得到的逻辑记录数据合并到最終的、需要返回的查询结果中。
7.根据权利要求6所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述逻辑记录查询组件在步骤I调用的所述记录关系展开子过程具有如下入口參数 输入參数 1)待展开的记录关系; 2)中间名称变量计数对象,ー个包含整数计数值的数据对象,该计数值对应的字串值被加入到记录关系展开过程中引入的额外的、中间变量逻辑记录实例的名称变量中,以区分不同的中间名称变量或中间变量逻辑记录实例; 输出參数 O已展开的记录关系集,将输入的待展开的记录关系展开后得到的相当的、包含多个记录关系的记录关系集合; 所述记录关系展开子过程按如下步骤进行操作 步骤I :依次扫描输入的待展开的记录关系中的每个关系因子,一旦扫面遇到ー个用命名关系表示或包含记录限定类记录实例的关系因子,则转入步骤2;若扫描完成未遇到用命名关系表示或包含记录限定类记录实例的关系因子,则直接将输入的待展开的记录关系加入到输出參数已展开的记录关系集中,然后返回结果; 步骤2 :若步骤I扫描遇的需要处理的关系因子是用命名关系表示的两个记录实例间的记录关系,则将该命名关系用其命名关系定义规则的条件关系替换,否则对包含记录限定类记录实例的关系因子作如下处理先将出现在关系因子表达式中的限定类逻辑记录实例的记录限定类用对应的原记录类替代,然后将记录限定类定义规则中的条件关系通过逻辑“与”加入到被替代处理的关系因子中;在替代处理过程中,作替代用的规则条件关系中的相关变量逻辑记录实例的名称变量被正在处理的关系因子中的对应的逻辑记录实例的名称常量或名称变量替代;对于替换展开过程中引入的规则条件关系中的额外的、中间变量逻辑记录实例的名称变量,根据预定的方式将中间名称变量计数对象的计数值对应的字串值加入到该额外的、中间变量逻辑记录实例的名称变量的变量名中;若要替代展开的所述命名关系或记录限定类逻辑记录实例对应多个命名关系定义规则,则分别用每个关系定义规则的条件关系替代,得到多个替代展开后的关系因子; 步骤3 :将步骤2替代处理后得到的一个或多个展开后的关系因子分别和余下的尚未扫描到的关系因子按逻辑“与”组合,得到一个或多个临时的、中间的待展开的记录关系;以所有经此处理得到的临时的、中间的待展开的记录关系生成ー个集合; 步骤4 :将中间名称变量计数对象中的计数值加I ; 步骤5:依次取出步骤3产生的临时的、中间的待展开的记录关系集中的每ー项记录关系,执行步骤6-7的处理;完成处理后返回结果; 步骤6:调用记录关系展开子过程自身,即递归调用自身,调用时的输入參数待展开的记录关系为步骤5中从临时的、中间记录关系集中取出的ー项记录关系,输入參数中间名称变量计数对象为当前执行过程的中间名称变量计数对象; 步骤7 :对步骤6中调用记录关系展开子过程返回的输出參数展开的记录关系集作如下处理将当前执行过程步骤I中已扫描过的非命名关系表示的或不包含限定类记录实例的所有关系因子与返回的展开的记录关系集中的每ー项记录关系按逻辑“与”运算进行合并形成相应的新的记录关系,并将所有合并后的新的记录关系加入到当前执行过程的输出參数已展开的记录关系集中; 若在所述步骤I中扫描到的需要处理的关系因子既是ー个用命名关系表示的关系因子同时又是ー个包含记录限定类记录实例的关系因子,则在所述步骤2仅按命名关系表示的关系因子处理; 在所述记录关系展开子过程展开记录关系的过程中,对于能确定其逻辑评估值是“真”的关系因子,用逻辑值“真”替换;对于包含逻辑评估值是“假”的关系因子的记录关系,直接用逻辑值“假”替换; 所述逻辑记录查询组件在步骤I调用所述记录关系展开子过程吋,输入參数待展开的记录关系即是作为记录查询条件的记录关系,输入參数中间名称变量计数对象的计数值为预定的初值;在所述记录关系展开子过程的递归调用过程中,传递的输入參数中间名称变量计数对象是同一个数据对象。
8.根据权利要求7所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述步骤2中所述的将中间名称变量计数对象的计数值对应的字串值加入到替换展开过程中引入的规则条件关系中的额外、中间的变量逻辑记录实例的名称变量中的所述预定的方式无特别的规定,只要使得展开过程中引入的额外、中间变量逻辑记录实例的名称变量不与其他变量逻辑记录实例的名称变量重复即可。
9.根据权利要求I或4或7所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述记录关系展开子过程通过如下功能扩展,允许逻辑记录查询组件调用所述子过程时输入的作为记录查询条件的所述待展开的记录关系中,或者命名关系的定义规则的条件关系中,出现关系因子的逻辑“或”和/或“非”运算组合 若待展开的记录关系中存在关系因子的逻辑“或”运算,则将该记录关系分解为多个不包含逻辑“或”运算的记录关系; 若待展开的记录关系中存在针对逻辑记录实例字段关系的逻辑评估值的逻辑“非”运算,则将该逻辑“非”运算所针对的逻辑记录实例字段关系连同“非”运算逻辑算子用等价的不包含“非”运算逻辑算子的逻辑记录实例字段关系替代; 若作为命名关系定义规则的规则条件关系中存在关系因子的逻辑“或”运算,则将该规则条件关系分解为多个不包含逻辑“或”运算的记录关系,然后以分解得到每个记录关系作为命名关系定义规则的规则条件关系,得到多个相互之间是“或”关系的命名关系定义规则; 若作为命名关系定义规则的规则条件关系中存在逻辑记录实例字段关系的逻辑“非”运算,则将该逻辑“非”运算所针对的逻辑记录实例字段关系连同“非”运算逻辑算子用等价的不包含“非”运算逻辑算子的逻辑记录实例字段关系替代。
10.根据权利要求I或6所述的基于记录逻辑表示的数据库记录数据查询系统,其特征在于 所述逻辑记录查询组件根据相应的查询命名设定,不但查询返回使得记录关系成立的变量逻辑记录实例所对应的所有逻辑记录实例,而且返回使得记录关系成立所需的所有中间逻辑记录实例。
全文摘要
本发明涉及一种基于记录逻辑表示的数据库记录数据查询系统,该系统包括逻辑记录定义与映射组件、命名关系与限定类定义组件、逻辑记录查询组件、记录关系展开子过程、记录数据库。本发明将逻辑表示的一些思路和方法用于普通数据库数据的查询,但无需使用其复杂的实现技术;数据用户可针对数据库中的数据根据自己的需要定义逻辑记录,并通过逻辑记录与数据库记录之间的对应关系,将用逻辑记录表示记录查询条件或命令转化成数据库查询SQL语句;用户可通过记录命名关系定义规则自定义记录命名关系、记录限定类,并将记录命名、记录限定类用于记录查询条件表达式或命令中,使得记录查询条件的表达更加简单。
文档编号G06F17/30GK102693295SQ20121015128
公开日2012年9月26日 申请日期2012年5月15日 优先权日2012年5月15日
发明者刘旭, 唐志红, 杨浩, 白波, 肖凡, 龙毅宏 申请人:北京天威诚信电子商务服务有限公司, 武汉理工大学