CN112163049B - 将业务对象映射为数据实体的方法及装置 - Google Patents
将业务对象映射为数据实体的方法及装置 Download PDFInfo
- Publication number
- CN112163049B CN112163049B CN202011055433.9A CN202011055433A CN112163049B CN 112163049 B CN112163049 B CN 112163049B CN 202011055433 A CN202011055433 A CN 202011055433A CN 112163049 B CN112163049 B CN 112163049B
- Authority
- CN
- China
- Prior art keywords
- attribute
- mapping
- data
- entity
- data entity
- 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
- 238000013507 mapping Methods 0.000 title claims abstract description 166
- 238000000034 method Methods 0.000 title claims abstract description 54
- 239000002131 composite material Substances 0.000 claims description 5
- 238000013499 data model Methods 0.000 abstract description 13
- 230000006399 behavior Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种将业务对象映射为数据实体的方法及装置,包括:基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别;基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数;将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段;基于所述第一数据实体和所述第二数据实体构建数据概念模型。上述方法及装置由于从业务层面向数据模型进行映射,因此能够让前期的软件开发与实际业务更加贴近,便于相关业务人员的使用。
Description
技术领域
本发明涉及数据处理技术,更具体的说,是涉及一种将业务对象映射为数据实体的方法及装置。
背景技术
在软件系统开发方面,由于面向对象作为一种新型的独具优越性的方法正引起全世界越来越广泛的关注和高度的重视,使得现在大部分企业级软件在开发过程中使用的是面向对象的开发方法。而在数据库开发方面,现在可以用于存储大量数据并进行复杂查询的数据库都是关系型数据库。
当使用一种面向对象的编程语言来进行应用开发时,从项目一开始就采用的是面向对象分析,面向对象设计,面向对象编程,但到了持久层数据库访问时,又必须重返关系数据库的访问方式,这个过程非常复杂繁琐。因此,需要ORM(Object Relational Mapping,对象关系映射)映射工具,把关系型数据库包装成面向对象的模型,以便于用户使用。
传统的ORM框架如MyBatis是从技术的层面将通过面向对象思想设计的JAVA程序对象映射到关系型数据库中,是完全的从技术上去映射,不能与业务系统实际的业务需要很好的融合,用户体验较差。
发明内容
有鉴于此,本发明提供如下技术方案:
一种将业务对象映射为数据实体的方法,包括:
基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别;
基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数;
将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段;
基于所述第一数据实体和所述第二数据实体构建数据概念模型。
可选的,所述基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,包括:
将所述业务对象按照一比一的比例映射为数据视图;
将所述数据视图按照一比一的比例映射为第一数据实体。
可选的,还包括:
将所述数据视图的数据视图属性映射成数据实体的属性。
可选的,所述将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段,包括:
将所述业务对象的自身属性映射成数据实体属性,将所述业务对象的多值属性映射成扩展数据实体,将所述业务对象的复合属性映射成数据实体及对应的数据实体关系实体,将不同业务对象间的继承关系映射成实体关系,将所述业务对象的枚举属性映射成枚举实体。
可选的,所述将所述业务对象的枚举属性映射成枚举实体,包括:
在所述业务对象的枚举属性为可变的或可自定义的属性时,将所述枚举属性映射成枚举属性实体;
在所述业务对象的枚举属性为固定值时,将所述枚举属性映射到一个公共枚举数据实体。
可选的,还包括:
若一个属性存在多值属性,将所述多值属性映射成所述属性对应的第二数据实体的从属关联数据实体;
确定所述从属关联数据实体是否已存在;
若存在,确定所述从属关联数据实体是否需要变更;
若需要,则将最新映射成的从属关联数据实体替换原有的从属关联数据实体。
可选的,还包括:
在所述从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体。
可选的,还包括:
对扩展属性超过第一数量且与自身属性有总分关系的分关系属性部分,将其映射成从属关联数据实体,并对该从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体。
可选的,还包括:
将所述业务对象的标识号属性映射为所述第一数据实体的业务主键。
一种将业务对象映射为数据实体的装置,包括:
对象类别确定模块,用于基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别;
第一映射模块,用于基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数;
第二映射模块,用于将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段;
模型构建模块,用于基于所述第一数据实体和所述第二数据实体构建数据概念模型。
经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种将业务对象映射为数据实体的方法及装置,包括:基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别;基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数;将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段;基于所述第一数据实体和所述第二数据实体构建数据概念模型。上述方法及装置由于从业务层面向数据模型进行映射,因此能够让前期的软件开发与实际业务更加贴近,便于相关业务人员的使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种业务对象映射为数据实体的方法流程图;
图2为本发明实施例公开的将业务对象映射为数据实体的思路流程图;
图3为本发明实施例公开的将业务对象映射为数据实体的一种整体逻辑实现图;
图4为本发明实施例公开的一种复杂业务对象的映射逻辑实现图;
图5为本发明实施例公开的一种将业务对象映射为数据实体的装置的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
业务对象:业务对象是企业领域用来描述业务概念的语义对象,这些对象与计算设施和技术实现细节无关,业务活动可以用一系列相互协作的业务对象加以描述,业务对象不一定是计算对象。如客户、产品、订单、银行账户等都是业务领域的概念,都可以用业务对象表示。
业务对象用一种高层次的观点表达业务概念,从而更完全地反映业务的本质。
概念模型:是一种面向用户、面向客观世界的模型,主要用来描述世界的概念化结构,它是数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统(Database ManagementSystem,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
数据模型:是数据特征的抽象。数据(Data)是描述事物的符号记录,模型(Model)是现实世界的抽象。数据模型从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供了一个抽象的框架。
数据实体:实体是数据和行为的结合体,独立维护与实体相关的业务数据和业务逻辑。实体具有唯一的身份标识,可持续变化,持续修改,但在实体的整个生命周期中标识都是不变的。如:订单、商品
属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等。
联系:实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系,另一种是实体之间的联系。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例公开的一种业务对象映射为数据实体的方法流程图,参见图1所示,业务对象映射为数据实体的方法可以包括:
步骤101:基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别。
本实施例中,可以将业务对象划分为不同的业务对象类别,例如分为简单业务对象和复杂业务对象,针对不同类别的业务对象,后续的对象实体映射的方式或规则也存在差异。
具体的,可以分析业务对象所包含的业务含义,并且确定该业务对象所包含的业务对象源,将这些业务源对象按照一定分类,通过前述业务含义和业务源对象的分类将前述业务对象分为简单业务对象和复杂业务对象。其中的简单和复杂是相对而言的,具体可根据实际场景需要确定类别划分标准。
步骤102:基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数。
由于业务对象是可以相对完整表达一个业务的对象,而数据实体是用于数据库存储的一个对象,可以一个对象映射为1个实体,但是从数据库存储的角度来看这样存储效率不高,实体里的字段冗余(可以理解为无用的字段)过高。因此本实施例中,通过业务对象的分类及其业务含义综合考虑来分析判断将业务对象映射为几个第一数据实体。其中的第一数据实体指业务对象本身映射成为的数据实体。
步骤103:将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段。
除了对业务对象本身进行对象实体映射外,还需要对业务对象的属性进行对象实体映射。根据具体的业务对象中属性的不同,可以将其属性分为:普通属性(可理解为业务对象的自身属性)、简单多值属性、复杂多值属性、枚举属性等,本实施例中,需要将这些属性以及其和业务对象之间的关系,按照一定规则映射成为新的数据实体或数据实体中的字段。本实施例中,将业务对象属性映射成的数据实体称为第二数据实体。
步骤104:基于所述第一数据实体和所述第二数据实体构建数据概念模型。
通过以上步骤后形成将面向对象设计方法形成的业务对象映射到数据概念模型上,后续即可继续常规的数据模型建设。
图2为本发明实施例公开的将业务对象映射为数据实体的思路流程图,可结合图2理解上述实施例内容。
本实施例所述将业务对象映射为数据实体的方法,从业务层面上将业务对象映射成为数据模型中的数据实体,能够让前期的软件开发与实际业务更加贴近,便于相关业务人员的使用。实现中在软件设计层面直接应用了面向对象的理念和视角,让业务的逻辑更加集中,让业务设计更加合理。
上述实施例中,所述基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,可以包括:将所述业务对象按照一比一的比例映射为数据视图;将所述数据视图按照一比一的比例映射为第一数据实体。
进一步的,在前述内容技术上,将业务对象映射为数据实体的方法除上述各个步骤外,还可以包括:将所述数据视图的数据视图属性映射成数据实体的属性。
其中,业务对象是业务层面的视角,数据视图是数据层面的视角,数据视图的处理过程是从业务层面的业务对象到数据层面的数据实体映射中不能缺少的一种过程。因为一个业务对象可以映射为多个数据实体,因此本实施例中的数据视图是指将要映射的数据实体的一个集合;而对于将数据视图按照一比一的比例映射为第一数据实体,指的是将这个数据视图看作是一个数据实体,再根据这个数据实体的属性去分别映射。
上述实施例中,所述将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段,可以包括:将所述业务对象的自身属性映射成数据实体属性,将所述业务对象的多值属性映射成扩展数据实体,将所述业务对象的复合属性映射成数据实体及对应的数据实体关系实体,将不同业务对象间的继承关系映射成实体关系,将所述业务对象的枚举属性映射成枚举实体。
其中的自身属性及业务对象的普通属性,比如“客户”这个业务对象,里面的客户名称、客户编号、客户性别等属性可以映射为“客户信息”这个数据实体的客户名称、客户编号、客户性别等属性。
其中的多值属性例如可以为“联系电话”这个属性,一个客户的联系电话可能有办公电话、家庭电话、手机号码等,手机号也可能有多个;这种属性不能单独的作为数据实体的一个属性,因为一条记录存不下,需要把联系电话这个属性映射为一个数据实体,然后把办公电话、家庭电话等作为该数据实体的属性。
其中的复合属性是相对比较复杂的属性,其本身就是一个实体,但是在业务对象阶段作为了属性存在。比如业务对象“电能表记录”中有一个附件的属性,该属性包含了很多东西,附件的名称、附件的地址、附件的编号等等,在映射到数据实体时需要将其单独拆出来,作为一个数据实体而不能再作为属性存在。
其中的继承关系,涉及父类和子类两个主体,其中子类包含了父类的所有属性,而子类还有自己的独有属性。比如表计设备和电能表这两个实体,表计设备就是父类,电能表就是子类,如果表计设备里面有设备编号、设备名称这两个属性,电能表里面必然也有设备编号、设备名称这两个属性,同时电能表实体里面也有自己独有的属性,比如有功电能和无功电能等。
其中的枚举属性,即该属性由枚举值构成,比如能源类型这条属性,它的值可以是1或者2,其中1代表电能,2代表核能。
图3为本发明实施例公开的将业务对象映射为数据实体的一种整体逻辑实现图,可结合图3理解前述内容。
实现中,复杂业务对象通过对象实体映射,映射成为业务数据实体,对于自然属性与扩展属性比较多的,可以将自然属性与扩展属性拆分为出多个数据实体,一并构建与之对应的盖面数据模型,逐步细化成逻辑数据模型和物理数据模型。如图4所示,为一种复杂业务对象的映射逻辑实现图。
其中的自然属性是指该对象本身应该具有的属性,而扩展属性是指本质是其他对象的属性,比如电能表里面有电能表示数和电缆型号两条属性,电能表示数就是自然属性,而电缆型号其实是电缆这个实体里的属性,只不过在查看电能表这个实体的时候需要看一下电缆的型号,所以电缆型号属于扩展属性。
上述实施例中,所述将所述业务对象的枚举属性映射成枚举实体,可以包括:在所述业务对象的枚举属性为可变的或可自定义的属性时,将所述枚举属性映射成枚举属性实体;在所述业务对象的枚举属性为固定值时,将所述枚举属性映射到一个公共枚举数据实体。
上述实施例中,将业务对象映射为数据实体的方法还可以包括:若一个属性存在多值属性,将所述多值属性映射成所述属性对应的第二数据实体的从属关联数据实体;确定所述从属关联数据实体是否已存在;若存在,确定所述从属关联数据实体是否需要变更;若需要,则将最新映射成的从属关联数据实体替换原有的从属关联数据实体。
进一步的,还可以包括:在所述从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体。
上述实施例中,将业务对象映射为数据实体的方法还可以包括:对扩展属性超过第一数量且与自身属性有总分关系的分关系属性部分,将其映射成从属关联数据实体,并对该从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体。
进一步的,还可以包括:将所述业务对象的标识号属性映射为所述第一数据实体的业务主键。
为了便于更加清楚的了解业务对象的映射规则,下面针对简单业务对象、复杂业务对象、业务对象间关系和业务对象行为分别作出梳理介绍。
1、简单业务对象
(1)业务对象直接一比一映射成数据视图(DataView),从业务视角映射到数据(结构)视角;
(2)数据视图直接一比一映射成数据实体(Data Entity);
(3)其中的枚举属性值若是可变的或可自定义的,则映射成枚举数据实体(DataEntity);若枚举属性值是固定的,则将其映射到一个公共枚举数据实体(Data Entity);
(4)若业务对象为重要的、核心的业务对象或者对应的业务源对象具有历史属性,则按照(1)、(2)、(3)同样映射出一套对应的历史数据实体,其名称后缀加上”_HS”,以示区分;历史数据实体,是指按照时间来区分的另一套一样的数据实体,也就是说这个历史数据实体跟当前的数据实体是一样的,但是所存储的内容不一样,历史数据实体存储的是以前的数据,用来查询所用;
(5)若业务对象对应的业务源对象具有变更前属性,则按照(1)、(2)、(3)同样映射出一套对应的变更前数据实体,其名称后缀加上”_BF”,以示区分;变更前属性是指一些比较核心的业务对象,其属性里的内容一旦变更就需要记录下来,是按照变更状态来区分的另一套数据实体,类似于历史数据实体,变更前数据实体跟当前数据实体是一样的,但是所储存的内容不一样,一旦某个状态发生改变,就需要把这个变更发生前的数据迁移到变更前数据实体中;
(6)数据视图属性映射成数据实体(Data Entity)的属性;
(7)数据视图属性的数据类型映射成对应的数据类型,字符、数值、日期、文本对应映射,数据类型的长度、精度等在逻辑模型、物理模型中转换;
(8)业务对象基本属性中的”对象编号”属性(若具有),映射成数据实体的业务主键;
(9)业务对象属性按照重要、核心顺序由高到低的映射,原则上“状态”类属性置于自然属性最后。
2.复杂业务对象
(1)业务对象直接一比一映射成数据视图(DataView),从业务视角映射到数据(结构)视角;
(2)数据视图直接一比一映射成数据实体(Data Entity);
(3)其中的枚举属性值若是可变的或可自定义的,则映射成枚举数据实体(DataEntity);若枚举属性值是固定的,则将其映射到一个公共枚举数据实体(Data Entity);
(4)对于属性存在简单多值属性的,则映射成从属关联数据实体(Data Entity),若对应的从属关联数据实体已存在,则检查是否需要变更,需要变更时再变更该从属关联数据实体;
(5)对于属性存在复杂多值属性的,则映射成从属关联数据实体(Data Entity),若对应的从属关联数据实体已存在,则检查是否需要变更,需要变更时再变更该从属关联数据实体;
(6)复杂多值属性的从属关联数据实体与该数据实体之间映射出对应的关联数据实体;
(7)对扩展属性较多且与自然属性有总分关系的分关系属性部分,映射成从属关联数据实体,并对该从属关联数据实体与其数据实体之间映射出对应的关联数据实体;当存在多组总分关系的扩展属性时,有几组总分关系扩展属性则映射出几个从属关联数据实体,同时映射两者之间的关联数据实体;
(8)若存在对象属性的,则检查该属性对应的对象是否已映射成数据实体,若不存在,则将其映射成对应的数据实体,当该对象是复杂业务对象时,则在两者之间再映射一个关联数据实体,反之则映射一个二者之间的关联关系;例如一个属性映射为3个数据实体,那么“二者”指的就是这3个数据实体中的2个;由于是复杂业务对象时,可能映射出的数据实体之间存在多对多关系,这种多对多关系难以通过单一的关联关系来表达,因此需要建立一个关联数据实体,这个关联数据实体就是指这个复杂的多对多关系;
(9)若业务对象自然属性较多且具有相对静态与动态属性并存时,则将其动态属性部分拆分映射出一个对应的“运行态”数据实体,两者之间构建一个关联关系;比如电能表这个对象,里面有静态属性(在以后的运行中不会发生改变的):生产厂家、测量精度等,也有动态属性(运行中会变化的):电压读数,电流读数、电量读数。“两者”从宏观上看可以是指静态熟悉的集合跟动态属性的集合这两者,“两者”从微观上看也可以是静态属性与动态属性中具体的两个属性映射为实体的两者;
(10)若业务对象为重要的、核心的业务对象或者对应的业务源对象具有历史属性,则按照(1)、(2)、(3)、(4)、(5)、(6)、(7)、(8)、(9)同比例映射出一套对应的历史数据实体,其名称后缀加上”_HS”,以示区分;
(11)若业务对象对应的业务源对象具有变更前属性,则按照(1)、(2)、(3)、(4)、(5)、(6)、(7)、(8)、(9)同比例映射出一套对应的变更前数据实体,其名称后缀加上”_BF”,以示区分;
(12)数据视图属性映射成数据实体(Data Entity)的属性;
(13)数据视图属性的数据类型映射成对应的数据类型,字符、数值、日期、文本对应映射,数据类型的长度、精度等在逻辑模型、物理模型中转换;
(14)业务对象基本属性中的”对象编号”属性(若具有),映射成数据实体的业务主键;
(15)业务对象属性按照重要、核心顺序由高到低的映射,原则上“状态”类属性置于自然属性最后。
3.业务对象间关系
(1)若两个业务对象间存在依赖关系,则将将其依赖关系映射成关联关系或关联数据实体,其中依赖对象为关联者,被依赖的对象为被关联者;
(2)若两个业务对象间存在关联关系,则将将其关联关系映射成关联关系或关联数据实体,其中关联对象为关联者,被关联的对象为被关联者;
(3)若两个业务对象间存在聚合关系,则将将其聚合关系映射成关联关系或关联数据实体,其中聚合对象为关联者,被聚合的对象为被关联者;
(4)若两个业务对象间存在组合关系,则将将其组合关系映射成关联关系或关联数据实体,其中组合对象为关联者,被组合的对象为被关联者;
(5)若两个业务对象间存在继承关系,则将将其继承关系映射成关联关系或关联数据实体,其中继承对象为关联者,被继承的对象为被关联者;
(6)若两个业务对象间存在继承关系,则将被继承对象的全部属性映射到继承对象对应的数据实体,映射方法同简单业务对象或复杂业务对象属性映射;
(7)若两个业务对象存在简单从属关系,可将此关系映射成外键关系。
4.业务对象行为
(1)业务对象行为原则上映射为数据实体(Data Entity,对应数据库表Table)的数据库操作,包括DDL(Data Definition Language数据定义语言)、DML(DataManipulation Language数据操控语言)和DCL(Data Control Language数据控制语句)操作;
(2)业务对象的创建行为映射为数据实体(Data Entity,对应数据库表Table)的“Create Table”操作;
(3)业务对象的新增行为映射为数据实体(Data Entity,对应数据库表Table)的“Insert Record”操作;
(4)业务对象的变更行为映射为数据实体(Data Entity,对应数据库表Table)的“Update Record”或“Alter Table”操作;
(5)业务对象的删除行为映射为数据实体(Data Entity,对应数据库表Table)的“Delete Record”操作;
(6)业务对象的查询行为映射为数据实体(Data Entity,对应数据库表Table)的“Select Record”操作;
(7)业务对象的销毁行为映射为数据实体(Data Entity,对应数据库表Table)的“Drop Table”操作;
(8)业务对象的校验行为映射为数据实体(Data Entity,对应数据库表Table)的“Check Table”操作(包括主键约束校验、外键约束校验、非空值校验、唯一值索引校验、触发器校验、数据库表及属性名称校验、授权校验、自定义校验规则校验等)。
关于业务对象到数据实体的对象实体映射,需要基于以下映射原则实现:
1.业务对象映射的完整性
业务对象通过对象实体映射后,保持映射前后的完全、完整,对象不丢、属性不落、关系不少;
2.业务对象映射的唯一性
两个不同的业务对象不能映射到同一个数据实体名称,一个业务对象至少有一个与之对应的数据实体与之对应,映射后的数据实体名称原则上不应相同(相同的应当合并,以保持唯一性);
3.业务对象映射最少原则
业务对象映射过程中,不过度扩展映射,能用最小数据实体表达的,就用最少的数据实体;
4.业务对象映射不失真原则
业务对象映射前后应当保持业务含义的一致性,映射出的数据实体名称需要是业务含义清晰的,能够见名知意,不应有二异性;
5.业务对象映射准确性原则
业务对象映射到数据实体过程中,应当是精准的、可读性高的,映射后的数据实体应当是纯粹的、单一的,一个数据实体原则上表达一种业务数据存储而不应当多种业务数据混杂,让数据实体净化、清晰、可读、稳定。
本申请实施例公开的将业务对象映射为数据实体的方法,具有以下特点:简单,以最基本的形式建模数据;传达性,将数据库结构通过数据实体的形式来描述更加容易理解,易于将结构的东西通过文档化来描述与保存。;精确性,基于数据模型创建正确标准化的结构。同时相对于传统的ORM框架,本申请针对业务系统的设计可以使其更高效,减少无用的冗余映射,增加系统运行的速度;更容易实现标准规范统一的开发模式,也便于跟其他系统的交互;让开发人员和业务人员更加关注业务,只需关注业务对象关系和业务逻辑关系,降低了人员要求,不需要对技术层面有过多要求。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
图5为本发明实施例公开的一种将业务对象映射为数据实体的装置的结构示意图,参见图5所示,将业务对象映射为数据实体的装置50可以包括:
对象类别确定模块501,用于基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别。
第一映射模块502,用于基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数。
第二映射模块503,用于将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段。
模型构建模块504,用于基于所述第一数据实体和所述第二数据实体构建数据概念模型。
本实施例所述将业务对象映射为数据实体的装置,从业务层面上将业务对象映射成为数据模型中的数据实体,能够让前期的软件开发与实际业务更加贴近,便于相关业务人员的使用。实现中在软件设计层面直接应用了面向对象的理念和视角,让业务的逻辑更加集中,让业务设计更加合理。
上述将业务对象映射为数据实体的装置中各个模块的具体实现,可参见方法实施例中相关部分的内容,在此不再重复赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种将业务对象映射为数据实体的方法,其特征在于,包括:
基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别;
基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数;
将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段;
基于所述第一数据实体和所述第二数据实体构建数据概念模型;
所述将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段,包括:
将所述业务对象的自身属性映射成数据实体属性,将所述业务对象的多值属性映射成扩展数据实体,将所述业务对象的复合属性映射成数据实体及对应的数据实体关系实体,将不同业务对象间的继承关系映射成实体关系,将所述业务对象的枚举属性映射成枚举实体;
所述将所述业务对象的枚举属性映射成枚举实体,包括:
在所述业务对象的枚举属性为可变的或可自定义的属性时,将所述枚举属性映射成枚举属性实体;
在所述业务对象的枚举属性为固定值时,将所述枚举属性映射到一个公共枚举数据实体;
还包括:
若一个属性存在多值属性,将所述多值属性映射成所述属性对应的第二数据实体的从属关联数据实体;
确定所述从属关联数据实体是否已存在;
若存在,确定所述从属关联数据实体是否需要变更;
若需要,则将最新映射成的从属关联数据实体替换原有的从属关联数据实体;
还包括:
在所述从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体;
还包括:
对扩展属性超过第一数量且与自身属性有总分关系的分关系属性部分,将其映射成从属关联数据实体,并对该从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体。
2.根据权利要求1所述的将业务对象映射为数据实体的方法,其特征在于,所述基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,包括:
将所述业务对象按照一比一的比例映射为数据视图;
将所述数据视图按照一比一的比例映射为第一数据实体。
3.根据权利要求2所述的将业务对象映射为数据实体的方法,其特征在于,还包括:
将所述数据视图的数据视图属性映射成数据实体的属性。
4.根据权利要求1-3任一项所述的将业务对象映射为数据实体的方法,其特征在于,还包括:
将所述业务对象的标识号属性映射为所述第一数据实体的业务主键。
5.一种将业务对象映射为数据实体的装置,其特征在于,包括:
对象类别确定模块,用于基于业务对象的业务含义以及构成所述业务对象的业务源对象确定所述业务对象的业务对象类别;
第一映射模块,用于基于所述业务对象类别和所述业务含义将所述业务对象映射为N个第一数据实体,其中N为正整数;
第二映射模块,用于将所述业务对象的属性基于其属性类别以及其与所述业务对象之间的关系映射为第二数据实体或所述第二数据实体中的字段;
模型构建模块,用于基于所述第一数据实体和所述第二数据实体构建数据概念模型;
所述第二映射模块具体用于:
将所述业务对象的自身属性映射成数据实体属性,将所述业务对象的多值属性映射成扩展数据实体,将所述业务对象的复合属性映射成数据实体及对应的数据实体关系实体,将不同业务对象间的继承关系映射成实体关系,将所述业务对象的枚举属性映射成枚举实体;
所述第二映射模块将所述业务对象的枚举属性映射成枚举实体,包括:
所述第二映射模块在所述业务对象的枚举属性为可变的或可自定义的属性时,将所述枚举属性映射成枚举属性实体;在所述业务对象的枚举属性为固定值时,将所述枚举属性映射到一个公共枚举数据实体;
所述将业务对象映射为数据实体的装置还用于:
若一个属性存在多值属性,将所述多值属性映射成所述属性对应的第二数据实体的从属关联数据实体;
确定所述从属关联数据实体是否已存在;
若存在,确定所述从属关联数据实体是否需要变更;
若需要,则将最新映射成的从属关联数据实体替换原有的从属关联数据实体;
所述将业务对象映射为数据实体的装置还用于:
在所述从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体;
所述将业务对象映射为数据实体的装置还用于:
对扩展属性超过第一数量且与自身属性有总分关系的分关系属性部分,将其映射成从属关联数据实体,并对该从属关联数据实体与其对应的第二数据实体之间映射出对应的关联数据实体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011055433.9A CN112163049B (zh) | 2020-09-29 | 2020-09-29 | 将业务对象映射为数据实体的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011055433.9A CN112163049B (zh) | 2020-09-29 | 2020-09-29 | 将业务对象映射为数据实体的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112163049A CN112163049A (zh) | 2021-01-01 |
CN112163049B true CN112163049B (zh) | 2024-04-09 |
Family
ID=73861417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011055433.9A Active CN112163049B (zh) | 2020-09-29 | 2020-09-29 | 将业务对象映射为数据实体的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112163049B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870746A (en) * | 1995-10-12 | 1999-02-09 | Ncr Corporation | System and method for segmenting a database based upon data attributes |
CN1704900A (zh) * | 2004-06-03 | 2005-12-07 | 微软公司 | 基于具有完全灵活性的自动化生成用户界面的方法和装置 |
CN1828594A (zh) * | 2005-02-28 | 2006-09-06 | 微软公司 | 对象关系型数据的数据模型 |
CN101017432A (zh) * | 2006-12-06 | 2007-08-15 | 武汉大学 | 一种构件库管理方法 |
CN101576921A (zh) * | 2009-06-15 | 2009-11-11 | 用友软件股份有限公司 | 数据查询系统和数据查询引擎装置 |
CN101989272A (zh) * | 2009-07-31 | 2011-03-23 | 上海杉达学院 | 多重实体的关联及映射系统 |
US8356042B1 (en) * | 2011-01-18 | 2013-01-15 | The Pnc Financial Services Group, Inc. | Business constructs |
CN109753537A (zh) * | 2019-01-25 | 2019-05-14 | 中国人民大学 | 一种从关系数据到图数据的交互式数据迁移方法 |
CN109840256A (zh) * | 2019-03-05 | 2019-06-04 | 山东浪潮通软信息科技有限公司 | 一种基于业务实体的查询实现方法 |
CN110633331A (zh) * | 2019-09-12 | 2019-12-31 | 金蝶蝶金云计算有限公司 | 一种关系数据库中数据提取方法、系统及相关设备 |
CN110992207A (zh) * | 2019-12-05 | 2020-04-10 | 北京中电普华信息技术有限公司 | 业务对象确定方法和装置 |
CN111080479A (zh) * | 2019-12-12 | 2020-04-28 | 北京中电普华信息技术有限公司 | 一种电网统一数据模型的创建方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529757B2 (en) * | 2004-12-22 | 2009-05-05 | Microsoft Corporation | Decomposition of tasks into extensible and customizable business activities |
US8307012B2 (en) * | 2006-02-28 | 2012-11-06 | Sap Ag | Schema mapping and data transformation on the basis of a conceptual model |
US8458226B2 (en) * | 2010-06-15 | 2013-06-04 | Microsoft Corporation | Automating evolution of schemas and mappings |
US8671105B2 (en) * | 2010-09-03 | 2014-03-11 | Tata Consultancy Services Limited | Data integration using conceptual modeling framework |
US8762934B2 (en) * | 2010-10-15 | 2014-06-24 | Serghei Sarafudinov | Method of extensible business object modeling and generation of system artifacts from the models |
-
2020
- 2020-09-29 CN CN202011055433.9A patent/CN112163049B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870746A (en) * | 1995-10-12 | 1999-02-09 | Ncr Corporation | System and method for segmenting a database based upon data attributes |
CN1704900A (zh) * | 2004-06-03 | 2005-12-07 | 微软公司 | 基于具有完全灵活性的自动化生成用户界面的方法和装置 |
CN1828594A (zh) * | 2005-02-28 | 2006-09-06 | 微软公司 | 对象关系型数据的数据模型 |
CN101017432A (zh) * | 2006-12-06 | 2007-08-15 | 武汉大学 | 一种构件库管理方法 |
CN101576921A (zh) * | 2009-06-15 | 2009-11-11 | 用友软件股份有限公司 | 数据查询系统和数据查询引擎装置 |
CN101989272A (zh) * | 2009-07-31 | 2011-03-23 | 上海杉达学院 | 多重实体的关联及映射系统 |
US8356042B1 (en) * | 2011-01-18 | 2013-01-15 | The Pnc Financial Services Group, Inc. | Business constructs |
CN109753537A (zh) * | 2019-01-25 | 2019-05-14 | 中国人民大学 | 一种从关系数据到图数据的交互式数据迁移方法 |
CN109840256A (zh) * | 2019-03-05 | 2019-06-04 | 山东浪潮通软信息科技有限公司 | 一种基于业务实体的查询实现方法 |
CN110633331A (zh) * | 2019-09-12 | 2019-12-31 | 金蝶蝶金云计算有限公司 | 一种关系数据库中数据提取方法、系统及相关设备 |
CN110992207A (zh) * | 2019-12-05 | 2020-04-10 | 北京中电普华信息技术有限公司 | 业务对象确定方法和装置 |
CN111080479A (zh) * | 2019-12-12 | 2020-04-28 | 北京中电普华信息技术有限公司 | 一种电网统一数据模型的创建方法及装置 |
Non-Patent Citations (4)
Title |
---|
一种可扩展属性的实体建模与仿真方法;王传鹏;梁晓辉;谢可;;系统仿真学报(第03期);542-546+585 * |
基于面向服务业务流程管理的系统架构建模;李润晔;倪枫;刘姜;钟贤欣;全启宸;周彦琪;;上海理工大学学报(第06期);605-616 * |
电力业务中台技术标准体系研究;戴永新等;供用电;第37卷(第3期);34-38 * |
电力企业数据模型建模方法研究;景栋盛;王芳;;计算机与现代化(第05期);45-47+51 * |
Also Published As
Publication number | Publication date |
---|---|
CN112163049A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11914620B2 (en) | System and method for aggregating values through risk dimension hierarchies in a multidimensional database environment | |
US11593402B2 (en) | System and method for enabling multiple parents with weights in a multidimensional database environment | |
US9218409B2 (en) | Method for generating and using a reusable custom-defined nestable compound data type as database qualifiers | |
EP2784700A2 (en) | Integration of transactional and analytical capabilities of a database management system | |
An et al. | Methodology for automatic ontology generation using database schema information | |
US9495475B2 (en) | Method of representing an XML schema definition and data within a relational database management system using a reusable custom-defined nestable compound data type | |
US9201700B2 (en) | Provisioning computer resources on a network | |
US10909160B2 (en) | Digital duplicate | |
CN112084177B (zh) | 基于数据采集治理及挖掘分析的数据池应用方法及装置 | |
Vajk et al. | Automatic NoSQL schema development: A case study | |
US20100131565A1 (en) | Method for creating a self-configuring database system using a reusable custom-defined nestable compound data type | |
US9032362B2 (en) | System and method for generating high performance calculators for calculation graphs | |
CN115329504A (zh) | 一种基于复杂产品结构的bom构建方法 | |
CN110019554B (zh) | 数据驱动型应用的数据模型、数据建模系统和方法 | |
CN112527918B (zh) | 一种数据处理的方法和装置 | |
Desamsetti | Relational Database Management Systems in Business and Organization Strategies | |
Suri et al. | A comparative study between the performance of relational & object oriented database in Data Warehousing | |
CN112163049B (zh) | 将业务对象映射为数据实体的方法及装置 | |
Sheng et al. | Application of ontology in e-government | |
Zdepski et al. | An Approach for Modeling Polyglot Persistence. | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
Quasthoff et al. | Design pattern for object triple mapping | |
Wu et al. | Based on Web university library management system's modeling research | |
Lim et al. | Semantics preserving MapReduce process for RDB to RDF transformation | |
Ilkhomjon et al. | About Database (Db) |
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 |