...
为了让读者更好的理解数据模型管理,我们将结合教学案例设备管理的培训进程逐步展开对数据模型管理的介绍,本章只介绍数据模型中属性管理和实体类管理的相关知识点。
...
数据库的基本概念
为了搞清楚数据模型的概念,先介绍一下数据保存的地方——数据库,根据百度百科的定义,数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库的发展有着悠久的历史,到本书成稿的时间为止,主流数据库类别有关系型数据库和非关系型数据库:
...
寄件人信息(表) | ||||||||
寄件人姓名 | 手机/固话 | 省市区 | 详细地址 | 地址标签 | 物品类型 | 内件规格 | 内件详情 | 物品重量 |
杨文文 | 13901201188 | 北京 | 北京市海淀区唐家岭新城12号楼 | 海淀区 | 文件资料 | 文件袋 | 信件 | 200g |
张建国 | 13651164493 | 北京 | 北京市海淀区北清路16号院 | 海淀区 | 衣服 | 小葙 | 包裹 | 500g |
王建 | 82797105 | 北京 | 北京市通州区 | 通州 | 文件资料 | 文件袋 | 信件 | 200g |
李慧慧 | 13651178896 | 北京 | 北京市西城区南礼士路甲60 | 西城 | 文件资料 | 文件袋 | 信件 | 200g |
王卫华 | 55597026 | 北京 | 北京市通州区达济街9号 | 通州 | 文件资料 | 文件袋 | 信件 | 200g |
刘华 | 88326666 | 北京 | 北京市西城区西直门南大街11号 | 西城区 | 物品 | 大箱 | 包裹 | 5000g |
张泓 | 88326666 | 北京 | 北京市西城区西直门南大街13号 | 西城区 | 物品 | 大箱 | 包裹 | 3000g |
后续章节会分别介绍实体类、关联类
2. 基本概念-实体类
有了关系数据库以后,是不是问题就彻底解决了呢?并不是!回想一下日常的应用,无论是打车、购物、浏览网页还是玩游戏等等这些丰富多彩的界面,展现的并非全是千篇一律的表。那么,一定有某种东西在我们看到的界面和数据库中的数据之间起了作用,我们称之为应用程序。DWF就是用于开发应用程序的工具之一。
...
这个加包装的方法有很多,在入门阶段,先介绍:实体类、实体类对象、属性、实体类属性这四个基本概念,以及他们和关系数据库的对应关系,之后在教程里会通过应用开发的深入继续介绍新概念。
2.1 实体类(Entity Class)—表
实体类是具有相同属性业务对象的描述。在DWF中,一个实体类描述一张数据库中的数据表。实体类包括:类名、显示名、前缀。
元素 | 英文名 | 备注 |
---|---|---|
英文名 | ClassName | 类的名称,系统内唯一标识,英文字母,不允许被更改。 |
显示名 | DisplayName | 显示名称,可以用中英文。 |
数据库表前缀 | ZoneName标识 | 记录类的域名,如实体类定制数据库表的默认前缀为CUS。对应数据库表名为:固定标识_前缀_英文名,如实体类的英文名为:Part,则数据库名为:plt_cus_part,其中plt为在DWF系统中定制的实体类的固定标识。 |
2.2 实体类对象(Entity Object)—行
实体类对象是实体类对应的数据表中具体的一行数据,对应数据库中的对象概念。
2.3 属性(Attribute)—列
属性是业务对象某种特征参数的描述。
- 属性是对象特征的抽象。例如EMS快递网上下单例子中收件人信息表中:寄件人姓名、地址、年龄、编号等,每个属性用名称、数据类型、是否为空,以及长度和缺省值等来描述。
- 属性单独存在没有意义,属性和实体类绑定后才能实现应用功能。
...
元素 | 英文名 | 备注 |
属性名 | AttributeName | 属性的名称,系统内唯一标识,不允许再更改 |
显示名 | DisplayName | 属性的显示名称,可中英文书写。 |
数据类型 | ValueType | 如:Integer \ Long \ Boolean \ String \ Date \ UUID \ Double \ Clob \ TimeStamp等,用户也可二次开发扩展数据类型 |
长度 | ValueLength Integer | Integer 默认9 Long 默认20 Boolean 默认1 String默认50,可调整 Date 默认7 UUID 默认20 Double 默认126 Clob 默认1000,可调整 TimeStamp 默认6 timeseries 默认50[String] |
是否为空 | Nullable | 是否为空,勾选表示为空 |
缺省值 | DefaultValue | 属性缺省值 |
2.4 实体类属性(Entity Class Attribute)—表中的列
实体类属性是描述实体类数据的详细信息。用DWF建模工具将实体类和属性建立绑定关系,就可以完成实体类的属性定义;实体类的属性又分为系统属性和自定义属性:
...
- 设备实体类:表述设备本身的信息:设备名称、设备状态、设备的经度、设备的维度、工作地点、总故障报警数等。
- 零件实体类:描述组成设备中包含的零部件信息描述,包括:零件名称、零件类别、零件规格、零件材料、零件描述等,其中零件的类型可定义为:产品、部件、零件。
- 工单实体类:描述工单的内容,包括:故障设备、故障部位、工单状态、截至日期等。
图-设备管理实体类
2.5 DWF默认PG数据连接的数据来源
DWF中PG默认数据连接的数据来源包括三种情况:
- 第一:在DWF中定义的实体类和关联类,表明以plt_开头,如在DWF定义的零件表:plt_cus_part;
- 第二:在DWF自带的PG中创建的数据库表;
- 第三:在DWF默认PG数据库中的创建的视图。
2.6 外部数据连接与外部数据
外部数据连接:指非DWF默认数据连接的其他数据连接。
外部数据:是指外部数据连接中的数据,,目前支持:PG、IotDB。
2.7 外部实体类
外部实体类是用来定义已经存在的数据表或视图,即包括以下2种情况:
...
信息 | ||
---|---|---|
| ||
通常情况下,基于数据表创建的外部实体类可以间接修改外部连接的数据,基于视图创建的外部实体类不能修改外部数据连接的数据。 |
2.8 多源异构数据模式管理
DWF还将提供DW-SchemaN多源异构数据数据模式管理解决方案,利用FDW识别外部数据源的数据,并把要集成的外部数据源的数据映射成默认PG中外部表,解决非“外部数据连接”情况下第三方业务系统数据的集成应用问题,例如:外部实体类可以是来自另外一个业务系统,在ERP系统中维护了库存信息,在PLM系统中,设计人员对零部件的选用时,需要知道该零件的库存情况,此时针对PLM系统来讲,可以把ERP系统中库存信息数据做为外部实体类引入到PLM系统中。后续会有数据集成服务方案的介绍。
3.DWF支持的数据类型和系统属性
3.1 数据类型
在DWF创建实体类后,在数据库中就创建了一个表;表的创建涉及到表体的结构,就是说牵涉到表中的字段数据的格式,因此要对字段的数据类型进行定义,DWF支持的属性类型有以下12类:
类型 | 说明 |
UUID | 128位二进制数,用于表示数据库表的主键 |
Boolean | 布尔开关 |
Integer | 整形 |
Long | 长整型 |
Double | 浮点型 |
String | 字符串 |
Clob | 长字符串。字符大对象类型,能存储比较字符比较大的数据,如能存储复杂的xml或json文件。 |
TimeStamp | 时间戳 |
Date | 日期。与TimeStamp完全相同,目前为了兼容老版本而留存 |
Time | 时间(无日期) |
JSON | JS对象简谱 |
LocalFile | 指向服务器本地文件系统的文件,支持图片、文件、视频、音频类型 |
Timeseries | 时间序列,用于访问时序数据。表示物联网时间序列对象,一般与某个设备的工况象对应。DWF内置IoTDB接口来处理时序数据。 |
3.2 系统属性
在DWF中,一个实体类描述一张数据表,表是由系统属性和自定义属性组成。每创建一个实体类,DWF自动会为其创建8个系统属性,并且自动维护这8个属性,这些属性在创建对象时自动为其赋值:
...
- 第一,当前的数据管理已经不是简单的关系数据库能支持所有应用的时代,不同类型的数据库采用的元数据管理方式不同。我们设计了一致的顶层概念体系来描述数据,有利于系统后续的发展。
- 第二,后续的模型定制功能需要有一致的数据描述,防止出现大量不同概念的交叉,分散开发人员的精力。
4.基本功能
数据建模是DWF的基础模块,在数据模型模块中包含:实体类管理、关联类管理、外部数据连接、外部实体类、属性库管理,本节只介绍实体类的管理、外部数据连接、外部实体类管理、属性库管理,关联类管理内容伴随教学案例设备管理展开介绍。
...
信息 | ||
---|---|---|
| ||
当选择“删除实体类”时,会有“级联删除与此实体类关联的关联类、表单、授权项”的选择出现,在选择时请慎重! |
5. 建模过程
5.1 属性库管理
在DWF数据模型中新增属性有2个路径:
- 第1个新增属性路径是:数据模型-属性库管理-新增属性。
- 第2个新增属性路径是:数据模型-实体类管理-新增实体类-编辑实体类-新增属性绑定。
...
- 1. 选择“数据模型"管理,点击”属性库管理“ ;
- 2. 在弹出的界面上点击”新增属性“;
- 3. 在弹出新增属性对话框中定义属性,需要输入:属性名(英文)、显示名(中文)、选择属性的数据类型、定义属性的长度、是否为空、缺省值设置;
- 4. 点击“确认”,即可完成了一个属性的创建。
图-新增属性
5.1.1 属性的操作
属性的增删改从以下两个位置实现:
- 属性库 metaattribute
- 类绑定的属性 class2attribute
...
操作 | 属性库 | 类绑定属性 |
---|---|---|
更新 | 只允许修改显示名和默认值 | |
属性的更新不影响所有被绑定类的列 | 只影响当前类的列 | |
新增 | 新增属性到属性库 | 新增属性到属性库,并绑定当前属性 |
查看 | 查看属性库中属性信息 | 查看类绑定的属性信息(显示名/默认值以当前类绑定的属性为准,可能与属性库不同) |
绑定 | 继承当前属性信息 |
5.1.2 关于英文名命名
信息 | ||
---|---|---|
| ||
1. 属性和类的英文名只能包含字母、数字,长度不超过32个字符;属性名首字母必须为字母; 2. 在DWF系统中类和属性英文名不区分大、小写,如系统将:engineerOid与engineeroid视为同一个属性; 3. DWF 系统中所有的英文名需要以 |
5.2 实体类建模
实体类管理中重点介绍”从excel创建实体类“、”新增实体类“、”数据导入“、”从excel创建实体类“三个功能。实体类建模有2种方式:
- 从excel创建实体类
- 从新增实体类来创建建实体类
5.2.1 从excel创建实体类
在excel中把要创建的实体类和数据整理好,点击excel即可完成实体类创建同时也把excel 中的数据进行导入。execl 整理时第一行为实体类属性英文名,第二行为属性中文名,sheet页签可为实体类名,可以把要创建的实体类整理在不同的sheet页签中,对同时创建多个sheet中实体类,excel模板格式见下图。
...
- 点击”从excel创建实体类“,弹出对话框,在对话框中有选择excel并上传的功能,选择要导入的excel文件,上传成功获取返回值后,如果返回值正确,将返回值渲染到table中;
- 1.确认实体类英文名,在此处可以对英文名称做修改
- 2.定义实体类的显示名称
- 3.查看对象页面,在表格底部可选着列属性字段类型
- 4.点击”确认“,则自动创建实体类、属性和实体类/属性关联
- 通过实体类管理中的”编辑实体类“查看实体类属性和属性类型是否正确
- 过实体类管理中的“查看对象”检查导入的数据是否完整
图-从excel创建实体类过程
5.2.2 新增实体类
新增实体类后系统会自动产生8个系统属性,系统属性详见本章节的3.2系统属性的内容,实体类与自定义属性绑定有2个路径:新增并绑定属性、现有属性绑定。
...
- 1. 选择 “新增属性绑定“;
- 2. 在右侧放大镜处选择已有的属性,选择”绑定现有属性“进行绑定属性;
- 3. 或在1. 选择”新增属性绑定“后,在左侧对话框完成新增属性定义后,点击”新建并绑定属性“进行属性新增,并进行属性绑定;
- 点击“确认”即可完成新增实体类和属性的绑定。
图-新增实体类
5.2.3 导入数据
进入”数据模型管理“,选择”实体类管理“,数据导入操作骤如下:
...
信息 | ||
---|---|---|
| ||
需要说明的问题: 1)建立属性后,DWF规定无法对属性名、数据类型、长度进行修改。当用户试图建立相同属性名的属性时,会出现“属性已存在”的提示,可以从右边的“选择属性名”下拉框中搜索需要的属性;如果需要修改当前属性的显示名,可通过”编辑属性绑定“按钮进行修改。 2)同一属性在不同实体类中可以使用不同的显示名,方便建模人员理解它的含义。比如在设备管理教学案例中,出现在工单类和设备类的同名属性partOid,用于存储零部件的全局唯一标识,工单类中,它代表当前工单所对应的故障零部件,设备类中,它代表当前设备的产品结构。在这里,存储的是全局唯一标识而非字符串,是为了能够唯一辨识出设备的组成结构,这些将在后续关联类建模中解释。 3)建立实体类时,无法对存储的具体内容进行限制,比如,零件类别必须是:产品、系统、零件之一,设备类型中填入的零部件ID必须是类型为产品的零部件等,这些输入限制操作将在后续教程中实现。 |
5.3 新增外部数据连接
用于连接非DWF默认数据源的数据称之为外部数据连接,进入”数据模型"管理,选择”外部数据连接“,新增外部数据连接操作骤如下:
- 1. 选择“数据模型”管理,点击“外部数据连接”;
- 2.选择“新建数据连接”,弹出填写新增数据连接信息填写框;
- 3.填写相关信息:
- 数据连接名称:定义一个外部数据连接的名称;如:中车四方所数据源连接;
- 数据连接类型:目前DWF支持的外部数据连接类型有:关系数据库PG和时序数据库IOTDB,后续会支持更多的数据类型的外部数据库连接;
- 服务器IP:填写服务器的IP;
- 服务器端口:填写服务器端口;
- 登录用户名:填写服务器登录用户名;
- 密码:填写登录密码;
- 数据库名称:定义一个数据库名称;如:ERP系统数据库;
- 描述:填写相关描述。
- 4.点击‘确认“,即可完成新增外部数据连接。
图-外部数据连接
5.4 引入外部实体类
用于连接已经存在的表或视图,将其定义为DWF的实体类称之为引入外部实体类。进入”数据模型“管理,选择”外部实体类“,引入外部实体类建模骤如下:
...
- 3. 选择“确认”即可完成“引入外部实体类”的定义过程。
图-引入外部实体类
6.小结
本章介绍了数据库的基本概念;介绍了数据模型中实体类、属性的概念,包括:
...
数据模型中的关联类将在第四章数据模型进阶中介绍,第六章数据模型高级将围绕零件到零件的关联类应用展开介绍。
7. 案例演示
根据前文学习案例介绍中的数据结构设计,建立设备类、工单类和零部件类三个实体类,并分别添加如下属性:
...
属性名 | 显示属性 | 数据类型 | 缺省值 | 描述 |
---|---|---|---|---|
partName | 零件名称 | String | ||
partType | 零件类别 | String | 零件 | 记录当前零部件的类别,包括:产品,部件,零件 |
partSpece | 零件规格 | String | ||
partMaterial | 零件材料 | String | ||
partDesc | 零件描述 | String | ||
PartImg | 零件图片 | LocalFile |
8.附件
数据模型.zip
设备类数据Excel:Asset.xlsx