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

文档序号:9616269阅读:490来源:国知局
数据映射方法及装置的制造方法
【技术领域】
[0001]本发明涉及电力领域,具体而言,涉及一种数据映射方法及装置。
【背景技术】
[0002]公共信息模型是IEC61970的核心部分,提供了一个公共的电力系统模型,使得可以在任何领域作集成。该公共信息模型包括公共的类、它们的属性和它们之间的关系。公共信息模型被划分为13个类包,290多个类,包括:域包、核心包、负荷包、发电包、拓扑包、电线包、测量包、储运损耗包、保护包、财政包、SCADA包、预测包和能量安排包等。
[0003]目前我们通用的都是关系型数据库,而公共信息模型采用了面向对象技术来抽象电力系统之间的复杂关系。通过提供一种对象类和属性及它们之间的关系来表示电力资源的标准。面向对象技术的优点是能更直观、更准确地表现现实世界,更符合软件开发的规律,缩短开发时间和减少开发费用,大大提高了软件的可重用性、可维护性和可扩充性。然而,目前面向对象的数据库发展还不成熟,使用最广泛、技术最成熟的数据库管理系统大都是关系型的。因此,如何将公共信息模型与关系型数据库更好地结合起来,是实现电力软件标准化工作的首要问题。
[0004]但目前还没有很好的方式能够在充分考虑到电力系统实际情况的前提下,完美的解决公共信息模型面向对象模型与关系型数据库之间的结合的问题。公共信息模型各个类之间的关系非常复杂,现有的技术大多是将公共信息模型的各个类单独生成关系表,用大量的关系表来描述公共信息模型的关系;或者是不考虑各个类之间的关系,只映射公共信息模型的对象。但是采用将公共信息模型的各个类单独生成关系表的方式将不可避免的会生成数量庞大的关系复杂的表,可扩展性非常差,而且使用和维护都非常不方便,大大影响到生产的效率;采用不考虑各个类之间的关系的方式,很明显可以看出,其数据库与公共信息模型并不完全对应,也就无法充分发挥出使用公共信息模型标准的优势。
[0005]针对相关技术中公共信息模型数据向关系型数据库映射不完整的问题,目前尚未提出有效的解决方案。

【发明内容】

