CN109947741B - 一种物项属性参数的建模和存储方法 - Google Patents
一种物项属性参数的建模和存储方法 Download PDFInfo
- Publication number
- CN109947741B CN109947741B CN201910104873.XA CN201910104873A CN109947741B CN 109947741 B CN109947741 B CN 109947741B CN 201910104873 A CN201910104873 A CN 201910104873A CN 109947741 B CN109947741 B CN 109947741B
- Authority
- CN
- China
- Prior art keywords
- item
- class
- attribute
- variable type
- relationship
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的目的在于公开一种物项属性参数的建模和存储方法,采用“名‑实分离”进行数据建模,通过四个核心的类及几个非核心的类即能实现对所有物项的所有属性和关系进行建模,并实现对所有版本数据及其附属信息的存储,在关系元数据建模时,只需要从关系的一端出发进行定义,而不需要同时定义关系两端的物项类型,减轻了关系定义的工作量,同时在关系值存储时通过指定两端的关系元数据,使得关系信息完整,且能从任意一端进行关系查找和统计,实现分布式存储,利于实施检索机制,提高数据的读取性能和数据库的可维护性,解决了物项种类多、物项属性多、数据版本不定和数据值附属信息同时存储时的数据建模和数据库设计问题,实现本发明的目的。
Description
技术领域
本发明涉及一种参数的建模和存储方法,特别涉及一种用于软件开发的物项属性参数的建模和存储方法。
背景技术
软件开发时,通常用概念模型(一般是E-R图或类图,两者形式不同但表达相同)对实体类、属性和联系进行建模,然后经过E-R图向“关系”的逻辑转换后,用物理模型来描述概念模型在数据库中的实现(即数据表的详细描述)。一般来说,概念模型中的一种实体类,对应物理模型中的一张数据表,其中数据表的每个字段(或称为列)对应实体类的一个属性,而每条记录对应一个实体类的实例。另外,实体类和实体类之间的“多对多关系”,通过单独创建数据表来实现。
上述这种“一个实体类一张数据表(以下称为实体表)”和“一种实体间联系一张数据表(以下称为联系表)”的方式,虽然广泛应用,但对于企业的数据管理***来说,存在以下问题:
1)如果实体类非常多,成百上千,且每两种实体之间都可能存在联系,那么需要创建O(N)数量级的实体表和O(N×N)数量级的联系表,而且随着企业业务的开拓或者企业数据梳理的加深,上述的实体类和实体间联系可能不断增加或修改,从而造成数据库的动态建表,对数据库维护和软件开发都带来很大的挑战。
2)如果实体类的属性(或称为成员变量)有上百个,而该实体类的实例数目却很少,那么该实体类对应的实体表就出现“行少列多”的局面,这一方面使数据库建表的工作量繁重(要描述上百个字段),另一方面无法充分发挥出数据库在数据“增查改删”(create,retrieve,update,delete,CRUD)方面的优势。
3)上述的实体表中存储的实例的属性值,只能是一个数据,或者说一个版本的数据,而不能存储所有版本的数据。如果软件***要存储某个实体属性在不同阶段形成的数据值,则要建立多张数据表(即一个阶段一张表),然而由于每个属性的“阶段”或者“版本”的数目是不定且不等的,因此无法解决不定版本数据的存储问题。
4)在上述的实体表中,存储的仅仅是物项的属性值。但一个软件***,除了要存储属性值之外,往往还要存储与该值相关的其他信息,如数据录入时间、数据版本、录入的流程信息、数据来源、数据的保密等级等等。虽然这些信息也可以通过设计联系表或日志来存储,但如果这些信息本身也很重要的话,那么采用这种方式设计的数据库,其“E-R”会非常复杂。
综上所述,在建设企业的数据管理***时,如果实体类别非常多、每个实体的属性和关系也非常多,要存储不定版本的数据值、而且同时要存储每个数据值的“来龙去脉”,在这种情况下,传统的数据建模和存储方式就显得“力不从心”了。
因此,特别需要一种物项属性参数的建模和存储方法,以解决上述现有存在的问题。
发明内容
本发明的目的在于提供一种物项属性参数的建模和存储方法,针对现有技术的不足,解决了实体种类多、每个实体的属性和关系多、数据版本不定和数据值附属信息同时存储的情况,合理、简易及高效地对实体物项的属性和关系进行建模和存储。
本发明所解决的技术问题可以采用以下技术方案来实现:
一种物项属性参数的建模和存储方法,其特征在于,它包括如下步骤:
S1、建立包括物项类型类Class、物项类Item、单位类Unit和枚举类Enume在内的类;其中,物项类型类Class对所有的物项类型进行统一建模,物项类Item对所有的物项进行统一的建模,单位类Unit对所有的单位进行统一建模,枚举类Enume对所有的枚举值进行统一建模;
S2、建立属性名类ParamName,对所有的实体的属性元数据进行统一建模;
S3、建立属性值类ParamValue,对所有的实体的属性值相关数据进行统一建模;
S4、建立关系名类RelatName,从关系一端物项的视角对所有的实体间关系的元数据进行统一的建模;
S5、建立关系值类RelatValue,从关系两端物项的视角对所有的实体间关系的关系值进行统一的建模;
S6、概念模型全部建立后,即可将概念模型转化为数据库结构的物理模型,其中概念模型中类转化为数据库中的数据表;类之间的引用联系,转化为数据表之间的主键-外键关系。
在本发明的一个实施例中,属性名类ParamName至少包括成员变量id、class、name、code、unit、dataType、enume和fields;其中,id是该属性元数据的标识码,变量类型是long或UUID;class是该属性元数据所从属的实体类,变量类型是步骤S1中建立的物项类型类Class;name是该属性的名称,变量类型是String;code是该属性的编码,变量类型是String;dataType是该属性的数据类型,变量类型是int或String;unit是该属性的单位,变量类型是S1建立的单位类Unit;enume是该属性的枚举值,变量类型是步骤S1中建立的枚举类Enume;fields是数组类型属性的列信息,变量类型为List<ParamName>。
进一步,用户可以增减所需的成员变量,以描述一个属性的元数据信息,但不包括该属性的属性值相关的成员变量。
在本发明的一个实施例中,属性值类ParamValue至少包括成员变量id、item、paramName、value、values、date、version、desFlow和QAFlow;其中,id是该属性值的标识码,变量类型是long或者UUID;item是该属性值所从属的实例物项,变量类型是步骤S1中建立的物项类Item;paramName是该属性值所对应的属性名元数据,变量类型是步骤S2中建立的属性名类ParamName;value是该属性值的具体数值(对应单参数),变量类型是String;values也是该属性值的具体数值(对应数组类型的参数),变量类型是JSONArray或String[][];date是该属性值的发布时间,变量类型是Date;version是该属性值的版本号,变量类型是Char;desFlow是该属性值的产生流程,QAFlow是该属性值的质保流程。
在本发明的一个实施例中,关系名类RelatName至少包括成员变量id、leftClass、name、code、oneToMany和rightCategory;其中,id是该关系名元数据的标识符,变量类型是long或者UUID;leftClass是该关系的视角端物项所从属的物项类型类,变量类型是步骤S1中建立的物项类型类Class;name是该关系的名称,变量类型是String;code是该关系编码,变量类型是String;oneToMany是该关系的另一端所允许的最多物项实例数目,变量类型是int;rightCategory是该关系的另一端物项的物项类型的范畴,变量类型是int或String。
在本发明的一个实施例中,关系值类RelatValue至少包括成员变量leftItem、leftRelat、leftOrder、rightItem、rightRelat和rightOrder;其中,leftItem是关系的一端的物项,变量类型是步骤S1中建立的物项类Item;leftRelat是关系的一端的关系名元数据,变量类型是步骤S4中建立的关系名类RelatName;leftOrderr是关系的一端的物项次序,变量类型是int;rightItem是关系的另一端的物项,变量类型是步骤S1中建立的物项类Item;rightRelat是关系的另一端的关系名元数据,变量类型是步骤S4中建立的关系名类RelatName;rightOrder是关系的另一端的物项次序,变量类型是int。
本发明的物项属性参数的建模和存储方法,与现有技术相比,采用“名-实分离”进行数据建模,通过四个核心的类及几个非核心的类即能实现对所有物项的所有属性和关系进行建模,并实现对所有版本数据及其附属信息的存储,在关系元数据建模时,只需要从关系的一端出发进行定义,而不需要同时定义关系两端的物项类型,模型简单,极大地减轻了关系定义的工作量,同时在关系值存储时通过指定两端的关系元数据,使得关系信息完整,且能从任意一端进行关系查找和统计,能够实现分布式存储,同时利于实施检索机制,提高数据的读取性能和数据库的可维护性,解决了物项种类多、物项属性多、数据版本不定和数据值附属信息同时存储时的数据建模和数据库设计问题,实现本发明的目的。
本发明的特点可参阅本案图式及以下较好实施方式的详细说明而获得清楚地了解。
附图说明
图1为本发明的物项属性相关的概念模型的示意图;
图2为本发明的物项间关系相关的概念模型的示意图;
图3为本发明的物项属性相关的物理模型的示意图;
图4为本发明的物项间关系相关的物理模型的示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
实施例
如图1至图4所示,本发明的物项属性参数的建模和存储方法,它包括步骤如下:
S1、建立包括物项类型类Class、物项类Item、单位类Unit、枚举类Enume等在内的类,其中物项类型类Class对所有的物项类型进行统一建模。物项类Item对所有的物项进行统一的建模。单位类Unit对所有的单位进行统一建模。枚举类Enume对所有的枚举值进行统一建模。
S2、建立属性名类(ParamName),该类对所有的实体的属性元数据进行统一建模,如图1所示。该类至少包括成员变量id、class、name、code、unit、dataType、enume、fields等。其中id是该属性元数据的标识码,变量类型是long或UUID;class是该属性元数据所从属的实体类,变量类型是S1建立的物项类型类Class;name是该属性的名称,变量类型是String;code是该属性的编码,变量类型是String;dataType是该属性的数据类型,变量类型是int或String;unit是该属性的单位,变量类型是S1建立的单位类Unit;enume是该属性的枚举值,变量类型是S1建立的枚举类Enume;fields是数组类型属性的列信息,变量类型可为List<ParamName>。用户可以增减所需的成员变量,以描述一个属性的元数据信息,但不包括该属性的属性值相关的成员变量。
S3、建立属性值类(ParamValue),该类对所有的实体的属性值相关数据进行统一建模,如图1所示。该类至少包括成员变量id、item、paramName、value、values、date、version、desFlow、QAFlow等。其中id是该属性值的标识码,变量类型是long或者UUID;item是该属性值所从属的实例物项,变量类型是S1建立的物项类Item;paramName是该属性值所对应的“属性名”元数据,变量类型是S2建立的属性名类ParamName;value是该属性值的具体数值(对应单参数),变量类型是String;values也是该属性值的具体数值(对应数组类型的参数),变量类型是JSONArray或String[][];date是该属性值的发布时间,变量类型是Date;version是该属性值的版本号,变量类型是Char;desFlow是该属性值的产生流程,QAFlow是该属性值的质保流程。
S4、建立关系名类(RelatName),该类是从关系一端(而不是两端)物项的视角,对所有的实体间关系的元数据进行统一的建模,如图2所示。该类至少包括成员变量id、leftClass、name、code、oneToMany、rightCategory等。其中id是该关系名元数据的标识符,变量类型是long或者UUID;leftClass是该关系的视角端物项所从属的物项类型类,变量类型是S1建立的物项类型类Class;name是该关系的名称,变量类型是String;code是该关系编码,变量类型是String;oneToMany是该关系的另一端所允许的最多物项实例数目,变量类型是int;rightCategory是该关系的另一端物项的物项类型的范畴,变量类型是int或String。
S5、建立关系值类(RelatValue),该类是从关系两端物项的视角,对所有的实体间关系的关系值进行统一的建模,如图2所示。该类至少包括成员变量leftItem、leftRelat、leftOrder、rightItem、rightRelat、rightOrder等。其中leftItem是关系的一端的物项,变量类型是S1建立的物项类Item;leftRelat是关系的一端的关系名元数据,变量类型是S4建立的关系名类RelatName;leftOrderr是关系的一端的物项次序,变量类型是int;rightItem是关系的另一端的物项,变量类型是S1建立的物项类Item;rightRelat是关系的另一端的关系名元数据,变量类型是S4建立的关系名类RelatName;rightOrder是关系的另一端的物项次序,变量类型是int。
概念模型全部建立后,即可将概念模型转化为数据库结构的物理模型。其中概念模型中类转化为数据库中的数据表;类之间的引用联系,转化为数据表之间的主键-外键关系。如图3和图4所示。
S6、在软件开发时,可直接采用本发明的类和数据结构,作为对物项属性和关系进行建模和存储的依据。当然,要根据实际软件开发语言和数据库产品进行适当调整。
从上可以看出,本方法适用于数据建模时物项种类多、物项属性多、物项关系多、数据版本不定、以及需要同时存储数据流程信息的情况。采用本方法不但能解决上述情况的数据建模和存储问题,还给数据库维护、信息检索等提供了便利。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (6)
1.一种物项属性参数的建模和存储方法,其特征在于,它包括如下步骤:
S1、建立包括物项类型类Class、物项类Item、单位类Unit和枚举类Enume在内的类;其中,物项类型类Class对所有的物项类型进行统一建模,物项类Item对所有的物项进行统一的建模,单位类Unit对所有的单位进行统一建模,枚举类Enume对所有的枚举值进行统一建模;
S2、建立属性名类ParamName,对所有的实体的属性元数据进行统一建模;
S3、建立属性值类ParamValue,对所有的实体的属性值相关数据进行统一建模;
S4、建立关系名类RelatName,从关系一端物项的视角对所有的实体间关系的元数据进行统一的建模;
S5、建立关系值类RelatValue,从关系两端物项的视角对所有的实体间关系的关系值进行统一的建模;
S6、概念模型全部建立后,即可将概念模型转化为数据库结构的物理模型,其中概念模型中类转化为数据库中的数据表;类之间的引用联系,转化为数据表之间的主键-外键关系。
2.如权利要求1所述的物项属性参数的建模和存储方法,其特征在于,属性名类ParamName至少包括成员变量id、class、name、code、unit、dataType、enume和fields;其中,id是该属性元数据的标识码,变量类型是long或UUID;class是该属性元数据所从属的实体类,变量类型是步骤S1中建立的物项类型类Class;name是该属性的名称,变量类型是String;code是该属性的编码,变量类型是String;dataType是该属性的数据类型,变量类型是int或String;unit是该属性的单位,变量类型是S1建立的单位类Unit;enume是该属性的枚举值,变量类型是步骤S1中建立的枚举类Enume;fields是数组类型属性的列信息,变量类型为List<ParamName>。
3.如权利要求2所述的物项属性参数的建模和存储方法,其特征在于,用户可以增减所需的成员变量,以描述一个属性的元数据信息,但不包括该属性的属性值相关的成员变量。
4.如权利要求1所述的物项属性参数的建模和存储方法,其特征在于,属性值类ParamValue至少包括成员变量id、item、paramName、value、values、date、version、desFlow和QAFlow;其中,id是该属性值的标识码,变量类型是long或者UUID;item是该属性值所从属的实例物项,变量类型是步骤S1中建立的物项类Item;paramName是该属性值所对应的属性名元数据,变量类型是步骤S2中建立的属性名类ParamName;value是该属性值的具体数值,即对应单参数,变量类型是String;values也是该属性值的具体数值,即对应数组类型的参数,变量类型是JSONArray或String[][];date是该属性值的发布时间,变量类型是Date;version是该属性值的版本号,变量类型是Char;desFlow是该属性值的产生流程,QAFlow是该属性值的质保流程。
5.如权利要求1所述的物项属性参数的建模和存储方法,其特征在于,关系名类RelatName至少包括成员变量id、leftClass、name、code、oneToMany和rightCategory;其中,id是关系名元数据的标识符,变量类型是long或者UUID;leftClass是该关系的视角端物项所从属的物项类型类,变量类型是步骤S1中建立的物项类型类Class;name是该关系的名称,变量类型是String;code是该关系编码,变量类型是String;oneToMany是该关系的另一端所允许的最多物项实例数目,变量类型是int;rightCategory是该关系的另一端物项的物项类型的范畴,变量类型是int或String。
6.如权利要求1所述的物项属性参数的建模和存储方法,其特征在于,关系值类RelatValue至少包括成员变量leftItem、leftRelat、leftOrde、rightItem、rightRelat和rightOrder;其中,leftItem是关系的一端的物项,变量类型是步骤S1中建立的物项类Item;leftRelat是关系的一端的关系名元数据,变量类型是步骤S4中建立的关系名类RelatName;leftOrder是关系的一端的物项次序,变量类型是int;rightItem是关系的另一端的物项,变量类型是步骤S1中建立的物项类Item;rightRelat是关系的另一端的关系名元数据,变量类型是步骤S4中建立的关系名类RelatName;rightOrder是关系的另一端的物项次序,变量类型是int。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104873.XA CN109947741B (zh) | 2019-02-01 | 2019-02-01 | 一种物项属性参数的建模和存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104873.XA CN109947741B (zh) | 2019-02-01 | 2019-02-01 | 一种物项属性参数的建模和存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947741A CN109947741A (zh) | 2019-06-28 |
CN109947741B true CN109947741B (zh) | 2022-12-02 |
Family
ID=67007962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910104873.XA Active CN109947741B (zh) | 2019-02-01 | 2019-02-01 | 一种物项属性参数的建模和存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947741B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110711389B (zh) * | 2019-09-29 | 2023-03-07 | 上海莉莉丝科技股份有限公司 | 数据处理的方法、装置、设备和计算机可读介质 |
CN111198870B (zh) * | 2019-12-23 | 2024-04-02 | 浙江中控技术股份有限公司 | 一种过程装备的建模方法及*** |
CN112416949A (zh) * | 2020-12-15 | 2021-02-26 | 上海核工程研究设计院有限公司 | 一种基于数字化交付的结构数据的封装方法 |
CN113721897A (zh) * | 2021-08-03 | 2021-11-30 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于opm的建模方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129445A (ja) * | 1993-10-29 | 1995-05-19 | Hitachi Ltd | データベースファイルの論理構成の作成方法 |
CN103186628A (zh) * | 2011-12-31 | 2013-07-03 | 上海可鲁***软件有限公司 | 一种公共信息模型与关系型数据库之间的映射方法 |
CN105630500A (zh) * | 2015-12-25 | 2016-06-01 | 江苏东大金智信息***有限公司 | 一种用于数据处理的cim对象模型及其编程框架 |
CN108710660A (zh) * | 2018-05-11 | 2018-10-26 | 上海核工程研究设计院有限公司 | 一种数据库的物项属性参数建模和存储方法 |
-
2019
- 2019-02-01 CN CN201910104873.XA patent/CN109947741B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129445A (ja) * | 1993-10-29 | 1995-05-19 | Hitachi Ltd | データベースファイルの論理構成の作成方法 |
CN103186628A (zh) * | 2011-12-31 | 2013-07-03 | 上海可鲁***软件有限公司 | 一种公共信息模型与关系型数据库之间的映射方法 |
CN105630500A (zh) * | 2015-12-25 | 2016-06-01 | 江苏东大金智信息***有限公司 | 一种用于数据处理的cim对象模型及其编程框架 |
CN108710660A (zh) * | 2018-05-11 | 2018-10-26 | 上海核工程研究设计院有限公司 | 一种数据库的物项属性参数建模和存储方法 |
Non-Patent Citations (3)
Title |
---|
"数字城市"土地利用空间数据库建库方法研究;邓婧等;《中国山区土地资源开发利用与人地协调发展研究》;20100630;723-730页 * |
Models and Adaptive Architecture for Smart Data Management;Pierre De Vettor等;《 2015 IEEE 24th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises》;20150813;164-169页 * |
核电数字化设计体系的组成和数据管理;申屠军等;《仪器仪表用户》;20171108;68-72页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109947741A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947741B (zh) | 一种物项属性参数的建模和存储方法 | |
JP7419244B2 (ja) | 例によるetlルールの学習 | |
CN110300963B (zh) | 大规模数据储存库中的数据管理*** | |
US7970728B2 (en) | Dynamically building and populating data marts with data stored in repositories | |
US6970882B2 (en) | Unified relational database model for data mining selected model scoring results, model training results where selection is based on metadata included in mining model control table | |
CN102918530B (zh) | 数据集市自动化 | |
Stanescu et al. | Automatic mapping of MySQL databases to NoSQL MongoDB | |
WO2018051097A1 (en) | System for analysing data relationships to support query execution | |
US20110231359A1 (en) | Synchronization of relational databases with olap cubes | |
EP3513313A1 (en) | System for importing data into a data repository | |
US9665607B2 (en) | Methods and apparatus for organizing data in a database | |
US20090193039A1 (en) | Data driven system for data analysis and data mining | |
EP1585036A2 (en) | Management of parameterized database queries | |
US20080222129A1 (en) | Inheritance of attribute values in relational database queries | |
KR20060045622A (ko) | 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈 | |
CN103559189B (zh) | 基于元数据集成模型的电力仿真培训资源管理***及方法 | |
Reniers et al. | On the state of nosql benchmarks | |
US20090055418A1 (en) | Automatic cascading copy operations in a database with referential integrity | |
Sreemathy et al. | Data validation in ETL using TALEND | |
Reniers et al. | Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF | |
Prasath et al. | A new approach for cloud data migration technique using talend ETL tool | |
Chen | Database Design and Implementation | |
Nordeen | Learn SQL in 24 Hours | |
Soujanya et al. | Extensible markup language databases: a study | |
Haraty et al. | Relational Database Design Patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: No. 29 Hong Cao Road, Xuhui District, Shanghai Patentee after: Shanghai Nuclear Engineering Research and Design Institute Co.,Ltd. Address before: No. 29 Hong Cao Road, Xuhui District, Shanghai Patentee before: SHANGHAI NUCLEAR ENGINEERING RESEARCH & DESIGN INSTITUTE Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |