数据模型概述
数据模型是对企业的数据元素及其彼此之间关系的可视化表示。 模型通过帮助在相关业务流程的上下文中定义和精心组织数据,可以为开发有效的信息系统提供支持。 借助这些模型,业务和技术资源可协同决定整个组织中数据的存储、访问、共享、更新和使用方式。
基于元模型驱动(2种元模型实体和6种元模型关系),工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)的数据模型包括数据实体、关系实体和接口模型三种类型。应用责任人或应用开发人员可通过图形化方式进行建模,无需关心底层数据表的设计,通过创建数据模型即可定义应用的数据模型格式。
数据实体
实体指现实世界中客观存在的并可以相互区分的对象或事物,可以是具体的人、事或物,也可以是抽象的概念或联系。这些独立事物个体的特性称为实体属性,每个实体都具有多个属性。在xDM-F中,这些独立的事物个体都可以看做是数据实体。数据实体是xDM-F原子接口的承载体之一,用于定义数据对象的基本信息、业务属性以及配置所需的功能(如基础数据服务、树形结构、生命周期管理等)。
数据实体按元模型类型的维度分为如表1所示类型。
数据实体按模型类型的维度分为如表2所示类型。
类型 |
说明 |
---|---|
实体模型 |
指具体的、有形的、实际存在的实体材料,例如文档、产品、汽车零部件等。 可在设计态创建数据实体时选择。实体模型的数据实体会生成一个物理表,可用于运行态扩展子模型。 |
抽象模型 |
指通过语言、符号、图表、数字等抽象形式反映实体内在联系和特征的模型。 可在设计态创建数据实体时选择。抽象模型的数据实体不会生成物理表,但可在创建数据实体时,被数据实体继承。即创建数据实体时,“父模型”可以选择抽象模型的数据实体。 |
扩展模型 |
当实体模型的属性不能满足实际业务需求,需要添加新属性但不能修改既有模型结构时,可通过扩展模型来扩展属性。 在运行态创建的数据实体均为扩展模型,且该扩展模型作为“父模型”对应实体模型的子类,与父模型共享存储,只允许添加扩展属性。 创建扩展模型数据实体时,“父模型”只能选择具有“扩展类型”功能的实体模型。 |
关系实体
关系实体用于描述两个或更多数据实体相互如何关联,是xDM-F原子接口的承载体之一。
基于xDM-F支持的数据关系,提供如下关系类型:
类型 |
说明 |
---|---|
1:N组合关系 |
又称“参考关系”,主要用于为对象之间建立1:N或主外键关系,可分为:
在创建属性时,将属性的“类型”定义为“参考对象”,则属性对应的数据模型具有参考关系。 适用于传统主外键数据的关联。例如,一个部门可以有多个员工,它们之间为一对多聚合关系;公司是部门的父项,部门随着公司而存在,它们之间为一对多组合关系。
说明:
关系实体和M-V模型实体只支持定义非组合关系的参考对象属性。 |
1:N聚合关系 |
|
M:N关系 |
即多对多关系,用于为数据实体/接口模型建立M:N关系。 创建关系实体时,“关系类型”为“多对多”的关系实体均具有此关系能力。可为应用运行态提供:创建/删除关系实体实例,查询关系实体,获取关联实体/被关联实体清单等操作。 适用于为不同数据实体/接口模型建立多对多关系。例如,在汽车电器相关的零件开发中,工程师和零件开发为多对多关系。一个工程师可进行多个零件开发,一个零件可由多个工程师进行开发。 |
M:xN关系 |
又称“单边不确定关系”,用于为一边不确定的数据实体/接口模型建立M:N关系,不确定的数据实体或接口模型(目标端)默认为基类抽象模型“basicObject”。 创建关系实体时,“关系类型”为“单边不确定”的关系实体均具有此关系能力。可为应用运行态提供:创建/删除关系实体实例,查询关系实体,查询目标端对象等操作。 适用于基础数据与业务数据的关联。例如,标签数据与业务数据的关联。标签可给任何对象打标签,在创建实例时确定打标签的目标端对象。 |
UsageLink使用关系 |
又称“多叉树关系”,适用于实现复杂的数据结构的存储,高效地查找数据,方便管理节点数据的场景。例如,部件和部件之间的使用和被使用关系。一辆汽车有四个轮子,汽车和轮胎都是部件,创建一个关系实体承载汽车和轮胎的使用关系,并在关系实体上定义一个“使用数量”属性用于标识一辆汽车使用了四个轮胎。 |
自循环树形关系 |
又称“树形结构”,是数据对象之间存在着“一对多”的树形关系的数据结构,适用于数据间上下级的关联。例如,企业的组织结构、软件应用的结构、工作计划、项目管理等。 创建数据实体/关系实体时,通过勾选xDM-F内置的“树形结构”、“分类管理”、“文件夹管理”等能力实现。 |
接口模型
xDM-F内置了多种功能,在创建数据实体/关系实体时,不仅自具备从xDM-F继承的基本功能能力,还可根据实际业务需求勾选xDM-F提供的可选功能,每个功能会继承一个或者多个属性。每勾选一个功能,该实体会自动生成相应功能继承的一个或者多个属性。当xDM-F内置的功能无法满足您实际业务需求时,可通过接口模型进行定义。自定义的接口模型将作为自定义功能,在创建数据实体时,被数据实体通过勾选自定义功能的方式被继承和使用。
在已经确定的应用数据模型结构上,需要对具有相似功能、相似结构、相同属性的数据模型进行归一化处理,可通过接口模型定义这些相似功能、相似结构和相同属性。为这些数据模型提供了标准接口,降低参数的重复性,方便管理模型属性。
例如机械产品中,各部件间有一部分是通过销、铆钉、螺栓等常用标准件直接连接,有一部分是通过联轴器、减速器等部件间接连接。尽管这些常用的零部件大多都已经实现系列化或标准化,但这些零部件易损坏,产品在多次更换过程中需要反复操作和记录。您可以分别创建包含这些具有相似功能的零部件接口模型,然后在创建数据实体时,勾选对应接口模型即可继承该接口模型的属性和关系。
使用说明
- 任何实体均可与xDM-F元模型建立关系。
- 单个数据模型(包括数据实体、关系实体和接口模型)下的属性数量不允许超过1664个。如果应用的数据库类型为mysql,则单个数据模型(包括数据实体、关系实体和接口模型)下,其属性总长度不允许超过16000个字符。
- 若数据实体与抽象模型建立关系实体,该抽象模型的所有子实体模型均建立或继承了关系。
- 若数据实体与存在扩展子模型的数据实体建立关系实体,该数据实体的所有扩展子模型均继承关系实体。
- 若数据实体与接口模型建立关系实体,引用该接口模型的所有数据实体均建立了关系(接口模型不能直接作为父模型被其他实体模型继承,需先在功能列表中添加)。