一种cim模型映射方法

文档序号:6444683阅读:198来源:国知局
专利名称:一种cim模型映射方法
技术领域
本发明涉及一种关系数据库映射技术
背景技术
现有公共信息模型(Common Information Model,简称“CIM”)的实现大多来自对象管理组织(Object Management Group,简称“OMG”)((Utility Management System(UMS)
Data Access Facility Specification》附录 C-SQL Examples。该文档提出了将 GDA
接口映射为SQL语句的范例。由此引申出一个问题:基于面向对象模型描述的CIM模型如何映射至关系型数据库的问题。在对象模型中,对象之间普遍存在着各种关系,如关联、组合、聚合、继承等,这种关系无法在关系型数据库中直接表达,这就是产生了所谓的对象模型与关系模型之间的“阻抗不匹配”。为解决这些问题,当前大多采用基于结构映射模式的0/R(对象-关系)映射方法。通常的0/R映射方法,对对象模型的处理需要包括以下三方面内容:1、对象映射——将对象映射至数据库表,即用表字段来描述面向对象模型的类属性,这样对象就映射为具体的表记录,数据表就表达为对象的集合,基于关系键映射来描述对象之间的聚合关系,如图1所示。2、类关系映射——用数据库表之间的关系键映射来描述对象之间的关系特性,由于对象之间普遍存在着一对多甚至多对多的关系,根据关系型数据库表之间的关系键映射的处理方法,多对多关系需要引入第三张表即关联表,基于关系表映射来描述对象之间的多对多关系,如图2所示。另外对象类之间的关系还分为关联、组合、聚合,对于前两种关系还需描述关系的角色特性,对于对象类关系的这个特性,简单的关系键映射不能直接解决该问题。3、类继承映射一在对象模型中还存在通过继承关系相互连接起来的类层次,由于标准的SQL里面没有用于继承的标准方法,所以为了在关系模型中表达对象之间这种层次关系,还需要建立数据表之间的继承映射关系。对于任何继承结构,目前都有三种选择:
a、为层次中的所有类建立一个表,即单表继承,如图3所示;b、为每个具体类建立一个表,即具体表继承,如图4所示;c、为层次中每一个类建立一个表,即类表继承,如图5所示。本发明的发明人发现,现有技术中采用的基于结构映射模式的0/R(对象-关系)映射方法存在以下问题:1、表“膨胀”一可以看出整个映射模型中存在两大类表,即对象表与关系表。在CIM对象模型中至少存在几百个类,加上类之间的复杂关系,基于该映射方法建立起来的对象关系模型,表数量巨大,由此导致系统的可维护性很差。2、大量连接操作——由于大量关系表的存在,导入一个对象需要涉及多个连接(join)操作,这样通常损失了数据库操作性能,虽然单表继承与具体表继承可以避免因继承关系带来的连接操作,但单表继承同时带来了存储空间上浪费,具体表继承允许从一个表中取得一个对象,但由此引起系统的可扩展性与数据的引用完整性问题。同时对象类关系的存在仍使得对象引用时大量的连接操作不可避免。3、表记录“膨胀”——这种情况尤其体现在采用类表继承,由于每一个超类均需要保存一份子类的对应记录,这直接导致超类表记录数增多。总之,在当前采用基于结构映射模式的0/R(对象-关系)映射方法来解决对象模型的大规模实际应用,尤其是在一些涉及海量信息资源建模应用的领域,如电力、石油、铁路等行业,以及当前广泛关注的物联网应用,由于其本身就需处理海量的“物”描述。这种映射方法显得有些困难。

发明内容
本发明主要解决的技术问题是提供一种CIM模型与关系型数据库之间的映射方法,使得在实现CIM模型到关系型数据库之间映射的同时,可以满足CIM应用中对信息模型的任意扩展要求与引用完整性约束,避免出现表“膨胀”、和大量连接操作的问题。为了解决上述技术问题,本发明提供了一种,包含以下步骤建立公共信息模型中类的元模型描述,包含类本体的描述、类属性的描述、和类关系的描述,类关系包括类层次关系和类逻辑关系;为类的各描述分别建立元模型,生成类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型,和各元模型的关系;公共信息模型中所有类模型均通过上述各元模型实例化得到;将类的元模型映射至关系型数据库,每个元模型对应一关系表,建立由类的各元模型映射而成的模式关系表集合;在对类元模型进行实例化,生成具体的类模型时,根据实例化的内容,在模式关系表集合中对应的关系表中新增记录。作为上述技术方案的改进,还包含以下步骤:建立公共信息模型中对象的元模型描述,包含对象本体的描述、对象属性值的描述、和对象间关系的描述;为对象的各描述分别建立元模型,生成对象本体的描述类元模型、对象属性值的描述类元模型、对象间关系的描述类元模型,和各元模型的关系;公共信息模型中所有对象模型均通过上述各元模型实例化得到;将对象的元模型映射至关系型数据库,每个元模型对应一关系表,建立由对象的各元模型映射而成的对象关系表集合;在对对象元模型进行实例化,生成具体的对象模型时,根据实例化的内容,在对象关系表集合中对应的关系表中新增记录。作为上述技术方案的改进,类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型的关系包含:类本体的描述类元模型自身具有继承关系;类本体的描述类元模型与类关系的描述类元模型之间具有定义域关系,用于表明类关系的描述类所表达的具体关系由哪个类所拥有;类本体的描述类元模型与类属性的描述类元模型之间具有从属关系,用于表明类属性的描述类所表达的具体类属性由哪个类所拥有。作为上述技术方案的改进,对象本体的描述类元模型类为类本体的描述类元模型的实例;对象属性值的描述类元模型为类属性的描述类元模型的实例;对象间关系的描述类元模型为类关系的描述类元模型的实例。作为上述技术方案的改进,建立公共信息模型中类的元模型描述的步骤中,所建立的描述还包含:基本数据类型的描述;为类的各描述分别建立元模型的步骤中,还生成基本数据类型的描述类元模型;基本数据类型的描述类元模型与类属性的描述类元模型之间具有关联关系,用于表明类属性的描述类所表达的具体类属性使用哪种数据类型。作为上述技术方案的改进,建立公共信息模型中类的元模型描述的步骤中,所建立的描述还包含:简单数据类型的描述;为类的各描述分别建立元模型的步骤中,还生成简单数据类型的描述类元模型;基本数据类型的描述类元模型与简单数据类型的描述类元模型之间具有组合关系O作为上述技术方案的改进,将类与对象的元模型映射至关系型数据库,每个元模型对应一关系表的步骤中,元模型中包含的每个元素对应关系表中的一项。作为上述技术方案的改进,类本体的描述类元模型包含以下元素:类标识、类名称、类版型、和/或类基类;类属性的描述类元模型包含以下元素:属性标识、属性名称、属性变量类型、所属类、和/或注释;类关系的描述类元模型包含以下元素:关系标识、关系名称、重数、是否聚集、关系的定义域、关系的值域、反向角色名、和
/或注释。作为上述技术方案的改进,基本数据类型的描述类元模型包含以下元素:基本数据类型标识、类或结构的名称、类的版型、和/或注释。作为上述技术方案的改进,简单数据类型的描述类元模型包含以下元素:变量名、变量类型、变量初始值、和/或所属基本数据类型。作为上述技术方案的改进,对象本体的描述类元模型包含以下元素:对象标识、对象名称、类标识、和/或对象关系实例标识;对象属性值的描述类元模型包含以下元素:属性值标识、属性名称、值类型、值数据、所属对象标识、属性标识;对象间关系的描述类元模型包含以下元素:关系标识、所属对象标识、类关系标识。本发明实施方式与现有技术相比,主要区别及其效果在于:先分别建立类的元模型描述,这样有关类的语义差别在元模型体系中得到消除;然后将元模型映射至关系型数据库,通过这样的映射将建立由类元模型映射而成的模式关系表集合(称之为模式库)。经过这种方法建立起来的数据库,表数量有限,而且由于元模型是通用的,这意味着表结构是稳定的,可以满足CIM应用中对信息模型的任意扩展要求与引用完整性约束。并且,在表数量有限的情况下,也可以避免大量的连接操作,而且表之间的关系预先知道,完全可以通过关系型数据库的存储过程来避免动态生成SQL语句,进一步提供系统性能。基本上可以消除现有技术中表“膨胀”、和大量连接操作的缺点。


图1是背景技术中基于关系键映射来描述对象之间的聚合关系的示意图;图2是背景技术中基于关系表映射来描述对象之间的多对多关系的示意图;图3是背景技术中单表继承示意图;图4是背景技术中具体表继承示意图;图5是背景技术中类表继承示意图;图6是本发明一较佳实施方式中类模型与关系型数据库之间的映射流程图;图7是本发明一较佳实施方式中CIM模型中类的兀模型UML描述不意图;图8是本发明一较佳实施方式中模式库的基本表之间的关系键映射不意图;图9是本发明一较佳实施方式中对象模型与关系型数据库之间的映射流程图;图10是本发明一较佳实施方式中对象库的基本表之间的关系键映射示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明一较佳实施方式涉及一种CIM模型与关系型数据库之间的映射方法,是针对CM的一种具体实现技术。CIM是用面向对象的建模技术定义的,根据面向对象理论,对象是类的实例,类是对具有相同属性与行为的一组事物的抽象描述。类之间还具有关系,这种关系包括类层次关系(即继承)与类逻辑关系(如关联、组合等);本发明的发明人发现,由于定义CIM是为了方便数据交换,因此CIM实体除了缺省的生成、删除、更新和读出外,没有其它行为,也即CIM中定义的类只有0.属性,没有行为方法的定义,从而类、对象以及它们之间的关系是可以通过各自的元模型来统一建模描述。因此本发明的基本思路是:先分别建立类与对象的元模型描述,这样有关类与对象的语义差别在各自的元模型体系中得到消除;然后将元模型映射至关系型数据库,通过这样的映射将建立两种兀模型的数据库表,即由类兀模型映射而成的模式关系表集合(称之为模式库)与对象元模型映射而成的对象关系表集合(称之为对象库)。经过这种方法建立起来的数据库,表数量有限(类元模型关系表为5张基本表、对象元模型关系表为3张基本表),而且由于元模型是通用的,这意味着表结构是稳定的,可以满足CIM应用中对信息模型的任意扩展要求与引用完整性约束。并且,在表数量有限的情况下,也可以避免大量的连接操作,而且表之间的关系预先知道,完全可以通过关系型数据库的存储过程来避免动态生成SQL语句,进一步提供系统性能。可见,相对于现有技术中采用结构映射方法来实现关系型数据库的映射,本发明采用基于元模型的映射方法实现类模型和对象模型统一映射至关系型数据库,基本上可以消除现有技术中表“膨胀”、和大量连接操作的缺点,是对CIM实现方法的一种很大改进。
另外,由于元模型是通用的,且结构是稳定,也即在系统生命周期内不会随CM模型的改变以及系统应用目的、业务类型的改变而改变,因此我们在元模型映射时采用具体表继承来消除元模型描述类的继承关系。具体类模型与关系型数据库之间的映射流程如图6所示。步骤601中,建立CM模型中类的元模型UML描述,包含三个基本的元模型描述:类本体的描述(Class)、类属性的描述(Property)、和类关系的描述(Relation),如图7所示。其中,类关系包括类层次关系(即继承)、和类逻辑关系(如关联、组合等)。另外,根据面向对象表示方法,每一个CIM类属性都具有一个数据类型,因此在类的元模型描述中还包含了基本数据类型的描述(Datatype);并且,在CIM建模规范中,除了简单的数据类型(包括整型、浮点型、字符串型、布尔型等)外,某些数据类型还建模有单位、倍率、初始值等,因此还包含了简单数据类型的描述(Variant)。步骤602中,为类的各描述分别建立元模型,生成类本体的描述类元模型(Class类)、类属性的描述类元模型(Property类)、类关系的描述类元模型(Relation类),和基本数据类型的描述类元模型(Datatype类)、简单数据类型的描述类元模型(Variant类);以及各元模型的关系。CIM模型中所有类模型均可以通过上述各元模型实例化得到。其中,如图7所示,上述Class类、Property类、Relation类三个元模型类具有建丰吴关系如下:Class类自身具有的SubclassOf关系(表示是......的子类)表示CIM类之间
的层次关系(即继承);Class类与Relation类之间具有的Domain关系(定义域)用来说明Relation类所表达的CM关系为哪个CM类所拥有,两者之间的Range关系(值域)用来说明Relation类所表达的CM关系指向哪个CM类;Class类与Property类之间具有的Properties关系(从属)用来说明Property类所表达的CM类属性为哪个类所拥有。根据面向对象表示方法,每一个CIM类属性都具有一个数据类型。因此在类的元模型中使用了 DataType这个类来建模相关的CIM类属性使用哪一种数据类型,另外在CM建模规范中,除了简单的数据类型(包括整型、浮点型、字符串型、布尔型等)外,某些数据类型还建模有单位、倍率、初始值等,因此引入Variant类对这些构成数据类型的要素进行了建模。步骤603中,将类的元模型映射至关系型数据库,每个元模型对应一关系表,共5张基本表,建立由类的各元模型映射而成的模式关系表集合(称为模式库)。元模型中包含的每个元素对应关系表中的一项成员变量。类本体的描述类元模型包含以下元素:类标识、类名称、类版型、类基类;对应的表结构如表I所不:
权利要求
1.一种公共信息模型与关系型数据库之间的映射方法,其特征在于,包含以下步骤: 建立公共信息模型中类的元模型描述,包含类本体的描述、类属性的描述、和类关系的描述,所述类关系包括类层次关系和类逻辑关系; 为所述类的各描述分别建立元模型,生成类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型,和各元模型的关系;所述公共信息模型中所有类模型均通过上述各元模型实例化得到; 将所述类的元模型映射至关系型数据库,每个元模型对应一关系表,建立由类的各元模型映射而成的模式关系表集合; 在对类元模型进行实例化,生成具体的类模型时,根据实例化的内容,在所述模式关系表集合中对应的关系表中新增记录。
2.根据权利要求1所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,还包含以下步骤: 建立公共信息模型中对象的元模型描述,包含对象本体的描述、对象属性值的描述、和对象间关系的描述; 为所述对象的各描述分别建立元模型,生成对象本体的描述类元模型、对象属性值的描述类元模型、对象间关系的描述类元模型,和各元模型的关系;所述公共信息模型中所有对象模型均通过上述各元模型实例化得到; 将所述对象的元模型映射至关系型数据库,每个元模型对应一关系表,建立由由对象的各元模型映射而成的对象关系表集合; 在对对象元模型进行实例化,生成具体的对象模型时,根据实例化的内容,在所述对象关系表集合中对应的关系表中新增记录。
3.根据权利要求1所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型的关系包含: 所述类本体的描述类元模型自身具有继承关系; 所述类本体的描述类元模型与所述类关系的描述类元模型之间具有定义域关系,用于表明所述类关系的描述类所表达的具体关系由哪个类所拥有; 所述类本体的描述类元模型与所述类属性的描述类元模型之间具有从属关系,用于表明所述类属性的描述类所表达的具体类属性由哪个类所拥有。
4.根据权利要求2所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述对象本体的描述类元模型类为所述类本体的描述类元模型的实例; 所述对象属性值的描述类元模型为所述类属性的描述类元模型的实例; 所述对象间关系的描述类元模型为所述类关系的描述类元模型的实例。
5.根据权利要求1所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述建立公共信息模型中类的元模型描述的步骤中,所建立的描述还包含:基本数据类型的描述; 所述为类的各描述分别建立元模型的步骤中,还生成基本数据类型的描述类元模型;所述基本数据类型的描述类元模型与所述类属性的描述类元模型之间具有关联关系,用于表明所述类属性的描述类所表达的具体类属性使用哪种数据类型。
6.根据权利要求5所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述建立公共信息模型中类的元模型描述的步骤中,所建立的描述还包含:简单数据类型的描述; 所述为类的各描述分别建立元模型的步骤中,还生成简单数据类型的描述类元模型;所述基本数据类型的描述类元模型与所述简单数据类型的描述类元模型之间具有组合关系。
7.根据权利要求1至6中任意一项所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述将类与对象的元模型映射至关系型数据库,每个元模型对应一关系表的步骤中, 所述元模型中包含的每个元素对应关系表中的一项。
8.根据权利要求7所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述类本体的描述类元模型包含以下元素: 类标识、类名称、类版型、和/或类基类; 所述类属性的描述类元模型包含以下元素: 属性标识、属性名称、属性变量类型、所属类、和/或注释; 所述类关系的描述类元模型包含以下元素: 关系标识、关系名称、重数、是否聚集、关系的定义域、关系的值域、反向角色名、和/或注释。`
9.根据权利要求7所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述基本数据类型的描述类元模型包含以下元素: 基本数据类型标识、类或结构的名称、类的版型、和/或注释。
10.根据权利要求7所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述简单数据类型的描述类元模型包含以下元素: 变量名、变量类型、变量初始值、和/或所属基本数据类型。
11.根据权利要求7所述的公共信息模型与关系型数据库之间的映射方法,其特征在于,所述对象本体的描述类元模型包含以下元素: 对象标识、对象名称、类标识、和/或对象关系实例标识; 所述对象属性值的描述类元模型包含以下元素: 属性值标识、属性名称、值类型、值数据、所属对象标识、属性标识; 所述对象间关系的描述类元模型包含以下元素: 关系标识、所属对象标识、类关系标识。
全文摘要
本发明公开了一种CIM模型映射方法,先分别建立类与对象的元模型描述,这样有关类与对象的语义差别在各自的元模型体系中得到消除;然后将元模型映射至关系型数据库,通过这样的映射将建立两种元模型的数据库表,即由类元模型映射而成的模式关系表集合(称之为模式库)与对象元模型映射而成的对象关系表集合(称之为对象库)。经过这种方法建立起来的数据库,表数量有限,而且由于元模型是通用的,这意味着表结构是稳定的,可以满足CIM应用中对信息模型的任意扩展要求与引用完整性约束。
文档编号G06F17/30GK103186620SQ20111045745
公开日2013年7月3日 申请日期2011年12月31日 优先权日2011年12月31日
发明者俞高宇, 林 吉, 梁俊 申请人:上海可鲁系统软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1