[0006]本发明的主要目的在于提供一种数据映射方法及装置,以解决公共信息模型数据向关系型数据库映射不完整的问题。
[0007]为了实现上述目的,根据本发明的一个方面,提供了一种数据映射方法。
[0008]根据本发明的数据映射方法包括:获取公共信息模型中的所有类,其中,所述公共信息模型为用于描述电力系统对象的模型;获取所述所有类中类与类之间的关系,其中,所述关系包括继承关系、关联关系和聚集关系,所述继承关系是父类和子类的关系,所述子类继承所述父类的所有属性,所述关联关系是所述类与类之间存在概念上的连接,用于描述源类和目标类之间的关系,所述关联关系包括零对一关系、一对一关系、多对一关系和多对多关系,所述聚集关系是整体类与部分类的关系;以及基于所述类与类之间的关系将所述公共信息模型数据映射到关系型数据库中,其中,所述类与类之间的关系通过在所述关系型数据库中的关系型数据表中添加域建立。
[0009]进一步地,如果获取到所述类与类之间的关系是所述继承关系,基于所述类与类之间的关系将所述公共信息模型数据映射到关系型数据库中包括:将所述子类映射为关系型数据表,其中,在所述子类对应的所述关系型数据表中增加域,所述域用于记录所述父类的类名,以此在所述关系型数据库中建立所述子类和所述父类的所述继承关系;获取多个所述子类映射得到的关系型数据表,得到多个关系型数据表;以及将所述多个关系型数据表组合成所述关系型数据库。
[0010]进一步地,如果获取到所述类与类之间的关系是所述聚集关系,基于所述类与类之间的关系将所述公共信息模型数据映射到关系型数据库中包括:将所述整体类映射为关系型数据表,其中,在所述整体类对应的所述关系型数据表中增加域,所述域用于记录所述部分类的类名,以此建立所述整体类和所述部分类的所述聚合关系;获取多个所述整体类映射得到的关系型数据表,得到多个关系型数据表;以及将所述多个关系型数据表组合成所述关系型数据库。
[0011]进一步地,如果获取到所述类与类之间的关系是所述关联关系,并且所述关联关系为所述多对多关系时,基于所述类与类之间的关系将所述公共信息模型数据映射到关系型数据库中包括:将所述关系为所述关联关系的所有类映射成关系型数据表;生成联系表,其中,所述联系表的主键是所述多对多关系中的类对应的所述关系型数据表的主键的合并,所述联系表用于建立所述类与类之间的所述关联关系;以及将所述关系型数据表以及所述联系表组合成所述关系型数据库。
[0012]进一步地,如果获取到所述类与类之间的关系是所述关联关系,并且所述关联关系为所述零对一关系或所述一对一关系或所述多对一关系时,基于所述类与类之间的关系将所述公共信息模型数据映射到关系型数据库中包括:将所述源类映射为关系型数据表和将所述目标类映射为关系型数据表,其中,在所述源类对应的所述关系型数据表中增加域,所述域设置为所述目标类的对应的所述关系型数据表的外键,以此建立所述源类和所述目标类之间的所述关联关系;获取多个所述源类和多个所述目标类映射得到的关系型数据表,得到多个关系型数据表;以及将所述多个关系型数据表组合成所述关系型数据库。
[0013]为了实现上述目的,根据本发明的另一方面,提供了一种数据映射装置。
[0014]根据本发明的数据映射装置包括:第一获取模块,用于获取公共信息模型中的所有类,其中,所述公共信息模型为用于描述电力系统对象的模型;第二获取模块,用于获取所述所有类中类与类之间的关系,其中,所述关系包括继承关系、关联关系和聚集关系,所述继承关系是父类和子类的关系,所述子类继承所述父类的所有属性,所述关联关系是所述类与类之间存在概念上的连接,用于描述源类和目标类之间的关系,所述关联关系包括零对一关系、一对一关系、多对一关系和多对多关系,所述聚集关系是整体类与部分类的关系;以及映射模块,用于基于所述类与类之间的关系将所述公共信息模型数据映射到关系型数据库中,其中,所述类与类之间的关系通过在所述关系型数据库中的关系型数据表中添加域建立。
[0015]进一步地,如果获取到所述类与类之间的关系是所述继承关系,所述映射模块包括:第一映射单元,用于将所述子类映射为关系型数据表,其中,在所述子类对应的所述关系型数据表中增加域,所述域用于记录所述父类的类名,以此在所述关系型数据库中建立所述子类和所述父类的所述继承关系;第一获取单元,用于获取多个所述子类映射得到的关系型数据表,得到多个关系型数据表;以及第一组合单元,用于由所述多个关系型数据表组合成所述关系型数据库。
[0016]进一步地,如果获取到所述类与类之间的关系是所述聚合关系,所述映射模块包括:第二映射单元,用于将所述整体类映射为关系型数据表,其中,在所述整体类对应的所述关系型数据表中增加域,所述域用于记录所述部分类的类名,以此建立所述整体类和所述部分类的所述聚合关系;第二获取单元,用于获取多个所述整体类映射得到的关系型数据表,得到多个关系型数据表;以及第二组合单元,用于将所述多个关系型数据表组合成所述关系型数据库。
[0017]进一步地,如果获取到所述类与类之间的关系是所述关联关系,并且所述关联关系为所述多对多关系时,所述映射模块包括:第三映射单元,用于将所述关系为所述关联关系的所有类映射成关系型数据表;生成单元,用于生成联系表,其中,所述联系表的主键是所述多对多关系中的类对应的所述
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1