数据映射方法及装置的制造方法_3

文档序号:9616269阅读:来源:国知局
类对应的关系型数据表的外键,该域用于反映源类和目标类之间的关联关系;
[0053]分别获取多个源类和多个目标类映射得到的关系型数据表,得到多个关系型数据表;以及
[0054]将上述多个关系型数据表组合成关系型数据库。
[0055]由于当类与类之间的关联关系为零对一关系或一对一关系或多对一关系时,对象之间的关系还是较为简单,通过在数据型关系表中增加域就可以清楚的表示出类与类之间的关联关系,此时就无需在采用额外再建立联系表的方式,这样可以有效减少关系型数据库中表数量。
[0056]类与类之间的关联关系是类之间的一种概念上的联系,每一个关联都有两个角色,每个角色是指关联的方向,描述了在目标类与源类的关联中目标类的角色。如图4所示,电压控制区类与母线段类是零或一关系或一对一关系,一个母线段类对应零或一个电压控制区类,在进行类与类之间关联关系映射时,通过电压控制区类对应的关系型数据表中添加一个表示外键的域。图5表示的是类与类之间的多对多关系,变电站类与电压级类是一对多关联,通过在电压级类对应的多表中添加一个表示外键的域。
[0057]从以上的描述中,可以看出,本发明实现了如下技术效果:
[0058]根据本发明的实施例,提供了一种数据映射方法,在获取上述公共信息模型中的类以及类与类之间的关系后,将上述类分别映射成单一的关系型数据表,并基于上述类与类之间的相互关系在关系型数据表中通过添加域建立类与类之间的关系,实现公共信息模型中类与类之间的关系向关系型数据库的映射,从而实现公共信息模型数据向关系型数据库的完整映射。
[0059]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0060]根据本发明实施例的另一方面,提供了一种数据映射装置,图6是根据本发明实施例的数据映射装置的示意图,如图6所示,该数据映射装置包括:第一获取模块10、第二获取模块20和映射模块30。
[0061]第一获取模块10,用于获取公共信息模型中的所有类,其中,该公共信息模型为用于描述电力系统对象的模型;
[0062]第二获取模块20,用于获取上述所有类中类与类之间的关系,其中,该关系包括继承关系、关联关系和聚集关系,继承关系是父类和子类的关系,子类继承父类的所有属性,关联关系是上述类与类之间存在概念上的连接,用于描述源类和目标类之间的关系,该关联关系包括零对一关系、一对一关系、多对一关系和多对多关系,聚集关系是整体类与部分类的关系;以及
[0063]映射模块30,用于基于上述类与类之间的关系将公共信息模型数据映射到关系型数据库中,其中,类与类之间的关系通过在关系型数据库中的关系型数据表中添加域建立。
[0064]在第一获取模块10获取上述公共信息模型中的所有类以及第二获取模块20获取上述公共信息模型中类与类之间的关系后,映射模块30将上述类分别映射成单一的关系型数据表,并基于上述类与类之间的相互关系在关系型数据表中通过添加域建立类与类之间的关系,实现公共信息模型中类与类之间的关系向关系型数据库的映射,从而实现公共信息模型数据向关系型数据库的完整映射。
[0065]可选地,为了减少公共信息模型中类所对应的关系型数据表的数量,如果获取到类与类之间的关系是继承关系,如图7所示,映射模块30包括:
[0066]第一映射单元301,用于将子类映射为关系型数据表,其中,在子类对应的关系型数据表中增加域,该域用于记录父类的类名,以此在关系型数据库中建立子类和父类的继承关系;
[0067]第一获取单元302,用于获取多个子类映射得到的关系型数据表,得到多个关系型数据表;以及
[0068]第一组合单元303,用于由多个关系型数据表组合成关系型数据库。
[0069]在进行数据映射时,父类并不参与映射成关系型数据表,这样可以减少关系型数据表的数量,由于子类继承了父类的所有属性,在将子类映射成关系型数据表后,通过添加表示父类对象的域,从而在子类对应的关系型表中建立与父类对象的继承关系。
[0070]可选地,如果获取到类与类之间的关系是聚合关系,如图8所示,映射模块30包括:
[0071]第二映射单元304,用于将整体类映射为关系型数据表,其中,在整体类对应的关系型数据表中增加域,该域用于记录部分类的类名,以此建立整体类和部分类的聚合关系;
[0072]第二获取单元305,用于获取多个上述整体类映射得到的关系型数据表,得到多个关系型数据表;以及
[0073]第二组合单元306,用于将多个关系型数据表组合成关系型数据库。
[0074]同样的,当公共信息模型中的类与类之间的关系为整体类与部分类的关系时,由于部分类的所有属性包含在整体类中,因而在进行数据映射时,不进行部分类向关系型数据表的映射,这样可以减少数据的冗余,减少关系型数据表的数量,但在整体类对应的关系型数据表中添加表示部分类的对象的域,以此在整体类对应的关系型数据表中建立部分类与整体类之间的聚合关系。
[0075]可选地,如果获取到类与类之间的关系是关联关系,并且该关联关系为多对多关系时,如图9所示,映射模块30包括:
[0076]第三映射单元307,用于将关系为关联关系的所有类映射成关系型数据表;
[0077]生成单元308,用于生成联系表,其中,该联系表的主键是上述多对多关系中的类对应的关系型数据表的主键的合并,上述联系表用于建立类与类之间的关联关系;
[0078]第三组合单元309,用于将关系型数据表以及联系表组合成关系型数据库。
[0079]由于类与类之间多对多关联时,对象之间的相互关系较为交错复杂,通过建立联系表可以清楚的反映类与类之间多对多的关联关系,而且可以减少数据的冗余度。
[0080]可选地,为了避免生成大量复杂的关系表,如果获取到类与类之间的关系是关联关系,并且该关联关系为零对一关系或一对一关系或多对一关系时,如图10所示,映射模块30包括:
[0081]第四映射单元310,用于将源类映射为关系型数据表和将目标类映射为关系型数据表,其中,在源类对应的关系型数据表中增加域,该域设置为目标类的外键,以此建立源类和目标类之间的关联关系;
[0082]第三获取单元311,用于获取多个源类和多个目标类映射得到的关系型数据表,得到多个关系型数据表;以及
[0083]第四组合单元312,用于将上述多个关系型数据表组合成关系型数据库。
[0084]由于当类与类之间的关联关系为零对一关系或一对一关系或多对一关系时,对象之间的关系还是较为简单,通过在数据型关系表中增加域就可以清楚的表示出类与类之间的关联关系,此时就无需在采用额外再建立联系表的方式,这样可以有效减少关系型数据库中表数量。
[0085]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1