一种公共信息模型与关系型数据库之间的映射方法技术

技术编号:8883258 阅读:244 留言:0更新日期:2013-07-04 02:04
本发明专利技术公开了一种CIM模型与关系型数据库之间的映射方法,先分别建立类与对象的元模型描述,这样有关类与对象的语义差别在各自的元模型体系中得到消除;然后将元模型映射至关系型数据库,通过这样的映射将建立两种元模型的数据库表,即由类元模型映射而成的模式关系表集合(称之为模式库)与对象元模型映射而成的对象关系表集合(称之为对象库)。经过这种方法建立起来的数据库,表数量有限,而且由于元模型是通用的,这意味着表结构是稳定的,可以满足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应用中对信息模型的任意扩展要求与引用完整性约束,避免出现表“膨胀”、和大量连接操作的问题。为了解决上述技术问题,本专利技术提供了一种CIM模型与关系型数据库之间的映射方法,包含以下步骤:建立CIM模型中类的元模型描述,包含类本体的描述、类属性的描述、和类关系的描述,类关系包括类层次关系和类逻辑关系;为类的各描述分别建立元模型,生成类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型,和各元模型的关系;CIM模型中所有类模型均通过上述各元模型实例化得到;建立CM模型中对象的元模型描述,包含对象本体的描述、对象属性值的描述、和对象间关系的描述;为对象的各描述分别建立元模型,生成对象本体的描述类元模型、对象属性值的描述类元模型、对象间关系的描述类元模型,和各元模型的关系;CIM模型中所有对象模型均通过上述各元模型实例化得到;将类与对象的元模型映射至关系型数据库,每个元模型对应一关系表,建立由类的各元模型映射而成的模式关系表集合,与由对象的各元模型映射而成的对象关系表集合;对象关系表集合中,由各对象元模型映射得到一组对象关系表,根据对象模型的关键节点,为每个关键节点分配一组对象关系表;在对类元模型进行实例化,生成具体的类模型时,根据实例化的内容,在模式关系表集合中对应的关系表中新增记录;在对对象元模型进行实例化,生成具体的对象模型时,根据实例化的内容和该对象模型所属的关键节点,在对象关系表集合中该关键节点所对应的一组对象关系表中相应的关系表中新增记录。作为上述技术方案的改进,类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型的关系包含:类本体的描述类元模型自身具有继承关系;类本体的描述类元模型与类关系的描述类元模型之间具有定义域关系,用于表明类关系的描述类所表达的具体关系由哪个类所拥有;类本体的描述类元模型与类属性的描述类元模型之间具有从属关系,用于表明类属性的描述类所表达的具体类属性由哪个类所拥有。作为上述技术方案的改进,对象本体的描述类元模型类为类本体的描述类元模型的实例;对象属性值的描述类元模型为类属性的描述类元模型的实例;对象间关系的描述类元模型为类关系的描述类元模型的实例。作为上述技术方案的改进,建立CM模型中类的元模型描述的步骤中,所建立的描述还包含:基本数据类型的描述;为对象的各描述分别建立元模型的步骤中,还生成基本数据类型的描述类元模型;基本数据类型的描述类元模型与类属性的描述类元模型之间具有关联关系,用于表明类属性的描述类所表达的具体类属性使用哪种数据类型。作为上述技术方案的改进,建立CM模型中类的元模型描述的步骤中,所建立的描述还包含:简单数据类型的描述;为对象的各描述分别建立元模型的步骤中,还生成简单数据类型的描述类元模型;基本数据类型的描述类元模型与简单数据类型的描述类元模型之间具有组合关系O作为上述技术方案的改进,将类与对象的元模型映射至关系型数据库,每个元模型对应一关系表的步骤中,元模型中包含的每个元素对应关系表中的一项。作为上述技术方案的改进,类本体的描述类元模型包含以下元素:类标识、类名称、类版型、和/或类基类;类属性的描述类元模型包含以下元素:属性标识、属性名称、属性变量类型、所属类、和/或注释;类关系的描述类元模型包含以下元素:关系标识、关系名称、重数、是否聚集、关系的定义域、关系的值域、反向角色名、和/或注释。作为上述技术方案的改进,基本数据类型的描述类元模型包含以下元素:基本数据类型标识、类或结构的名称、类的版型、和/或注释。作为上述技术方案的改进,简单数据类型的描述类元模型包含以下元素:变量名、本文档来自技高网
...

【技术保护点】
一种公共信息模型与关系型数据库之间的映射方法,其特征在于,包含以下步骤:建立公共信息模型中类的元模型描述,包含类本体的描述、类属性的描述、和类关系的描述,所述类关系包括类层次关系和类逻辑关系;为所述类的各描述分别建立元模型,生成类本体的描述类元模型、类属性的描述类元模型、类关系的描述类元模型,和各元模型的关系;所述公共信息模型中所有类模型均通过上述各元模型实例化得到;建立公共信息模型中对象的元模型描述,包含对象本体的描述、对象属性值的描述、和对象间关系的描述;为所述对象的各描述分别建立元模型,生成对象本体的描述类元模型、对象属性值的描述类元模型、对象间关系的描述类元模型,和各元模型的关系;所述公共信息模型中所有对象模型均通过上述各元模型实例化得到;将所述类与对象的元模型映射至关系型数据库,每个元模型对应一关系表,建立由类的各元模型映射而成的模式关系表集合,与由对象的各元模型映射而成的对象关系表集合;所述对象关系表集合中,由所述各对象元模型映射得到一组对象关系表,根据对象模型的关键节点,为每个关键节点分配一组所述对象关系表;在对类元模型进行实例化,生成具体的类模型时,根据实例化的内容,在所述模式关系表集合中对应的关系表中新增记录;在对对象元模型进行实例化,生成具体的对象模型时,根据实例化的内 容和该对象模型所属的关键节点,在所述对象关系表集合中该关键节点所对应的一组对象关系表中相应的关系表中新增记录。...

【技术特征摘要】

【专利技术属性】
技术研发人员:俞高宇林吉梁俊
申请(专利权)人:上海可鲁系统软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1