发明名称 基于关系型数据库的电网CIM模型数据实现存储的方法
摘要 本发明一种基于关系型数据库的电网CIM模型数据实现存储的方法,通过(1)建立类与属性映射;(2)建立模型的类间关系映射;(3)建立数据维护方法;(4)建立拓扑维护方法;将面向对象的CIM模型数据映射为关系型数据库模式进行存储,与目前大多数电力系统都使用的关系型数据库匹配,在保证CIM模型数据完整性的前提下实现高效存储,不仅可存储所有电网模型数据,包括复杂的模型对象,且数据存储和访问的效率高,也很好的保证了模型数据存储的标准性和可维护性,易于扩展,从而提高电网资源数据的维护效率。
申请公布号 CN105956054A 申请公布日期 2016.09.21
申请号 CN201610268193.8 申请日期 2016.04.27
申请人 国家电网公司;国网福建省电力有限公司;国网福建省电力有限公司厦门供电公司;厦门亿力吉奥信息科技有限公司;国网信息通信产业集团有限公司;国网信通亿力科技有限责任公司 发明人 苏雪源;刘彬;谢萍萍;张继红;陈日辉;彭伟;陈荣;黄锋;郭永平;张翔;王震;梁添增
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 厦门市新华专利商标代理有限公司 35203 代理人 朱凌
主权项 一种基于关系型数据库的电网CIM模型数据实现存储的方法,其特征在于包括如下步骤:步骤1、建立类与属性映射在CIM模型数据的类中,IdentifiedObject类是几乎所有模型类型的基类,该类为派生类对象建立命名体系,其mRID属性是对象的标识符,要求全局唯一,name属性表示对象的名字,不要求唯一;在类的继承体系中,派生类除了可以定义自己的属性和关联之外,还继承了基类的属性和关联,因此继承体系中的叶子节点类将会拥有继承链上所有类的属性和关联,除了将叶子节点类映射为关系型数据库中的表之外,还要将其他抽象类映射为关系型数据库中的表;将IdentifiedObject类映射为关系型数据库中的表,表名与类名相同,将类的属性映射为同名表列,以mRID列为表的主键,除根类以外,在映射派生类时,将派生类直接转变为关系表,将非继承来的属性即本地属性转变为表列,对于继承来的属性,只保留mRID列,并将该列作为当前关系表的主键,且该主键同时也是外键,引用其父类对应表的mRID列,并为该引用设置级联删除与更新约束;步骤2、建立模型的类间关系映射CIM模型数据主要包含继承、关联和聚合三种类间关系:(1)继承关系的映射继承关系是指一个普遍的类与一个具体的类之间的关系,映射策略是为每一个具体的非虚子类建立一张表,父类只作为公共属性的载体不参与映射,每个具体的非虚子类都继承父类的所有属性,包括父类的ID; (2)关联关系的映射关联关系是类与类之间的一种静态关系,根据关联关系的多重性,将关联关系分为3种:零或一对一、一对多和多对多,关联关系的映射通过设置表的主外键来完成;一张表可以有一个或多个外键,但每个外键所对应的主键只能有一个;关联关系中一对零或一,以及一对多的映射是将多重性为一的表的主键字段作为其他表的外键字段来实现,若2个表是一对一关联,则取其中任一表的主键作为另一个表的外键来存储;对于类间多对多的关联关系,则需另外建立一张关联表,该关联表有自己的OID,表中其他字段是具体关联关系的两个或多个表的OID;(3)聚合关系的映射聚合关系是关联关系的一种特殊情况,它表示了类之间整体与部分的关系,与继承不同的是,部分类不从整体类那里继承属性;聚合关系的映射处理是在整体类表中增加相应部分类的字段但不包含部分类的OID,同时在部分类表中增加整体类的OID,这样就在关系表中实现了整体与部分之间的关系;步骤3、建立数据维护方法一个电网资源的数据可能分布在多个表中,为降低CIM模型数据维护的复杂性,采用面向对象的技术,为每一个模型类添加数据维护的方法,具体为:(1)在根类IdentifiedObject中添加ConnectionChannel属性,该ConnectionChannel是到关系型数据库的连接通道,所有数据维护命令均从该连接通道发送到数据引擎,由数据引擎完成数据的修改;(2)根据实际需要为类添加方法负责生成数据维护命令,每一个类的维护命令不光负责本类对应表的数据维护,其基类也会相应的进行维护,当调用Create方法创建一个对象时,会先调用基类对象的Create方法,当调用Update方法更新一个对象时,会相继按继承关系调用各基类的更新方法;当调用Delete方法删除一个对象时,会调用基类的删除方法;上述Create方法用于生成记录添加命令,Delete方法用于生成记录删除命令,Update方法用于生成记录修改命令,GetProperties用于生成属性查询命令;(3)方法的优化:为提高方法调用链的执行效率,为类对象的属性增加版本控制,调用方法时先检测本地属性是否修改,当未做修改时,则直接调用路由到基类;步骤4、建立拓扑维护方法电网CIM模型数据的拓扑关系包含两个方面:一是类对象之间的聚合/关联关系,二是网络元件之间的电气连接关系;聚合和简单关联被映射成表间的引用关系,为维护表间关系,将类间关系按照互相承担的角色分别转换为对方的属性,即关联属性,根据关联重数,即关联关系中存在的继承关系,则关联属性是一个对象或对象的集合,也可能为空值;作为容器的对象在执行自身的数据维护方法时,根据关联对象的状态调用所包容的对象的相应维护方法,该关联对象的状态分为新建、删除、更新,从而根据一个入口对象形成数据对象的维护链,为简化对象各方法的编程逻辑,只由作为包容器的对象调用所包容的对象的维护方法,而反过来是不允许的,以保证对象之间方法的调用链是单向的,避免了循环调用;网络元件之间的电气连接关系由导电设备类、端点类和连接点类的关联进行维护;当导电设备安装或拆除时,会导致网络元件的电气连接关系发生变化,为ConductingEquipment类添加Mount方法执行安装过程的相关操作,通过对Mount方法的重载来执行不同的安装操作,每个Mount方法在执行过程中,通过对参数对象的分析,决定是否需要新建连接点,同时生成维护电气连接的数据维护命令,拆除是安装的逆过程,即为ConductingEquipment类添加Unmount方法来执行拆除过程,当执行Unmount方法时,将当前导电设备的端点与连接点的关联断开,并分析与端点相连的连接点是否成为孤点,即判断与此连接点关联的端点数是否为1或0,如为孤点,则生成删除命令,删除连接点。
地址 100000 北京市西城区西长安街86号