论文关键词:公共信息模型 能量管理 系统数据库
论文摘要:将IEC61970公共信息模型面向对象的建模思想应用到数据库的构建,根据对公共信息模型特征的分析,针对现实电力系统特征提出了一种基于公共信息模型建立能量管理系统数据库的方法,并描述了其建立过程。
1前言
随着电力系统数字化建设的发展,各电力软件生产厂商都推出了各自基午电力系统的应用,由于各生产厂商都是在无规范无标准的情况下自主设计并开发自己的产品,导致各个系统之间的数据共享程度、集成度产品自我扩展性差。随着需求的变化,功能的扩展,以前开发的产品将面临大量的浪费。为此,国际电工委员会(IEC )负责电力系统控制及其通信的相关标准的第57技术委员会(IEC TC 57 )制定了一系列标准,其中第13工作组(WG13 )负责制定与EMS专业相关的标准系列即IEC61970系列,使EMS的应用软件组件化和开放化。文中将根据电力系统现实世界的特点,结合电网的实际情况,采用UML( Unified Model Language,统一建模语言)的描述方法,提出一种基于IEC61970/CIM标准模型的EMS数据库构建方法。
2 IEC61970/CIM简介
CIM是IEC61970的核心部分,它提供了EMS信息的一个综合逻辑视图;定义了电力工业主要对象的公共类、属性及对象间的关系,用于电力工程、规划、管理、运行和财务等应用的开发和集成。为方便起见,CIM被划分为13个类包,290多个类。包括:域包、核心包、电线包、测量包、拓扑包、负荷包、储运损耗包、保护包、发电包、财政包、预测包和能量安排包、SCAD A包等。各个EMS应用内部可:以有各自的信Eli、描述,但只要在应用程序(或构件)接口语义级上基于CIM,不同厂商开发的应用程序或不同系统的应用就可以以同样的方式访问公共数据,实现应用间的相互操作,提高应用程序之间的兼容性及系统本身的开放性。
CIM模型定义了三种关系:泛化( Generalization )、简单关联(Association)和聚合( Aggregation )。用UML表示的类和关系见图l。
3问题的核心
CIM是用面向对象的方法定义的一套电网模型,从调度中心EMS系统的角度来描述电力系统的设备及其属性。CIM有许多表示方法,如UML, XML和数据库定义等,EMS系统须直接或间接用数据库定义来表达CIM。面向对象技术的优点是能更直观、更准确地表现现实世界;更符合软件开发的规律,缩短开发时间和减少开发费用;大大提高了软件的可重用性、可维护性和可扩充性。然而,目前面向对象的数据库发展还不成熟,而使用最广泛,技术最成熟的数据库管理系统大都是关系型的。因此,如何将CIM模型与关系型数据库更好地结合起来,是实现电力软件标准化工作问题的首要。
4 CIM分析
4. 1 CIM模型的特征分析
1) CIM采用面向对象技术,UML描述,定义了电力工业标准对象模型,它提供了描述电力对象及其关系的标准。
2)对象间的关系包括三种:泛化,简单关联,聚合。
3)对象之间的关系较复杂,层次较深。
4)聚合关系与简单关联的区别是增加了“整体与部分”的语义。
5)简单关联关系分为三种:多对多,一对多,一对一。
4. 2现实电力系统的特征分析
1)结构上是分层分级的拓扑结构,层次关系较为复杂。
2)设备种类虽多,但数据量较大的设备元件(比如线路,电压互感器,电流互感器,保护装置等)种类并不多,而大部分诸如“容器”(如地调,变电站等)或其它电气设备(如机组、母线等)的数据量却不大。 5解决的办法
CIM模型的关系较为复杂,如果完全表达成关系数据库的表将会不可避免的生成很多关系表来表达复杂的CIM关系,使得数据库表数量增大。如果只是构建CIM的对象,而不管关系的映射,数据库便不能完整的遵循CIM模型,也就失去了标准的意义。根据工程经验和实验研究,影响数据库性能的一个很重要的因素是数据库中的“大表”(即记录最多表)。这些大表的记录往往是与现实相对应实体的实例;而关系表的记录是各个对象之间的关系实体,所以数据量是比较小的。数据库的管理很大程度上是对数据库的大表的管理。因此,构建方法基于这样一条原则:关系的映射尽可能采用设立外键的方法;在不影响数据库性能的情况下,可以考虑建立一些必要的关系表,确保构建的关系型数据库完全表达CIM模型的各种关系,以及随IEC61970标准升级的可扩展性。
5.1表示方法
采用Rational Rose工具和UML来表达构建过程。Rational Rose用同样的符号来表达类和数据库的表。数据库名与类名相福域和属性相对。由于CIM模型只规定了对象的属性,而没有规定方法;数据库的表也不包含方法,所以,隐去了类符号表达方法的部分。对于没有必要显示属性的类,为了方便,也隐去了属性,单用一个矩形来表示。
5. 2泛化
在构建关系之前,首先将CIM模型中的所有类.分别按表名对应类名,域名对应本身属性与继承属性相对应,构建成数据库表。关系通过外键和专门的关系表来实现。
泛化关系是用来表达一个相对通用的类和一个相对专门的类之间的关系。相对专门的类可以继承相对通用的类的属性,包含更多的信息。
在关系数据库里要表达这种继承关系,可在父类的属性中添加一个属性来表明子类的类型。
5. 3聚合
在关系库里,反映聚合关系的方法是在“整体”类对应的表里添加“部分”类作为新的域。
5. 4简单关联
1)零或一对一关联构建成数据库的表,只需将外键隐藏在零或一对一的“零或一”表中。一对一关联,将外键隐藏在一对一的任意一张表中。
2)一对多构建方法是将外键隐藏在多表中,在相应的“多表”里添加域EquipmentContainerID做为外键即可实现。
3)大多数情况下采用了外键的方法来实现构建,是为了避免生成过多的关系表,影响查询效率。但是,对于简单关联中的多对多关联,却采用了建立关系表的方法实现构建,原因是建立关系表能更加清晰的反映对象之间的关系,而且更重要的是数据的冗余度将会大大减小。
多对多的构建方法是用一个单独的表来实现多对多关联。关联的主键是每个类的主键的合并。
6结论
软件开发不仅包括数据库设计,同时还包括应用程序的设计。要真正的实现数据共享,应用程序的设计可以和数据库设计互为补充互为调节。另外,数据库设计和应用程序的设计之间的相互协调,从CCAPI工程的目的出发,IEC61970是一个万全之策,既考虑到避免目前应用系统的浪费,提供XML数据导人导出方案;又为将来新建的系统提供了CIM框架,为电力软件工程提供了共同标准,电力行业信息孤岛问题将得以有效解决。