CN103136374A - 一种对象代理数据库的模式规范化方法 - Google Patents
一种对象代理数据库的模式规范化方法 Download PDFInfo
- Publication number
- CN103136374A CN103136374A CN2013100967918A CN201310096791A CN103136374A CN 103136374 A CN103136374 A CN 103136374A CN 2013100967918 A CN2013100967918 A CN 2013100967918A CN 201310096791 A CN201310096791 A CN 201310096791A CN 103136374 A CN103136374 A CN 103136374A
- Authority
- CN
- China
- Prior art keywords
- node
- attribute
- real attribute
- semantic
- proxy class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种对象代理数据库的模式规范化方法,包括获取对象代理数据库SQL语句的模式信息,形成模式有向图;根据对象代理数据库一级范式定义,将不规范模式转换为一级范式;根据对象代理数据库二级范式定义,将一级范式转换为二级范式,生成规范化对象代理数据库模式。本发明可按照范式级别规范化对象代理数据库模式,消除对象代理数据库模式进化产生的属性冗余和更新异常,最终保证对象代理数据库模式的正确性和数据库系统的高效性。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种对象代理数据库的模式规范化方法。
背景技术
随着信息的日益膨胀,人们对数据处理的要求越来越高。数据库系统是信息系统的基础,涉及到数据从存储、集成到发布、应用等几乎所有环节,其重要性不言而喻,如何设计出描述准确、普适通用的数据模型和简单灵活、便捷高效的数据库模式,一直是数据库领域的研究焦点。对象代理模型就是以这样的思想为出发点设计并实现的。它通过引入代理对象、代理类等概念,对传统的面向对象数据模型进行扩展,灵活地实现了对象视图、角色多样性以及对象迁移等多种抽象机制,使其既具有关系数据模型的柔软性,又具有面向对象数据模型表现复杂信息的能力。
近年来,武汉大学珞珈图腾数据库实验室已设计并实现了基于对象代理模型的数据库管理系统TOTEM。TOTEM支持对象代理数据库语言ODSQL,并全面兼容关系SQL标准,在保留了面对对象模型中的类,对象以及方法的概念的同时,拓展了代理类和代理对象的概念,通过派生各种类型的代理对象,可以把对象进行分割和重组,并且能够为代理对象追加属性和方法以表现代理对象自己的特征。目前,TOTEM已经被成功地应用于复杂数据管理、跨媒体查询、科学工作流等相关领域的研究。经过实践探索和经验积累,对象代理模型和对象代理数据库TOTEM在不断改进和完善,并逐步发展成为一种成熟的数据模型和数据库管理系统,从而投入到更加广泛的信息应用。
数据库系统的模式随着实际需求的不断变化而更替变化的过程被称为模式进化。在模式进化过程中,由于属性增删,依赖关系改变等原因,模式中出现不适当结构的情况不可避免,因此,为了消除不适当的结构,必须对数据库模式进行规范化处理。关系型数据库之所以有长久的生命力,除了关系模型本身的定义简洁准确之外,能通过完整严密的关系模式规范化方法消除数据库模式进化过程中出现的不良结构,是其成功的关键原因之一。相比之下,对象代理数据库基于柔软的对象代理数据模型,允许用户对代理类添加属性和方法从而提供复杂的个性化操作,这一特性使其模式进化方式比关系模式更加灵活复杂,同时也容易导致模式进化过程中产生属性冗余和更新异常。因此,要保证数据库模式的正确性和数据库系统的高效性,就必须对数据库模式进行规范化。
发明内容
本发明针对对象代理数据库复杂个性化操作导致模式进化过程中产生属性冗余和更新异常的问题,提供一种对象代理数据库的模式规范化方法,
本发明技术方案为一种对象代理数据库的模式规范化方法,包括以下步骤,
步骤1,获取对象代理数据库SQL语句的模式信息,形成模式有向图;所述对象代理数据库SQL语句的模式信息包括模式中基本类和代理类信息,实属性和虚属性信息,类与类之间的继承关系,属性与属性之间的继承关系;
步骤2,根据对象代理数据库一级范式定义,将不规范模式转换为一级范式;所述对象代理数据库一级范式定义为,若某模式中具有上下继承关系的源类和代理类之间不存在潜在语义关联的实属性,则该模式被称为对象代理数据库一级范式;
步骤3,根据对象代理数据库二级范式定义,将一级范式转换为二级范式,生成规范化对象代理数据库模式;所述对象代理数据库二级范式定义为,若某模式中具有公共源类的两个代理类之间不存在同名同语义实属性,则该模式被称为对象代理数据库二级范式。
而且,步骤2中,从不规范模式转换为一级范式的实现方式包括对所有相关实属性集合分别执行如下步骤,
步骤2.1,输入一个相关属性集合,遍历模式有向图中的所有节点,获取具有相关实属性的基本类节点或代理类节点;
步骤2.2,将一个具有语义相关实属性的代理类节点作为起始点,采用广度优先搜索算法计算这个代理类节点到其上层具有相关属性的类节点之间的最短继承路径;如果有最短继承路径则返回结果,进入步骤2.3;否则,将下一个具有语义相关实属性的代理类节点作为起始点,重新进行步骤2.2;
步骤2.3,沿最短继承路径自底向上拓展语义相关实属性,拓展时将下层代理类节点的语义相关实属性切换为继承自上层代理类节点的虚属性;
步骤2.4,根据步骤2.3所得拓展结果,遍历模式有向图中的所有节点,获取具有相关实属性的基本类节点或代理类节点,如果有相关实属性,则返回步骤2.2;如果没有相关实属性,则返回输入的相关属性集合检测并规范化完毕。
而且,步骤2.3沿最短继承路径自底向上拓展语义相关实属性时,对于不同的代理类节点拓展实属性的方式如下,
Select代理类节点在向上拓展时沿路径只对上层父类节点拓展实属性;
Join代理类节点在向上拓展时沿路径只对路径上的上层父类节点拓展实属性;
Union代理类节点在向上拓展时沿路径对所有上层父类拓展实属性。
而且,步骤3中, 从一级范式转换为二级范式的实现方式包括对所有同名同语义实属性集合分别执行如下步骤,
步骤3.1,输入同名同语义实属性集合,遍历模式有向图中的所有节点,获取具有同名同语义实属性的基本类节点或代理类节点,将获取的各类节点分别作为一个初始的类节点集合;
步骤3.2,对每一个类节点集合向上拓展,拓展方式为将任一类节点集合中所有类节点的上一层类节点加入集合,得到拓展后的类节点集合;将拓展后的所有类节点集合两两求交,获取所有交点m1, m2, m3 … mk,k为交点数量,组成交点集合M={m1, m2, m3 … mk};将交点集合M中每个交点分别与所有带与交点同名同语义实属性的子类节点组成交点扩展集合N1 … Nk;采用集合覆盖问题的贪心方法,逐次求取交点扩展集合N1 … Nk中覆盖带同名同语义实属性的类节点最多的集合并记为N,然后在其他交点扩展集合中删除已被覆盖的类节点;每次求取的集合N如果含有两个或两个以上带同名同语义实属性的类节点,则将集合N中的交点作为一个公共源类节点;
如果步骤3.2求得公共源类节点,进入步骤3.3,如果步骤3.2没有求得公共源类节点,进入步骤3.5;
步骤3.3,采用广度优先搜索算法求取下层带同名同语义实属性的类节点到步骤3.2所得公共源类节点的最短继承路径,沿最短继承路径自底向上拓展同名同语义实属性,同时将下层代理类节点的同名同语义实属性切换为继承自上层代理类节点的虚属性;
步骤3.4,将拓展了同名同语义实属性的公共源类节点作为一个新增的类节点集合,删除步骤3.3中每个将同名同语义实属性切换为虚属性的类节点分别所在的类节点集合;返回步骤3.2;
步骤3.5,如果类节点集合的数量大于1并且剩下的类节点集合中至少有一个类节点集合可以向上拓展,则返回步骤3.2;否则,对输入的同名同语义实属性集合检测并规范化完毕。
而且,步骤3.3沿最短继承路径自底向上拓展语义相关实属性时,对于不同的代理类节点拓展实属性的方式如下,
Select代理类节点在向上拓展时沿路径只对上层父类节点拓展实属性;
Join代理类节点在向上拓展时沿路径只对路径上的上层父类节点拓展实属性;
Union代理类节点在向上拓展时沿路径对所有上层父类拓展实属性。
本发明技术方案通过分析对象代理数据库复杂个性化操作带来的模式属性冗余和更新异常问题,针对对象代理数据库的特点,定义了对象代理数据库一级范式和二级范式,并设计了不规范模式转换为一级范式和一级范式转换为二级范式的转换算法。由于对象代理数据库随着大量用户的个性化使用,模式会变得非常复杂并同时产生大量属性冗余。利用本发明技术方案,可以阶段性地对数据库中的模式进行规范化,消除复杂模式中的属性冗余和更新异常,最终保证对象代理数据库模式的正确性和数据库系统的高效性。
附图说明
图1为本发明实施例的流程图;
图2为本发明实施例的一个对象代理数据库模式示例图;
图3为本发明实施例的一个简化后的模式有向图;
图4为本发明实施例的一个不符合一级范式的模式有向图;
图5为本发明实施例的经过一级范式规范化后的模式有向图;
图6为本发明实施例的一个符合一级范式而不符合二级范式的模式有向图;
图7为本发明实施例的经过二级范式规范化后的模式有向图。
具体实施方式
本发明结合对象代理模型的特点,根据对象代理数据库模式进化过程中出现的属性冗余和更新异常问题,提供一种对象代理数据库进行模式规范化的技术方案。通过这种方法来消除模式中的属性冗余和更新异常,确保对象代理数据库模式的正确性和数据库系统的高效性。
以下说明理论基础以便理解本发明的技术方案。
对象代理模型将现实世界中的实体表示为对象或者代理对象,对象封装实体的属性和操作方法,描述实体的特征并模拟实体的行为;代理对象则改变或者扩充对象的界面,反映实体在现实活动中的特征及行为变化,类似于对象视图。任何对象(包括对象和代理对象),都可以作为源对象来派生一个或者多个代理对象,多个源对象也可以共享同一个代理对象,源对象与其代理对象之间用双向指针相联系。代理对象既可以从源对象继承属性和方法,也可以扩展自己的属性和方法。对象代理数据库系统基于对象代理模型构建。系统中的每一个对象和代理对象都由系统指定的标识符唯一地标识,对象标识符与对象所处的状态相独立,不会随着对象状态的改变而改变。对象的模式由其所属的类描述,数据库系统的模式则由对象类(包括源类和代理类)和类与类之间的所有关系构成。
对象代理数据库系统基于对象代理模型设计了对象代理数据库语言ODSQL作为工作语言。ODSQL分为定义语言和操作语言,定义语言用来定义新的源类和代理类;操作语言让用户能自由操作这些类及其中的对象。利用对象代理数据库语言可以实现对象代理数据库的创建、修改与更替,提供复杂的个性化操作,从而形成对象代理数据库模式并实现对象代理数据库模式进化。
现有技术中,对象代理数据库提供了六种操作用于派生代理类,分别是Select操作、Join操作、Union操作、Group操作、Project操作和Extend操作。前四种操作与其对应能产生四种代理类,即Select代理类、Join代理类、Union代理类和Group代理类。其中,Select代理类只从一个源类中选择对象来派生代理对象,Join代理类通过组合若干个类的对象来派生代理对象,Union代理类派生若干个类的对象全体进行合并构成代理类,Group代理类则对其源类的对象进行分组之后按组来派生代理对象。后两种操作是在派生代理类时对类中属性的操作,Project操作针对源类中满足投影条件的属性和方法构成子集,Extend操作对代理类新增属性和方法。此外,在对象代理数据库中,通过Switch操作来实现从源类中的属性到代理类中的属性的选择性继承,包括读操作实现源对象中的属性值的读取,写操作实现将值写到源对象的属性。Switch操作在具体的对象代理数据库系统实现中,通过对象和代理对象间的双向指针技术来具体实现。
以下结合实施例和附图详细说明本发明技术方案,而在具体实施时,可由本领域技术人员采用计算机软件技术设计实现自动运行流程。如图1所示,本发明实施例的流程包括以下步骤:
步骤1,获取对象代理数据库SQL语句的模式信息,包括模式中基本类和代理类信息,实属性和虚属性信息,类与类之间的继承关系,属性与属性之间的继承关系,从而形成模式有向图。具体实施时,本领域技术人员可以采用软件形式提供对象代理数据库转储工具,以便获取对象代理数据库SQL语句的模式信息。
图2给出了一个简单的对象代理数据库模式示例,其中Singer为模式中的基本类(Basic Class),具有Name(姓名),Country(国家),Gender(性别),Birth(出生)共4个实属性;Singer_Age为一个继承自Singer类的Select代理类(Deputy Class),选择继承的条件无限制,具有Name,Gender共2个从Singer类继承而来的虚属性以及添加Age(年龄)共1个实属性。Singer_A为一个继承自Singer类的Select代理类,选择继承的条件为Gender=Female,具有Name,Gender,Birth共3个从Singer类继承而来的虚属性以及添加BloodType(血型)共1个实属性。Singer_B为一个继承自Singer类的Select代理类,选择继承的条件为Country=China,具有Name,Country,Birth共3个从Singer类继承而来的虚属性以及添加BloodType共1个实属性。对于这个数据库系统中的模式,我们利用对象代理数据库转储工具可获取其SQL语句的模式信息如下:
CREATE CLASS Singer (Name VARCHAR, Country VARCHAR, Gender VARCHAR, Birth INT);
CREATE SELECTDEPUTYCLASS Singer_Age (Age INT) AS (SELECT Name, Gender FROM Singer);
CREATE SELECTDEPUTYCLASS Singer_A (BloodType VARCHAR) AS (SELECT Name, Gender, Birth FROM Singer WHERE Gender = ‘Female’);
CREATE SELECTDEPUTYCLASS Singer_B (BloodType VARCHAR) AS (SELECT Name, Country, Birth FROM Singer WHERE Country = ‘China’);
相关符号为SQL语句常用符号,本发明不予赘述。
在这个模式示例中,基本类Singer和代理类Singer_Age具有上下继承关系,而Singer类中的实属性Birth和Singer_Age类中的实属性Age为语义相关实属性,因为Age可以通过当前时间减去Birth得到,所以产生属性冗余。代理类Singer_A和代理类Singer_B具有公共源类Singer,且Singer_A类中的实属性BloodType和Singer_B类中的实属性BloodType语义完全相同,为同名同语义实属性,所以也产生属性冗余。为了能更加清晰地理解本发明技术方案,实施例把图2的模式示例抽象为图3的模式有向图,其中每一个节点代表一个类,每一条边代表类与类之间的继承关系,边的方向由子类指向其父类,同时在节点中标明需要规范化处理的语义相关属性(其他属性以省略号表示),其中带有下划线的属性为通过Switch操作继承而来的虚属性,不带下划线属性为实属性。
步骤2,根据对象代理数据库一级范式定义,将不规范模式转换为一级范式,实现一级范式规范化。
本发明提出对象代理数据库一级范式(ODNF-1)的定义如下:模式中具有上下继承关系的源类和代理类之间不存在潜在语义关联的实属性,则该模式被称为对象代理数据库一级范式。
图4给出了一个不符合一级范式且较复杂的对象代理数据库模式有向图示例,包含了本发明中一级范式规范化所要处理的一些主要问题,包括节点1、2、3、4、5、6、7、8、9、10。其中节点1中的实属性a和节点10中的实属性b为语义相关属性,具有函数依赖关系b = f(a)。结合图4示例,从不规范模式转换为一级范式的具体实施步骤如下:
步骤2.1,输入一个相关实属性集合,例如(a, b)。遍历模式有向图中的所有节点,获取具有相关实属性的基本类节点或代理类节点。其中具有实属性a的为基本类节点1,具有实属性b的为代理类节点10。
步骤2.2,将一个具有语义相关实属性的代理类节点作为起始点,采用现有技术中的广度优先搜索算法计算这个类节点到其上层具有相关属性的类节点之间的最短继承路径。如果有最短继承路径则返回结果,进入步骤2.3;否则,将下一个具有语义相关实属性的代理类节点作为起始点,重新进行步骤2.2,直到得到最短继承路径后进入步骤2.3。在本例中,类节点10和其上层类节点1之间具有最短继承路径沿子类到父类的方向为10→9→4→2→1。
步骤2.3,沿最短继承路径自底向上拓展语义相关实属性,因路径尾节点为具有相关属性的类节点,故无需拓展。向上拓展实属性的同时,将其下层代理类节点的语义相关实属性通过添加Switch操作切换为继承自上层代理类的虚属性节点。
对于不同的代理类,可以分别考虑其拓展实属性的方式,实施例中的具体拓展实现方式为:Select代理类只有一个父类,且代理类中的属性为单一继承路径,所以其在向上拓展时沿路径只对其上层父类拓展实属性;Join代理类拥有多个父类,但代理类中的属性为单一继承路径,即其属性只能从一个父类继承而来,所以其在向上拓展时沿路径只对其路径上的上层父类拓展实属性;Union代理类拥有多个父类,且代理类中的属性为多条继承路径,即其属性从其所有父类继承而来,所以其在向上拓展时沿路径对其所有上层父类拓展实属性;Group代理类由分组操作产生,其属性语义范围限定为一个组,所以不可能与上层代理类产生语义相关属性,因此在模式规范化中不做考虑。
在本例中,节点10 为Select代理类,沿路径对其上层父类节点9拓展实属性b,并通过Switch操作将节点10的实属性b切换为虚属性,Switch函数为b=b。节点9为Union代理类,沿路径对其所有上层父类节点4和节点8拓展实属性b,并通过Switch操作将节点9的实属性b切换为虚属性,Switch函数为b=b。以此类推,直至路径尾节点,尾节点的Switch函数为b=f(a)。
步骤2.4,完成步骤2.3之后,路径上的代理类节点拓展了语义相关实属性,并通过Switch操作切换为了继承自路径尾节点的虚属性。由于路径上可能有Union代理类,从而对路径以外的类节点拓展了实属性,所以需要再一次进行本轮相关实属性检测,即根据步骤2.3所得拓展结果,遍历模式有向图中的所有节点,获取具有相关实属性的基本类节点或代理类节点。如果有相关实属性,则返回步骤2.2;如果没有相关实属性,则对初始输入的相关实属性集合(a,b)处理完毕。具体实施时,因为可能有多个相关实属性集合,需要分别执行以上过程。可以设计为循环执行程序,在当前相关实属性集合处理完毕后,针对另一个相关实属性集合返回步骤2.1开始执行检测,进行下一轮相关实属性检测,直至所有相关实属性集合检测并规范化完毕。
在本例中,Union代理类节点9对路径以外的类节点8拓展了实属性b,所以需要返回步骤2.2,检测到类节点8和类节点1之间存在最短继承路径8→5→3→1,继续进行规范化。
经过以上一级范式规范化算法的操作后,对象代理数据库的模式将从一个如图4所示的不规范模式转换为一个如图5所示的一级范式模式。图5中b的下划线表示其为虚属性。
步骤3,根据定义对象代理数据库二级范式定义,将一级范式转换为二级范式,实现二级范式规范化。
本发明提出对象代理数据库二级范式(ODNF-2)的定义如下:模式中具有公共源类的两个代理类之间不存在同名同语义实属性,则该模式被称为对象代理数据库二级范式。
图6给出了一个符合一级范式而不符合二级范式且较复杂的对象代理数据库模式有向图示例,包含了本发明中二级范式规范化所要处理的一些主要问题,包括节点1、2、3、4、5、6、7、8、9、10、11、12、13。其中节点8、9、10、11、12、13都具有同名同语义实属性c。结合图5示例,从一级范式转换为二级范式的具体实施步骤如下:
步骤3.1,输入同名同语义实属性集合,例如(c)。遍历模式有向图中的所有节点,获取具有同名同语义实属性的基本类或代理类。本例中具有同名同语义实属性c的类节点为8、9、10、11、12、13。将这些类节点分别作为一个初始类节点集合,在本例中初始的类节点集合为{8}、{9}、{10}、{11}、{12}、{13}。
步骤3.2,向上拓展类节点集合,将集合中类节点的上一层类节点加入集合。第一次执行此步骤时,是对步骤3.1所得初始的类节点集合进行处理。本例中,集合第一次扩展为{8, 5}、{9, 5}、{10, 5, 6}、{11, 6}、{12, 7}、{13, 7}。集合两两求交,获取所有交点,记交点数量为k,组成交点集合M={m1, m2, m3 … mk}。本例中,第一次求交集时,k=3,交点集合M={5, 6, 7}。将M中每个交点及其所有带同名同语义实属性的子类节点组成交点扩展集合N1 … Nk。本例中,N1={5, 8, 9, 10},N2={6, 10, 11},N3={7, 12, 13}。采用现有技术中的集合覆盖问题的贪心方法,逐次求取交点扩展集合N1 … Nk中覆盖带同名同语义实属性的类节点最多的集合,然后在其他交点扩展集合中删除已被覆盖的类节点。求覆盖带同名同语义实属性的类节点最多的集合是为了尽可能就地进行实属性的提升,减少操作次数。每次求取的集合是N1 … Nk之一,记为N。如果含有两个或两个以上带同名同语义实属性的类节点,则将该集合N中的那个交点m作为一个公共源类节点。本例中,首先求得N1,其含有3个带同名同语义实属性的类节点8、9、10,为覆盖带同名同语义实属性的类节点最多的集合。所以将5作为一个公共源类节点。并在N2,N3中删除8、9、10,令N2={6, 11},N3={7, 12, 13}。以此类推,接下来求得N3,其含有2个带同名同语义实属性的类节点12、13,为覆盖带同名同语义实属性的类节点最多的集合。所以将7作为一个公共源类节点。然后求得N2,其只含有1个带同名同语义实属性的类节点11,所以无公共源类节点。
如果步骤3.2求得公共源类节点,进入步骤3.3,如果步骤3.2没有求得公共源类节点,进入步骤3.5。
步骤3.3,因为步骤3.2求得公共源类节点,则采用广度优先搜索算法求取下层带同名同语义实属性的类节点到公共源类节点的最短继承路径,沿最短继承路径自底向上拓展同名同语义实属性,同时将下层代理类节点的同名同语义实属性通过添加Switch操作切换为继承自上层代理类节点的虚属性。此过程与一级范式规范化过程中的步骤2.3类似,也可对于不同的代理类分别考虑其拓展实属性的方式,建议采用一致的规则:Select代理类节点在向上拓展时沿路径只对上层父类节点拓展实属性;Join代理类节点在向上拓展时沿路径只对路径上的上层父类节点拓展实属性;Union代理类节点在向上拓展时沿路径对所有上层父类拓展实属性。在本例中,将公共源类5、7拓展了实属性c,类节点8、9、10的实属性c切换为继承自类节点5的虚属性,类节点12、13的实属性c切换为继承自类节点7的虚属性。
步骤3.4,将拓展了实属性的公共源类节点作为一个新增的类节点集合,删除那些在本轮执行步骤3.2中通过Switch操作已将同名同语义实属性切换为虚属性的类节点所在的类节点集合。在本例中,第一次新增类节点集合为{5}、{7},删除的类节点集合为{8, 5}、{9, 5}、{10, 5, 6}、{12, 7}、{13, 7}。所以,剩下的类节点集合为{5}、{7}、{11, 6}。返回步骤3.2,基于当前的所有类节点集合,继续向上拓展类节点集合并进行集合求交。
步骤3.5,因为步骤3.2没有求得公共源类,则进行如下判断。如果类节点集合的数量大于1并且剩下的类节点集合中至少有一个类节点集合可以向上拓展,则返回步骤3.2向上拓展类节点集合并进行集合求交。否则,对输入的同名同语义实属性集合检测并规范化完毕。具体实施时,可能有多个同名同语义实属性集,需要分别执行以上过程。可以设计为循环执行程序,在当前相关实属性集合处理完毕后,结束本轮同名同语义属性的规范化,返回步骤3.1针对下一个同名同语义实属性集合进行下一轮同名同语义实属性检测,直至所有同名同语义实属性集合检测并规范化完毕。
经过以上二级范式规范化算法的操作后,对象代理数据库的模式将从一个如图6所示的一级范式模式转换为一个如图7所示的二级范式模式,生成规范化对象代理数据库模式。图7中c的下划线表示其为虚属性。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (5)
1.一种对象代理数据库的模式规范化方法,其特征在于:包括以下步骤,
步骤1,获取对象代理数据库SQL语句的模式信息,形成模式有向图;所述对象代理数据库SQL语句的模式信息包括模式中基本类和代理类信息,实属性和虚属性信息,类与类之间的继承关系,属性与属性之间的继承关系;
步骤2,根据对象代理数据库一级范式定义,将不规范模式转换为一级范式;所述对象代理数据库一级范式定义为,若某模式中具有上下继承关系的源类和代理类之间不存在潜在语义关联的实属性,则该模式被称为对象代理数据库一级范式;
步骤3,根据对象代理数据库二级范式定义,将一级范式转换为二级范式,生成规范化对象代理数据库模式;所述对象代理数据库二级范式定义为,若某模式中具有公共源类的两个代理类之间不存在同名同语义实属性,则该模式被称为对象代理数据库二级范式。
2.根据权利要求 1 所述一种对象代理数据库的模式规范化方法,其特征在于:步骤2中,从不规范模式转换为一级范式的实现方式包括对所有相关实属性集合分别执行如下步骤,
步骤2.1,输入一个相关属性集合,遍历模式有向图中的所有节点,获取具有相关实属性的基本类节点或代理类节点;
步骤2.2,将一个具有语义相关实属性的代理类节点作为起始点,采用广度优先搜索算法计算这个代理类节点到其上层具有相关属性的类节点之间的最短继承路径;如果有最短继承路径则返回结果,进入步骤2.3;否则,将下一个具有语义相关实属性的代理类节点作为起始点,重新进行步骤2.2;
步骤2.3,沿最短继承路径自底向上拓展语义相关实属性,拓展时将下层代理类节点的语义相关实属性切换为继承自上层代理类节点的虚属性;
步骤2.4,根据步骤2.3所得拓展结果,遍历模式有向图中的所有节点,获取具有相关实属性的基本类节点或代理类节点,如果有相关实属性,则返回步骤2.2;如果没有相关实属性,则返回输入的相关属性集合检测并规范化完毕。
3.根据权利要求2 所述一种对象代理数据库的模式规范化方法,其特征在于:步骤2.3沿最短继承路径自底向上拓展语义相关实属性时,对于不同的代理类节点拓展实属性的方式如下,
Select代理类节点在向上拓展时沿路径只对上层父类节点拓展实属性;
Join代理类节点在向上拓展时沿路径只对路径上的上层父类节点拓展实属性;
Union代理类节点在向上拓展时沿路径对所有上层父类拓展实属性。
4.根据权利要求 1 或2或3所述一种对象代理数据库的模式规范化方法,其特征在于:步骤3中, 从一级范式转换为二级范式的实现方式包括对所有同名同语义实属性集合分别执行如下步骤,
步骤3.1,输入同名同语义实属性集合,遍历模式有向图中的所有节点,获取具有同名同语义实属性的基本类节点或代理类节点,将获取的各类节点分别作为一个初始的类节点集合;
步骤3.2,对每一个类节点集合向上拓展,拓展方式为将任一类节点集合中所有类节点的上一层类节点加入集合,得到拓展后的类节点集合;将拓展后的所有类节点集合两两求交,获取所有交点m1, m2, m3 … mk,k为交点数量,组成交点集合M={m1, m2, m3 … mk};将交点集合M中每个交点分别与所有带与交点同名同语义实属性的子类节点组成交点扩展集合N1 … Nk;采用集合覆盖问题的贪心方法,逐次求取交点扩展集合N1 … Nk中覆盖带同名同语义实属性的类节点最多的集合并记为N,然后在其他交点扩展集合中删除已被覆盖的类节点;每次求取的集合N如果含有两个或两个以上带同名同语义实属性的类节点,则将集合N中的交点作为一个公共源类节点;
如果步骤3.2求得公共源类节点,进入步骤3.3,如果步骤3.2没有求得公共源类节点,进入步骤3.5;
步骤3.3,采用广度优先搜索算法求取下层带同名同语义实属性的类节点到步骤3.2所得公共源类节点的最短继承路径,沿最短继承路径自底向上拓展同名同语义实属性,同时将下层代理类节点的同名同语义实属性切换为继承自上层代理类节点的虚属性;
步骤3.4,将拓展了同名同语义实属性的公共源类节点作为一个新增的类节点集合,删除步骤3.3中每个将同名同语义实属性切换为虚属性的类节点分别所在的类节点集合;返回步骤3.2;
步骤3.5,如果类节点集合的数量大于1并且剩下的类节点集合中至少有一个类节点集合可以向上拓展,则返回步骤3.2;否则,对输入的同名同语义实属性集合检测并规范化完毕。
5.根据权利要求4 所述一种对象代理数据库的模式规范化方法,其特征在于:步骤3.3沿最短继承路径自底向上拓展语义相关实属性时,对于不同的代理类节点拓展实属性的方式如下,
Select代理类节点在向上拓展时沿路径只对上层父类节点拓展实属性;
Join代理类节点在向上拓展时沿路径只对路径上的上层父类节点拓展实属性;
Union代理类节点在向上拓展时沿路径对所有上层父类拓展实属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310096791.8A CN103136374B (zh) | 2013-03-25 | 2013-03-25 | 一种对象代理数据库的模式规范化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310096791.8A CN103136374B (zh) | 2013-03-25 | 2013-03-25 | 一种对象代理数据库的模式规范化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136374A true CN103136374A (zh) | 2013-06-05 |
CN103136374B CN103136374B (zh) | 2015-12-23 |
Family
ID=48496199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310096791.8A Active CN103136374B (zh) | 2013-03-25 | 2013-03-25 | 一种对象代理数据库的模式规范化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136374B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059108A (zh) * | 2019-04-28 | 2019-07-26 | 武汉大学 | 一种面向移动端对象代理数据库关联查询的优化方法 |
CN110162642A (zh) * | 2019-05-21 | 2019-08-23 | 武汉大学 | 基于对象代理数据库的专利知识图谱构建方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241503A (zh) * | 2008-01-03 | 2008-08-13 | 彭智勇 | 数据库个性化方法 |
-
2013
- 2013-03-25 CN CN201310096791.8A patent/CN103136374B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241503A (zh) * | 2008-01-03 | 2008-08-13 | 彭智勇 | 数据库个性化方法 |
Non-Patent Citations (3)
Title |
---|
ZHIYONG PENG ET AL: "Deputy Mechanisms for object-oriented databases", 《DATA ENGINEERING,1995.PROCEEDINGS OF THE ELEVENTH INTERNATIONAL CONFERENCE ON》, 10 May 1995 (1995-05-10), pages 333 - 340 * |
郭思培 等: "基于对象代理模型的形式概念分析方法应用研究", 《计算机研究与发展》, no. 20081, 31 December 2008 (2008-12-31), pages 212 - 216 * |
郭思培,彭智勇: "数据库规范化理论研究", 《武汉大学学报》, vol. 57, no. 6, 31 December 2011 (2011-12-31), pages 535 - 544 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059108A (zh) * | 2019-04-28 | 2019-07-26 | 武汉大学 | 一种面向移动端对象代理数据库关联查询的优化方法 |
CN110162642A (zh) * | 2019-05-21 | 2019-08-23 | 武汉大学 | 基于对象代理数据库的专利知识图谱构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103136374B (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936668B2 (en) | Systems and methods for querying databases | |
CN108038222B (zh) | 用于信息系统建模和数据访问的实体-属性框架的系统 | |
CN111295651B (zh) | 在多维数据库环境中使多个父母具有权重的系统和方法 | |
EP2973041B1 (en) | Apparatus, systems, and methods for batch and realtime data processing | |
Kyzirakos et al. | Strabon: A semantic geospatial DBMS | |
US9317557B2 (en) | Answering relational database queries using graph exploration | |
CN105849725B (zh) | 构造用于针对多维数据结构执行的查询 | |
Spaccapietra et al. | GIS databases: From multiscale to multirepresentation | |
US6125351A (en) | System and method for the synthesis of an economic web and the identification of new market niches | |
CN102426582B (zh) | 数据操作管理装置和数据操作管理方法 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
JP2016532942A (ja) | イベント知識データベースの構築方法および装置 | |
CN105808853B (zh) | 一种面向工程应用的本体构建管理与本体数据自动获取方法 | |
JP2006172446A (ja) | 複合データアクセス | |
CN109918394A (zh) | 数据查询方法、系统、计算机装置及计算机可读存储介质 | |
CN103853759B (zh) | 一种自适应表单的生成方法及系统 | |
US10262055B2 (en) | Selection of data storage settings for an application | |
US20200342029A1 (en) | Systems and methods for querying databases using interactive search paths | |
CN101408909B (zh) | 一种产品多专业一体化实现方法 | |
CN106445913A (zh) | 基于MapReduce的语义推理方法及系统 | |
CN115329504A (zh) | 一种基于复杂产品结构的bom构建方法 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
US8650534B2 (en) | Metaobject enhancement objects | |
KR102153259B1 (ko) | 데이터 도메인 추천 방법 및 추천된 도메인을 이용하여 통합 데이터 저장소 관리 시스템을 구축하는 방법 | |
CN103136374A (zh) | 一种对象代理数据库的模式规范化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |