CN103279901A - 一种将cim模型转换为逻辑模型的方法及装置 - Google Patents
一种将cim模型转换为逻辑模型的方法及装置 Download PDFInfo
- Publication number
- CN103279901A CN103279901A CN 201310204561 CN201310204561A CN103279901A CN 103279901 A CN103279901 A CN 103279901A CN 201310204561 CN201310204561 CN 201310204561 CN 201310204561 A CN201310204561 A CN 201310204561A CN 103279901 A CN103279901 A CN 103279901A
- Authority
- CN
- China
- Prior art keywords
- class
- converted
- attribute
- relation schema
- relation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000006243 chemical reaction Methods 0.000 claims description 121
- 239000002131 composite material Substances 0.000 claims description 26
- 235000012364 Peperomia pellucida Nutrition 0.000 claims description 6
- 240000007711 Peperomia pellucida Species 0.000 claims description 6
- 238000006116 polymerization reaction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 20
- 150000001875 compounds Chemical class 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000013499 data model Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种将CIM模型转换为逻辑模型的方法及装置,该方法包括:将CIM模型的基类转换为基础关系模式;选取CIM模型中的一个待转换类,并将待转换类转换为关系模式;判断待转换类是否存在继承关系,当待转换类存在继承关系时,针对不同条件分别对待转换类的继承关系进行转换。另外,该方法还可以实现对包含关联关系、包含自定义数据类型等情况的CIM模型向逻辑模型的转换,有效解决了现有技术中CIM模型不能全面、有效地转换为逻辑模型的技术问题,从而能够满足电力业务中CIM模型向逻辑模型转换的需求。
Description
技术领域
本发明涉及电力技术领域,具体涉及一种将CIM模型转换为逻辑模型的方法及装置。
背景技术
不同的分布式信息系统信息模型无标准、访问接口不透明是制约电力信息化不断完善的主要因素。因此,建立一套规范化的CIM模型(CommonInformation Model,公共信息模型)可以实现大批不同时期开发、采用不同规格软硬件的应用系统的集成,提升不同系统间的信息交换能力,从而降低数据的重复性输入和冗余,提升数据一致性和可维护性,以达到减少向系统增加新应用时所需成本,保护现有应用投资的目的。CIM模型是一个面向对象的抽象模型,用对象类和属性及它们之间的关系来描述电力系统领域所有主要的实体对象,特别是与电力运行有关的对象。
根据信息层次的不同,可以将数据模型划分为概念模型、逻辑模型和物理模型三个层次。概念模型是面向用户、面向现实世界的数据模型,它用来描述真实世界问题域中事物的概念化结构,是现实世界到信息世界的第一层抽象。逻辑模型是着重用逻辑的过程或主要业务来描述对象系统的数据模型,深入考察信息的内容及其相互关系,对系统的物理实施有着重要的指导作用。CIM模型是一种概念模型,在实际应用中需要将CIM模型转换为逻辑模型。
现有技术中,目前大多数对概念模型到逻辑模型的转换都偏重于解决类、属性和普通关系的转换问题。但是,由于电力业务的需要,CIM模型中对对象类、属性和关系的描述包含特殊数据类型及大量复杂继承和复杂关联关系,现有技术不能满足电力业务CIM模型中各种特殊的复杂继承关系和复杂关联关系的转化需求。因此,目前还没有一套符合电力业务需求,能将CIM模型转换为逻辑模型的全面、有效的实现方法。
发明内容
有鉴于此,本发明的主要目的是提供一种将CIM模型转换为逻辑模型的方法及装置,以解决CIM模型中包含继承和关联关系向逻辑模型的转换,从而实现CIM模型向逻辑模型全面、有效的转换。
为解决上述问题,本发明提供的技术方案如下:
一种将CIM模型转换为逻辑模型的方法,所述方法包括:
将CIM模型的基类转换为基础关系模式;
选取CIM模型中的一个待转换类,并将所述待转换类转换为关系模式;
判断所述待转换类是否存在继承关系,如果是,判断所述待转换类的根类是否为所述CIM模型的基类;
判断所述待转换类的根类是否为所述CIM模型的基类,如果是,判断所述待转换类的父类是否为所述CIM模型的基类,如果否,判断所述待转换类的父类是否为空类;
判断所述待转换类的父类是否为所述CIM模型的基类,如果是,将所述基础关系模式中的属性添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否为空类;
判断所述待转换类的父类是否为空类,如果是,利用递归算法查找到第一非空父类,将所述第一非空父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否有且只有一个子类;
判断所述待转换类的父类是否有且只有一个子类,如果是,将所述待转换类的父类所转换的关系模式的属性添加到所述待转换类所转换的关系模式中,如果否,将所述待转换类的父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中。
相应的,所述将CIM模型的基类转换为基础关系模式,包括:
将CIM模型中的基类的名称作为所转换的关系模式的名称,将所述基类的主码转换为所转换的关系模式的主码,将所述基类的属性转换为所转换的关系模式的属性;
所述将所述待转换类转换为关系模式,包括:
将待转换类的名称作为所转换的关系模式的名称,将所述待转换类的主码转换为所转换的关系模式的主码,将所述待转换类的属性转换为所转换的关系模式的属性。
相应的,当所述基类的属性引用的数据类型是基本数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类的属性直接作为所转换的关系模式的属性;
当所述待转换类的属性引用的数据类型是基本数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类的属性直接作为所转换的关系模式的属性。
相应的,当所述基类的属性引用的数据类型是枚举数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性;
当所述待转换类的属性引用的数据类型是枚举数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性。
相应的,当所述基类的属性引用的数据类型是CIM数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类的属性引用的CIM数据类型的属性添加到所转换的关系模式中;
当所述待转换类的属性引用的数据类型是CIM数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类的属性引用的CIM数据类型的属性添加到所转换的关系模式中。
相应的,当所述基类的属性引用的数据类型是复合数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类的属性引用的复合数据类型的属性添加到所转换的关系模式中;
当所述待转换类的属性引用的数据类型是复合数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类的属性引用的复合数据类型的属性添加到所转换的关系模式中。
相应的,所述方法还包括:
选取CIM模型中的一个待转换类;
判断所述待转换类是否存在关联关系;
当所述待转换类存在关联关系时,判断所述待转换类的关联关系类型;所述关联关系类型包括一对一关联、一对多关联、多对多关联以及自关联;所述一对一的关联包括0..1:0..1关联,0..1:1关联以及1:1关联;所述一对多关联包括1:1..*关联、1:0..*关联、0..1:1..*关联以及0..1:0..*关联;
当所述关联关系类型为所述0..1:0..1关联时,将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
当所述关联关系类型为所述0..1:1关联时,若所述待转换类的关联端为1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
当所述关联关系类型为所述1:1关联时,将所述待转换类所转换的关系模式与所述待转换类的关联类所转换的关系模式合并,任意一个关联端两侧的类所转换的关系模式的主码作为合并后的关系模式的主码;
当所述关联关系类型为所述一对多关联时,若所述待转换类的关联端为1或0..1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
当所述关联关系类型为所述多对多关联时,建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的属性;
当所述关联关系类型为所述自关联时,若关联端中存在0..1,则将所述待转换类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中作为外码;若所述自关联存在1..*:0..*关联或0..*:0..*关联,则建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的外码。
相应的,所述方法还包括:
选取CIM模型中的一个待转换类;
判断所述待转换类是否存在聚合关系;
当所述待转换类存在聚合关系时,若所述待转换类为代表整体的类,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的聚合代表部分的类所转换的关系模式中作为外码。
一种将CIM模型转换为逻辑模型的装置,所述装置包括:
第一转换单元,用于将CIM模型的基类转换为基础关系模式;
第一选取单元,用于选取CIM模型中的一个待转换类;
第二转换单元,用于将所述待转换类转换为关系模式;
第一判断单元,用于判断所述待转换类是否存在继承关系,如果是,判断所述待转换类的根类是否为所述CIM模型的基类;
第二判断单元,用于判断所述待转换类的根类是否为所述CIM模型的基类,如果是,判断所述待转换类的父类是否为所述CIM模型的基类,如果否,判断所述待转换类的父类是否为空类;
第三判断单元,用于判断所述待转换类的父类是否为所述CIM模型的基类,如果是,将所述基础关系模式中的属性添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否为空类;
第四判断单元,用于判断所述待转换类的父类是否为空类,如果是,利用递归算法查找到第一非空父类,将所述第一非空父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否有且只有一个子类;
第五判断单元,用于判断所述待转换类的父类是否有且只有一个子类,如果是,将所述待转换类的父类所转换的关系模式的属性添加到所述待转换类所转换的关系模式中,如果否,将所述待转换类的父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中。
相应的,第一转换单元包括:
第一转换子单元,用于将CIM模型中的基类的名称作为所转换的关系模式的名称;
第二转换子单元,用于将所述基类的主码转换为所转换的关系模式的主码;
第三转换子单元,用于将所述基类的属性转换为所转换的关系模式的属性;
第二转换单元包括:
第四转换子单元,用于将待转换类的名称作为所转换的关系模式的名称;
第五转换子单元,用于将所述待转换类的主码转换为所转换的关系模式的主码;
第六转换子单元,用于将所述待转换类的属性转换为所转换的关系模式的属性。
相应的,当所述基类的属性引用的数据类型是基本数据类型时,所述第三转换子单元,具体用于将所述基类的属性直接作为所转换的关系模式的属性;
所述第六转换子单元,具体用于将所述待转换类的属性直接作为所转换的关系模式的属性。
相应的,当所述基类的属性引用的数据类型是枚举数据类型时,所述第三转换子单元,具体用于将所述基类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性;
所述第六转换子单元,具体用于将所述待转换类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性。
相应的,当所述基类的属性引用的数据类型是CIM数据类型时,所述第三转换子单元,具体用于将所述基类的属性引用的CIM数据类型的属性添加到所转换的关系模式中;
所述第六转换子单元,具体用于将所述待转换类的属性引用的CIM数据类型的属性添加到所转换的关系模式中。
相应的,当所述基类的属性引用的数据类型是复合数据类型时,所述第三转换子单元,具体用于将所述基类的属性引用的复合数据类型的属性添加到所转换的关系模式中;
所述第六转换子单元,具体用于将所述待转换类的属性引用的复合数据类型的属性添加到所转换的关系模式中。
相应的,所述装置还包括:
第六判断单元,用于判断所述待转换类是否存在关联关系;
第七判断单元,用于当所述待转换类存在关联关系时,判断所述待转换类的关联关系类型;所述关联关系类型包括一对一关联、一对多关联、多对多关联以及自关联;所述一对一的关联包括0..1:0..1关联,0..1:1关联以及1:1关联;所述一对多关联包括1:1..*关联、1:0..*关联、0..1:1..*关联以及0..1:0..*关联;
第三转换单元,用于当所述关联关系类型为所述0..1:0..1关联时,将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
第四转换单元,用于当所述关联关系类型为所述0..1:1关联时,若所述待转换类的关联端为1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
第五转换单元,用于当所述关联关系类型为所述1:1关联时,将所述待转换类所转换的关系模式与所述待转换类的关联类所转换的关系模式合并,任意一个关联端两侧的类所转换的关系模式的主码作为合并后的关系模式的主码;
第六转换单元,用于当所述关联关系类型为所述一对多关联时,若所述待转换类的关联端为1或0..1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
第七转换单元,用于当所述关联关系类型为所述多对多关联时,建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的属性;
第八转换单元,用于当所述关联关系类型为所述自关联时,若关联端中存在0..1,则将所述待转换类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中作为外码;若所述自关联存在1..*:0..*关联或0..*:0..*关联,则建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的外码。
相应的,所述装置还包括:
第八判断单元,用于判断所述待转换类是否存在聚合关系;
第九转换单元,用于当所述待转换类存在聚合关系时,若所述待转换类为代表整体的类,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的聚合代表部分的类所转换的关系模式中作为外码。
由此可见,本发明具有如下有益效果:
本发明实施例可以实现对包含复杂继承关系、关联关系、包含自定义数据类型的CIM模型向逻辑模型的转换,有效解决了现有技术中CIM模型不能全面、有效地转换为逻辑模型的技术问题,从而能够满足电力业务中CIM模型向逻辑模型转换的需求。同时利用本发明实施例给出的CIM模型转换为逻辑模型的方法,可以制定CIM模型到逻辑模型自动化转换工具,支持自定义数据类型、复杂继承和复杂关联的自动转换,以实现CIM模型向逻辑模型的有效自动转换。
附图说明
图1为本发明CIM模型转换为逻辑模型方法实施例一的流程图;
图2为本发明实施例中将CIM模型的基类转换为基础关系模式的实例图;
图3为本发明实施例中继承关系转换的实例图;
图4为本发明CIM模型转换为逻辑模型方法实施例二的流程图;
图5为本发明CIM模型转换为逻辑模型方法实施例三的流程图;
图6为本发明CIM模型转换为逻辑模型方法实施例四的流程图;
图7为本发明CIM模型转换为逻辑模型装置实施例一的示意图;
图8为本发明CIM模型转换为逻辑模型装置实施例二的示意图;
图9为本发明CIM模型转换为逻辑模型装置实施例三的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明将CIM模型转换为逻辑模型的方法及装置,可以实现将CIM模型全面、有效地转换为逻辑模型。将CIM模型转换为逻辑模型的逻辑,可以包括将CIM中的类、属性、继承关系、关联关系、自定义数据类型转换为逻辑模型的逻辑。具体的,可以为将描绘CIM的UML格式转换为符合IEC61970-501标准的XML RDF格式,读取RDF格式数据以实现CIM向逻辑模型的转化。
其中,UML(Unified Modeling Language,统一建模语言)是一种面向对象的建模语言,它运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模,可以用于描绘CIM。XML(Extensible MarkupLanguage,可扩展标记语言)是用于标记电子文件使其具有结构的标记语言。RDF(Resource Description Framework,资源描述框架)是一种用于描述Web资源的标记语言,也是处理元数据的XML应用。
由于现有技术中并没有包含特殊数据类型及大量复杂继承和复杂关联关系的CIM转换方法,因此,本发明实施例重点关注包含特殊数据类型(例如包含CIM类中属性引用枚举数据类型、复合数据类型或CIM数据类型等)及大量复杂继承和复杂关联关系的CIM向逻辑模型的转换。本发明实施例中的逻辑模型主要指关系数据模型。CIM向逻辑模型转换需要给出两个模型元素之间的转换关系,及从CIM中的每个元素到关系数据模型中的每个元素之间的关系。应用这些转换关系能够将CIM中的每个元素转换为关系数据模型中的相应元素。
参见图1所示,本发明实施例将CIM模型转换为逻辑模型的方法包括以下步骤:
步骤101:将CIM模型的基类转换为基础关系模式。
在对CIM模型中的继承关系进行转换时,需要先将CIM模型的基类转换为关系模式。目前CIM层次还没有定义官方的共同超类,但是大部分CIM类继承IdentifiedObject类,所以IdentifiedObject类被认为是CIM层次结构的基类。IdentifiedObject可以被用于任何一个需要全局唯一标识符的类。CIM中的大多数类都需要继承IdentifiedObject,所以CIM中类的码是通过IdentifideObject继承过来的。
通常情况下,一个类转换为一个关系模式时,类的名称就是关系模式的名称,类的属性就是关系模式的属性,类的码就是关系模式的码。那么,将CIM模型的基类转换为基础关系模式可以为:将CIM模型中的基类的名称作为所转换的关系模式的名称,将基类的主码转换为所转换的关系模式的主码,将基类的属性转换为所转换的关系模式的属性。
以一个具体的CIM为例,该模型中IdentifiedObject转换为相应的关系模式,参见图2所示,IdentifiedObject类在转换过程中将类名IdentifiedObject转化为所对应关系模式的名称IdentifiedObject,将码mRID转化为所对应关系模式中的主码,将其他属性aliasName、name转化为所对应关系模式的属性。
步骤102:选取CIM模型中的一个待转换类,并将待转换类转换为关系模式;
选取CIM模型中的一个待转换类,可以从CIM模型中自上向下选取,同时由于空类不需要转换为关系模式,因此在选取待转换类时可以先判断其是否为空类,若为空类继续向下进行选取。
类似的,将待转换类转换为关系模式可以为:将待转换类的名称作为所转换的关系模式的名称,将待转换类的主码转换为所转换的关系模式的主码,将待转换类的属性转换为所转换的关系模式的属性。
步骤103:判断待转换类是否存在继承关系,如果是,进入步骤104,如果否,则说明该类没有继承关系,不需要进行继承关系的转换,可以直接进入后续转换过程。
步骤104:判断待转换类的根类是否为CIM模型的基类,如果是,进入步骤105,如果否,进入步骤107。
判断待转换类的根类是否为CIM模型的基类即CIM模型向上追溯,是否能够追溯到继承了基类IdentifiedObject类。
步骤105:判断待转换类的父类是否为CIM模型的基类,如果是,进入步骤106,如果否,进入步骤107。
步骤106:将基础关系模式中的属性添加到待转换类所转换的关系模式中。
即继承基类IdentifiedObject时,需要IdentifiedObject所转换的关系模式的所有属性添加到该类所转换的关系模式中;又由于CIM层次的特殊性,一个类若根类是IdentifiedObject,即使其父类并不是IdentifiedObject,但是仍需要将IdentifiedObject所转换的关系模式的所有属性添加到该类所转换的关系模式中,即IdentifiedObject所转换的关系模式中的主码作为其子类转换的关系模式的主码。需要注意的是,如果基类已经将主码添加到所转换的关系模式中,则待转换类的主码不需要转换为所转换的关系模式的主码。
步骤107:判断待转换类的父类是否为空类,如果是,进入步骤108,如果否,进入步骤109。
步骤108:利用递归算法查找到第一非空父类,将第一非空父类所转换的关系模式的主码添加到待转换类所转换的关系模式中。
如果父类是空类,且父类继承于其他非空类,第一非空父类即父类继承的其他非空类,那么子类所对应的关系模式包括父类所继承的类所转换的关系模式的主码。
步骤109:判断待转换类的父类是否有且只有一个子类,如果是,进入步骤110,如果否,进入步骤111。
步骤110:将待转换类的父类所转换的关系模式的属性添加到待转换类所转换的关系模式中。
在CIM中一个类不允许出现多继承现象,只允许直接继承一个父类。如果父类至多并且只有一个子类,那么子类所转换的关系模式包括父类的所有属性。
步骤111:将待转换类的父类所转换的关系模式的主码添加到待转换类所转换的关系模式中。
如果父类有多个子类,并且父类是一个非空类,那么子类所对应的关系模式包括父类所转换的关系模式的主码。
当一个待转换类的继承关系转换完成,可以返回步骤102继续对下一个待转换类的继承关系进行转换,直到全部待转换类进行继承关系转换完成。
在上述实施例中,实现了CIM模型包含继承关系时到逻辑模型的转换。以一个具体的CIM为例,参见图3所示,CustomerAgreement类继承Agreement空类,Agreement空类与TimeSchedule类继承Document类,Document类继承IdentifiedObject类,对应继承关系的转换,Document类与CustomerAgreement类在转换过程中均需要将IdentifiedObject类所对应的关系模式中的属性添加到其相应的关系模式中,同时由于Agreement为空类,不需要转换为相关关系模式,只需要将Document转换的关系模式中的主码添加到CustomerAgreement类转换的关系模式中,即Document.Document_mRID=CustomerAgreement.Document_mRID。
在进行CIM继承关系转换的同时或之后,可以继续对CIM类中的属性进行转换,CIM类的属性可以分为普通属性与自定义类型属性。CIM类中的普通属性指的是该属性引用基本数据类型,这些基本数据类型可以由构造型Primitive来描述,如《Primitive》String,《Primitive》Integer等。其中构造型为《Primitive》的数据类型是用于构成其他数据类型的基础数据类型。CIM类中的自定义类型属性指的是该属性引用自定义的数据类型,这些数据类型应用构造型Compound、enumeration、CIMDatatype来描述,如《Compound》LifecycleDate,《enumeration》CustomerKind,《CIMDatatype》Money等。其中构造型为《enumeration》的数据类型称为枚举数据类型,是一个指定的枚举文本取值的列表,这些文本取值在模型中被表示为没有数据类型的属性名。构造型为《CIMDatatype》称为CIM数据类型,是一种包含一个属性值、一个可选测量单位和一个乘数单位的数据类型。构造型为《Compound》的数据类型称为复合数据类型,是基本数据类型、枚举类型、CIM数据类型或其他复合类型的混合,在复合类型中不能出现循环。
参见图4所示,这里把基类也看作待转换类的话,则CIM转换逻辑模型的过程中对CIM类中的属性进行转换的过程可以包括:
步骤201:检测待转换类的属性。
步骤202:判断待转换类的属性引用的数据类型是否为基本数据类型,如果是,进行基本数据类型属性的转换,如果否,进入步骤203。
具体的,进行基本数据类型属性的转换,当基类的属性引用的数据类型是基本数据类型时,将基类的属性转换为所转换的关系模式的属性,可以为:将基类的属性直接作为所转换的关系模式的属性;
当待转换类的属性引用的数据类型是基本数据类型时,待转换类的属性转换为所转换的关系模式的属性,可以为:将待转换类的属性直接作为所转换的关系模式的属性。
即这些普通属性直接转化为所属类所转换成的关系模式的属性,如果属性是码则直接转化为该类所转换成的关系模式的码。例如一个具体CIM的Asset类,Asset类中属性lotNumber与属性serialNumber是普通属性,则在转换过程中直接转化成所对应的关系模式的属性。
步骤203:判断待转换类的属性引用的数据类型是否为枚举数据类型,如果是,进行枚举数据类型属性的转换,如果否,进入步骤204。
具体的,进行枚举数据类型属性的转换,当基类的属性引用的数据类型是枚举数据类型时,将基类的属性转换为所转换的关系模式的属性,可以为:将基类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性;
当待转换类的属性引用的数据类型是枚举数据类型时,待转换类的属性转换为所转换的关系模式的属性,可以为:将待转换类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性。
即如果自定义类型的属性引用的是枚举类,需要将属性所引用类型转化为所转换的关系模式中的字符串类型。例如一个具体的CIM中Asset类中属性type引用枚举类Type,则在转换过程中需要将其转化为所转换成的关系模式中的字符串类型。
步骤204:判断待转换类的属性引用的数据类型是否为CIM数据类型,如果是,进行CIM数据类型属性的转换,如果否,进入步骤205。
具体的,进行CIM数据类型属性的转换,当基类的属性引用的数据类型是CIM数据类型时,将基类的属性转换为所转换的关系模式的属性,可以为:将基类的属性引用的CIM数据类型的属性添加到所转换的关系模式中;
当待转换类的属性引用的数据类型是CIM数据类型时,待转换类的属性转换为所转换的关系模式的属性,可以为:将待转换类的属性引用的CIM数据类型的属性添加到所转换的关系模式中。
步骤205:判断待转换类的属性引用的数据类型是否为复合数据类型,如果是,进行复合数据类型属性的转换。
具体的,进行复合数据类型属性的转换,当基类的属性引用的数据类型是复合数据类型时,将基类的属性转换为所转换的关系模式的属性,可以为:将基类的属性引用的复合数据类型的属性添加到所转换的关系模式中;
当待转换类的属性引用的数据类型是复合数据类型时,待转换类的属性转换为所转换的关系模式的属性,可以为:将待转换类的属性引用的复合数据类型的属性添加到所转换的关系模式中。
即如果自定义类型的属性引用的是复合类型或CIM数据类型,需要将属性所引用类型的所有属性添加到包含该属性类所转换成的关系模式中。例如Asset类中属性lifecycle与属性status分别引用复合类型LifecycleDate和Status,属性purchasePrice引用CIM数据类型Money,则在转换过程中LifecycleDate、Status与Money的所有属性需要添加到包含属性lifecycle、status与purchase的类Asset所转换成的关系模式中。
当一个待转换类的属性转换完成,可以返回步骤201继续对下一个待转换类的属性进行转换,直到全部待转换类进行属性转换完成。在上述实施例中,实现了CIM模型中类的属性的转换。
当CIM中的类和属性转换完毕,则可以开始转换CIM中类的关联关系以及聚合关系的转换。关联是类之间的一种概念上的联系,重数在关联的两端都有显示。CIM类之间的关联关系有以下几种不同的情况:(1)一对一关联。CIM中类之间一对一的关联包括0..1:0..1关联,0..1:1关联和1:1关联。(2)一对多关联。CIM中类之间一对多的关联包括0..1:0..*关联、0..1:1..*关联、1:0..*关联和1:1..*关联。(3)多对多关联。CIM中类之间多对多的关联包括0..*:1..*关联、0..*:0..*关联和1..*:1..*关联。(4)自关联是一个类与自身关联,即一个类中的两个对象之间相互关联。
参见图5所示,本发明实施例将CIM模型转换为逻辑模型的方法还包括:
步骤301:选取CIM模型中的一个待转换类。
步骤302:判断待转换类是否存在关联关系,如果是,进入步骤303。
步骤303:判断待转换类的关联关系类型;
步骤304:当关联关系类型为一对一关联时,进行一对一关联关系转换。
具体的,当关联关系类型为0..1:0..1关联时,将待转换类所转换的关系模式的主码添加到与待转换类的关联类所转换的关系模式中作为外码;
当关联关系类型为0..1:1关联时,若待转换类的关联端为1,则将待转换类所转换的关系模式的主码添加到与待转换类的关联类所转换的关系模式中作为外码;
当关联关系类型为1:1关联时,将待转换类所转换的关系模式与待转换类的关联类所转换的关系模式合并,任意一个关联端两侧的类所转换的关系模式的主码作为合并后的关系模式的主码。
即当关联为0..1:0..1时,将其中一端类对应的关系模式的主码添加到另一端类所对应的关系模式中作为外码;当关联为0..1:1时,只能将关联端为1的类所对应的关系模式中的主码添加到关联端为0..1的类所对应的关系模式中作为外码;当关联为1:1时,关联两端的类所对应的关系模式合并为一个新的关系模式,新的关系模式中的主码可以采用其中一个关系模式的主码。以一个具体的CIM中Meter类与RunMeterInfo类之间的关联为例,电能表Meter类与运行电能表信息RunMeterInfo类的关联关系为1:0..1,则在转换过程中将Meter类所对应的关系模式中的主码Meter_mRID添加到RunMeterInfo类所对应的关系模式中作为外码。由于CIM的特殊性,只需要使得Meter.Meter_mRID=RunMeterInfo.Meter_mRID。这里,关于0..1:0..1关联和0..1:1关联映射规则的举例不再赘述。
步骤305:当关联关系类型为一对多关联时,进行一对多关联关系转换。
具体的,当关联关系类型为一对多关联时,若待转换类的关联端为1或0..1,则将待转换类所转换的关系模式的主码添加到与待转换类的关联类所转换的关系模式中作为外码。
即将关联端为1或0..1的类对应的关系模式的主码添加到关联端为0..*或者1..*的类所对应的关系模式中作为外码。以一个具体的CIM中RunMeterInfo类与ReadingType类之间的关联为例,运行电能表信息RunMeterInfo类与电能表示数类型ReadingType类的关联关系为1:0..*,则在转换过程中将RunMeterInfo类所对应的关系模式中的主码RunMeterInfo_mRID添加到ReadingType类所对应的关系模式中作为外码,由于CIM的特殊性,只需要使得RunMeterInfo.RunMeterInfo_mRID=ReadingType.RunMeterInfo_mRID。这里,关于0..1:0..*关联、0..1:1..*关联和1:1..*关联映射规则的举例不再赘述。
步骤306:当关联关系类型为多对多关联时,进行多对多关联关系转换。
具体的,当关联关系类型为多对多关联时,建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的属性。。
这种关联转换为一个新的关系模式,该关系模式的属性由关联两端类对应的关系模式的主码及关联本身的属性构成。以一个具体的CIM中RunMeterInfo类与UsagePoint类之间的关联为例,运行电能表信息RunMeterInfo类与计量点UsagePoint类的关联关系为0..*:1..*,则需要将该关联转换为一个新的关系模式Relationship,分别将RunMeterInfo类所对应的关系模式中的主码与UsagePoint类所对应的关系模式中的主码添加到Relationship中,
即RunMeterInfo.RunMeterInfo_mRID=Relationship.RunMeterInfo_mRIDUsagePoint.UsagePoint_mRID=Relationship.UsagePoint_mRID。这里,关于0..*:0..*关联和1..*:1..*关联映射规则的举例不再赘述。
步骤307:当关联关系类型为自关联时,进行自关联关系转换。
具体的,当关联关系类型为自关联时,若关联端中存在0..1,则将待转换类所转换的关系模式的主码添加到待转换类所转换的关系模式中作为外码;若自关联存在1..*:0..*关联或0..*:0..*关联,则建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的外码。
自关联转换为关系模式时,若关联端中存在0..1,需将类所对应的关系模式的主码添加到自身作为一个外码。若自关联关系存在1..*:0..*或者0..*:0..*,将建立一个新的关系模式,该关系模式包含两个属性,两个属性均为所述待转来类中的主码,在该类中均作为外码,即一个为父类的主码,一个为子类的主码。以CIM中RunMeterInfo类为例,运行电能表信息RunMeterInfo类自关联,则需在转换过程中将RunMeterInfo中的主码添加到自身作为一个外码,即RunMeterInfo_mRID=ReferenceRunMeter。
当一个待转换类的关联关系转换完成,可以返回步骤301继续对下一个待转换类的关联关系进行转换,直到全部待转换类进行关联关系转换完成。在上述实施例中,实现了CIM模型中类的关联关系到逻辑模型的转换。
参见图6所示,本发明实施例将CIM模型转换为逻辑模型的方法还包括:
步骤401:选取CIM模型中的一个待转换类。
步骤402:判断待转换类是否存在聚合关系,如果是,进入步骤403。
步骤403:当待转换类存在聚合关系时,进行聚合关系转换。具体的,若待转换类为代表整体的类,则将待转换类所转换的关系模式的主码添加到与待转换类的聚合代表部分的类所转换的关系模式中作为外码。
即聚合关系映射成关系模式时,代表整体和部分的类分别转换成一个关系模式,此时需将代表整体的类对应的关系模式的主码添加到代表部分的类所对应的一个关系模式中作为一个外码。
当一个待转换类的聚合关系转换完成,可以返回步骤401继续对下一个待转换类的聚合关系进行转换,直到全部待转换类进行聚合关系转换完成。在上述实施例中,实现了CIM模型中类的聚合关系到逻辑模型的转换。
需要注意的是,本发明实施例对于CIM模型转换为逻辑模型的过程中,转换关联关系或聚合关系的前后顺序并不作具体限定。
通过对CIM模型中类、属性、关系的分别转换,实现了CIM模型向逻辑模型的转换。基于上述将CIM转换为逻辑模型的方法,可以使用JAVA语言开发的自动化转换工具,以达到实现由CIM到逻辑模型的自动转换的目的。
这样,本发明实施例可以实现对包含复杂继承关系、关联关系、包含自定义数据类型的CIM模型向逻辑模型的转换,有效解决了现有技术中CIM模型不能全面、有效地转换为逻辑模型的技术问题,从而能够满足电力业务中CIM模型向逻辑模型转换的需求。同时利用本发明实施例给出的CIM模型转换为逻辑模型的方法,可以制定CIM模型到逻辑模型自动化转换工具,支持自定义数据类型、复杂继承和复杂关联的自动转换,以实现CIM模型向逻辑模型的有效自动转换。
相应的,本发明还提供一种将CIM模型转换为逻辑模型的装置,参见图7所示,该装置包括:
第一转换单元501,用于将CIM模型的基类转换为基础关系模式;
第一选取单元502,用于选取CIM模型中的一个待转换类;
第二转换单元503,用于将待转换类转换为关系模式;
第一判断单元504,用于判断待转换类是否存在继承关系,如果是,判断待转换类的根类是否为CIM模型的基类;
第二判断单元505,用于判断待转换类的根类是否为CIM模型的基类,如果是,判断待转换类的父类是否为CIM模型的基类,如果否,判断待转换类的父类是否为空类;
第三判断单元506,用于判断待转换类的父类是否为CIM模型的基类,如果是,将基础关系模式中的属性添加到待转换类所转换的关系模式中,如果否,判断待转换类的父类是否为空类;
第四判断单元507,用于判断待转换类的父类是否为空类,如果是,利用递归算法查找到第一非空父类,将第一非空父类所转换的关系模式的主码添加到待转换类所转换的关系模式中,如果否,判断待转换类的父类是否有且只有一个子类;
第五判断单元508,用于判断待转换类的父类是否有且只有一个子类,如果是,将待转换类的父类所转换的关系模式的属性添加到待转换类所转换的关系模式中,如果否,将待转换类的父类所转换的关系模式的主码添加到待转换类所转换的关系模式中。
其中,第一转换单元501可以包括:
第一转换子单元,用于将CIM模型中的基类的名称作为所转换的关系模式的名称;
第二转换子单元,用于将基类的主码转换为所转换的关系模式的主码;
第三转换子单元,用于将基类的属性转换为所转换的关系模式的属性;
第二转换单元503可以包括:
第四转换子单元,用于将待转换类的名称作为所转换的关系模式的名称;
第五转换子单元,用于将待转换类的主码转换为所转换的关系模式的主码;
第六转换子单元,用于将待转换类的属性转换为所转换的关系模式的属性。
当基类的属性引用的数据类型是基本数据类型时,第三转换子单元,具体可以用于将基类的属性直接作为所转换的关系模式的属性;第六转换子单元,具体可以用于将待转换类的属性直接作为所转换的关系模式的属性。
当基类的属性引用的数据类型是枚举数据类型时,第三转换子单元,具体可以用于将基类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性;第六转换子单元,具体可以用于将待转换类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性。
当基类的属性引用的数据类型是CIM数据类型时,第三转换子单元,具体可以用于将基类的属性引用的CIM数据类型的属性添加到所转换的关系模式中;第六转换子单元,具体可以用于将待转换类的属性引用的CIM数据类型的属性添加到所转换的关系模式中。
当基类的属性引用的数据类型是复合数据类型时,第三转换子单元,具体可以用于将基类的属性引用的复合数据类型的属性添加到所转换的关系模式中;第六转换子单元,具体可以用于将待转换类的属性引用的复合数据类型的属性添加到所转换的关系模式中。
参见图8所示,本发明一种将CIM模型转换为逻辑模型的装置还可以包括:
第六判断单元601,用于判断待转换类是否存在关联关系;
第七判断单元602,用于当待转换类存在关联关系时,判断待转换类的关联关系类型;关联关系类型包括一对一关联、一对多关联、多对多关联以及自关联;一对一的关联包括0..1:0..1关联,0..1:1关联以及1:1关联;所述一对多关联包括1:1..*关联、1:0..*关联、0..1:1..*关联以及0..1:0..*关联;
第三转换单元603,用于当关联关系类型为0..1:0..1关联时,将待转换类所转换的关系模式的主码添加到与待转换类的关联类所转换的关系模式中作为外码;
第四转换单元604,用于当关联关系类型为0..1:1关联时,若待转换类的关联端为1,则将待转换类所转换的关系模式的主码添加到与待转换类的关联类所转换的关系模式中作为外码;
第五转换单元605,用于当关联关系类型为1:1关联时,将待转换类所转换的关系模式与待转换类的关联类所转换的关系模式合并,任意一个关联端两侧的类所转换的关系模式的主码作为合并后的关系模式的主码;
第六转换单元606,用于当关联关系类型为一对多关联时,若待转换类的关联端为1或0..1,则将待转换类所转换的关系模式的主码添加到与待转换类的关联类所转换的关系模式中作为外码;
第七转换单元607,用于当关联关系类型为多对多关联时,建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的属性;
第八转换单元608,用于当关联关系类型为自关联时,若关联端中存在0..1,则将待转换类所转换的关系模式的主码添加到待转换类所转换的关系模式中作为外码;若所述自关联存在1..*:0..*关联或0..*:0..*关联,则建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的外码。
参见图9所示,本发明一种将CIM模型转换为逻辑模型的装置还可以包括:
第八判断单元701,用于判断待转换类是否存在聚合关系;
第九转换单元702,用于当待转换类存在聚合关系时,若待转换类为代表整体的类,则将待转换类所转换的关系模式的主码添加到与待转换类的聚合代表部分的类所转换的关系模式中作为外码。
这样,本发明实施例可以实现对包含复杂继承关系、关联关系、包含自定义数据类型的CIM模型向逻辑模型的转换,有效解决了现有技术中CIM模型不能全面、有效地转换为逻辑模型的技术问题,从而能够满足电力业务中CIM模型向逻辑模型转换的需求。同时利用本发明实施例给出的CIM模型转换为逻辑模型的方法,可以制定CIM模型到逻辑模型自动化转换工具,支持自定义数据类型、复杂继承和复杂关联的自动转换,以实现CIM模型向逻辑模型的有效自动转换。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (16)
1.一种将CIM模型转换为逻辑模型的方法,其特征在于,所述方法包括:
将CIM模型的基类转换为基础关系模式;
选取CIM模型中的一个待转换类,并将所述待转换类转换为关系模式;
判断所述待转换类是否存在继承关系,如果是,判断所述待转换类的根类是否为所述CIM模型的基类;
判断所述待转换类的根类是否为所述CIM模型的基类,如果是,判断所述待转换类的父类是否为所述CIM模型的基类,如果否,判断所述待转换类的父类是否为空类;
判断所述待转换类的父类是否为所述CIM模型的基类,如果是,将所述基础关系模式中的属性添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否为空类;
判断所述待转换类的父类是否为空类,如果是,利用递归算法查找到第一非空父类,将所述第一非空父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否有且只有一个子类;
判断所述待转换类的父类是否有且只有一个子类,如果是,将所述待转换类的父类所转换的关系模式的属性添加到所述待转换类所转换的关系模式中,如果否,将所述待转换类的父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中。
2.根据权利要求1所述的方法,其特征在于,所述将CIM模型的基类转换为基础关系模式,包括:
将CIM模型中的基类的名称作为所转换的关系模式的名称,将所述基类的主码转换为所转换的关系模式的主码,将所述基类的属性转换为所转换的关系模式的属性;
所述将所述待转换类转换为关系模式,包括:
将待转换类的名称作为所转换的关系模式的名称,将所述待转换类的主码转换为所转换的关系模式的主码,将所述待转换类的属性转换为所转换的关系模式的属性。
3.根据权利要求2所述的方法,其特征在于,
当所述基类的属性引用的数据类型是基本数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类的属性直接作为所转换的关系模式的属性;
当所述待转换类的属性引用的数据类型是基本数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类的属性直接作为所转换的关系模式的属性。
4.根据权利要求2所述的方法,其特征在于,
当所述基类的属性引用的数据类型是枚举数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性;
当所述待转换类的属性引用的数据类型是枚举数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性。
5.根据权利要求2所述的方法,其特征在于,
当所述基类的属性引用的数据类型是CIM数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类的属性引用的CIM数据类型的属性添加到所转换的关系模式中;
当所述待转换类的属性引用的数据类型是CIM数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类的属性引用的CIM数据类型的属性添加到所转换的关系模式中。
6.根据权利要求2所述的方法,其特征在于,
当所述基类的属性引用的数据类型是复合数据类型时,将所述基类的属性转换为所转换的关系模式的属性,包括:
将所述基类的属性引用的复合数据类型的属性添加到所转换的关系模式中;
当所述待转换类的属性引用的数据类型是复合数据类型时,所述待转换类的属性转换为所转换的关系模式的属性,包括:
将所述待转换类的属性引用的复合数据类型的属性添加到所转换的关系模式中。
7.根据权利要求3-6任一项所述的方法,其特征在于,所述方法还包括:
选取CIM模型中的一个待转换类;
判断所述待转换类是否存在关联关系;
当所述待转换类存在关联关系时,判断所述待转换类的关联关系类型;所述关联关系类型包括一对一关联、一对多关联、多对多关联以及自关联;所述一对一的关联包括0..1:0..1关联,0..1:1关联以及1:1关联;所述一对多关联包括1:1..*关联、1:0..*关联、0..1:1..*关联以及0..1:0..*关联;
当所述关联关系类型为所述0..1:0..1关联时,将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
当所述关联关系类型为所述0..1:1关联时,若所述待转换类的关联端为1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
当所述关联关系类型为所述1:1关联时,将所述待转换类所转换的关系模式与所述待转换类的关联类所转换的关系模式合并,任意一个关联端两侧的类所转换的关系模式的主码作为合并后的关系模式的主码;
当所述关联关系类型为所述一对多关联时,若所述待转换类的关联端为1或0..1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
当所述关联关系类型为所述多对多关联时,建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的属性;
当所述关联关系类型为所述自关联时,若关联端中存在0..1,则将所述待转换类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中作为外码;若所述自关联存在1..*:0..*关联或0..*:0..*关联,则建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的外码。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
选取CIM模型中的一个待转换类;
判断所述待转换类是否存在聚合关系;
当所述待转换类存在聚合关系时,若所述待转换类为代表整体的类,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的聚合代表部分的类所转换的关系模式中作为外码。
9.一种将CIM模型转换为逻辑模型的装置,其特征在于,所述装置包括:
第一转换单元,用于将CIM模型的基类转换为基础关系模式;
第一选取单元,用于选取CIM模型中的一个待转换类;
第二转换单元,用于将所述待转换类转换为关系模式;
第一判断单元,用于判断所述待转换类是否存在继承关系,如果是,判断所述待转换类的根类是否为所述CIM模型的基类;
第二判断单元,用于判断所述待转换类的根类是否为所述CIM模型的基类,如果是,判断所述待转换类的父类是否为所述CIM模型的基类,如果否,判断所述待转换类的父类是否为空类;
第三判断单元,用于判断所述待转换类的父类是否为所述CIM模型的基类,如果是,将所述基础关系模式中的属性添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否为空类;
第四判断单元,用于判断所述待转换类的父类是否为空类,如果是,利用递归算法查找到第一非空父类,将所述第一非空父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中,如果否,判断所述待转换类的父类是否有且只有一个子类;
第五判断单元,用于判断所述待转换类的父类是否有且只有一个子类,如果是,将所述待转换类的父类所转换的关系模式的属性添加到所述待转换类所转换的关系模式中,如果否,将所述待转换类的父类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中。
10.根据权利要求9所述的装置,其特征在于,
第一转换单元包括:
第一转换子单元,用于将CIM模型中的基类的名称作为所转换的关系模式的名称;
第二转换子单元,用于将所述基类的主码转换为所转换的关系模式的主码;
第三转换子单元,用于将所述基类的属性转换为所转换的关系模式的属性;
第二转换单元包括:
第四转换子单元,用于将待转换类的名称作为所转换的关系模式的名称;
第五转换子单元,用于将所述待转换类的主码转换为所转换的关系模式的主码;
第六转换子单元,用于将所述待转换类的属性转换为所转换的关系模式的属性。
11.根据权利要求10所述的装置,其特征在于,
当所述基类的属性引用的数据类型是基本数据类型时,所述第三转换子单元,具体用于将所述基类的属性直接作为所转换的关系模式的属性;
所述第六转换子单元,具体用于将所述待转换类的属性直接作为所转换的关系模式的属性。
12.根据权利要求10所述的装置,其特征在于,
当所述基类的属性引用的数据类型是枚举数据类型时,所述第三转换子单元,具体用于将所述基类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性;
所述第六转换子单元,具体用于将所述待转换类中引用枚举数据类型的属性转换为所转换的关系模式中引用字符串数据类型的属性。
13.根据权利要求10所述的装置,其特征在于,
当所述基类的属性引用的数据类型是CIM数据类型时,所述第三转换子单元,具体用于将所述基类的属性引用的CIM数据类型的属性添加到所转换的关系模式中;
所述第六转换子单元,具体用于将所述待转换类的属性引用的CIM数据类型的属性添加到所转换的关系模式中。
14.根据权利要求10所述的装置,其特征在于,
当所述基类的属性引用的数据类型是复合数据类型时,所述第三转换子单元,具体用于将所述基类的属性引用的复合数据类型的属性添加到所转换的关系模式中;
所述第六转换子单元,具体用于将所述待转换类的属性引用的复合数据类型的属性添加到所转换的关系模式中。
15.根据权利要求12-14任一项所述的装置,其特征在于,所述装置还包括:
第六判断单元,用于判断所述待转换类是否存在关联关系;
第七判断单元,用于当所述待转换类存在关联关系时,判断所述待转换类的关联关系类型;所述关联关系类型包括一对一关联、一对多关联、多对多关联以及自关联;所述一对一的关联包括0..1:0..1关联,0..1:1关联以及1:1关联;所述一对多关联包括1:1..*关联、1:0..*关联、0..1:1..*关联以及0..1:0..*关联;
第三转换单元,用于当所述关联关系类型为所述0..1:0..1关联时,将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
第四转换单元,用于当所述关联关系类型为所述0..1:1关联时,若所述待转换类的关联端为1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
第五转换单元,用于当所述关联关系类型为所述1:1关联时,将所述待转换类所转换的关系模式与所述待转换类的关联类所转换的关系模式合并,任意一个关联端两侧的类所转换的关系模式的主码作为合并后的关系模式的主码;
第六转换单元,用于当所述关联关系类型为所述一对多关联时,若所述待转换类的关联端为1或0..1,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的关联类所转换的关系模式中作为外码;
第七转换单元,用于当所述关联关系类型为所述多对多关联时,建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的属性;
第八转换单元,用于当所述关联关系类型为所述自关联时,若关联端中存在0..1,则将所述待转换类所转换的关系模式的主码添加到所述待转换类所转换的关系模式中作为外码;若所述自关联存在1..*:0..*关联或0..*:0..*关联,则建立一个新的关系模式,将关联端两侧的类所转换的关系模式的主码作为新的关系模式的外码。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第八判断单元,用于判断所述待转换类是否存在聚合关系;
第九转换单元,用于当所述待转换类存在聚合关系时,若所述待转换类为代表整体的类,则将所述待转换类所转换的关系模式的主码添加到与所述待转换类的聚合代表部分的类所转换的关系模式中作为外码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201310204561 CN103279901A (zh) | 2013-05-28 | 2013-05-28 | 一种将cim模型转换为逻辑模型的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201310204561 CN103279901A (zh) | 2013-05-28 | 2013-05-28 | 一种将cim模型转换为逻辑模型的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103279901A true CN103279901A (zh) | 2013-09-04 |
Family
ID=49062408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201310204561 Pending CN103279901A (zh) | 2013-05-28 | 2013-05-28 | 一种将cim模型转换为逻辑模型的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279901A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617214A (zh) * | 2013-11-19 | 2014-03-05 | 南方电网科学研究院有限责任公司 | 一种cim模型路径查询方法及装置 |
CN106250248A (zh) * | 2016-07-28 | 2016-12-21 | 努比亚技术有限公司 | 一种对返回数据进行类型转换的方法和装置 |
CN108256754A (zh) * | 2018-01-09 | 2018-07-06 | 北京中电普华信息技术有限公司 | 一种模型测试与管理方法及系统 |
CN110765218A (zh) * | 2019-10-25 | 2020-02-07 | 山东大学 | Cim类中复合型属性数据的关系数据库持久化配置方法 |
-
2013
- 2013-05-28 CN CN 201310204561 patent/CN103279901A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617214A (zh) * | 2013-11-19 | 2014-03-05 | 南方电网科学研究院有限责任公司 | 一种cim模型路径查询方法及装置 |
CN103617214B (zh) * | 2013-11-19 | 2017-02-08 | 南方电网科学研究院有限责任公司 | 一种cim模型路径查询方法及装置 |
CN106250248A (zh) * | 2016-07-28 | 2016-12-21 | 努比亚技术有限公司 | 一种对返回数据进行类型转换的方法和装置 |
CN108256754A (zh) * | 2018-01-09 | 2018-07-06 | 北京中电普华信息技术有限公司 | 一种模型测试与管理方法及系统 |
CN110765218A (zh) * | 2019-10-25 | 2020-02-07 | 山东大学 | Cim类中复合型属性数据的关系数据库持久化配置方法 |
CN110765218B (zh) * | 2019-10-25 | 2022-05-13 | 山东大学 | Cim类中复合型属性数据的关系数据库持久化配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103299303B (zh) | 可扩展的rdf数据库 | |
Kim et al. | A formal mapping between UML models and Object-Z specifications | |
Mazón et al. | An MDA approach for the development of data warehouses | |
Brockmans et al. | Visual modeling of OWL DL ontologies using UML | |
Krima et al. | Ontostep: OWL-DL ontology for step | |
Renolen | Modelling the real world: conceptual modelling in spatiotemporal information system design | |
WO2004021180A2 (en) | Model-based composable code generation | |
CN103186628B (zh) | 一种公共信息模型与关系型数据库之间的映射方法 | |
CN103279901A (zh) | 一种将cim模型转换为逻辑模型的方法及装置 | |
CN103186620A (zh) | 一种cim模型映射方法 | |
Kim et al. | Visualization of formal specifications | |
US20090049025A1 (en) | System and method for harvesting service metadata from an architecture diagram into a metadata repository | |
Wada et al. | Modeling turnpike frontend system: A model-driven development framework leveraging UML metamodeling and attribute-oriented programming | |
Álvarez et al. | MML and the Metamodel Architecture | |
CN104166546A (zh) | 一种基于mda的面向dds应用软件的实现方法及系统 | |
Skogan | UML as a schema language for XML based data interchange | |
Kim et al. | Using integrated metamodeling to define OO design patterns with Object-Z and UML | |
Lisboa-Filho et al. | Domain and model driven geographic database design | |
Foufou et al. | A core product model for PLM with an illustrative XML implementation | |
Zhan | An ontology-based approach for semantic level information exchange and integration in applications for product lifecycle management | |
Bouassida et al. | Formalizing the framework design language F-UML | |
Atkinson et al. | A deep view-point language and framework for projective modeling | |
Dong et al. | Extending UML to Visualize Design Patterns In Class Diagrams. | |
WO2024040382A1 (zh) | Icd文件生成方法、装置、计算机设备和存储介质 | |
Chan et al. | An object-oriented implementation of an entity relationship model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130904 |