CDMP(Data Modeling and Design)
数据模型和设计
1. 业务驱动因素
语境关系图 - 数据建模和设计- 提供有关数据的通用词汇表
- 获取、记录组织内数据和系统的详细信息
- 在项目中作为主要交流沟通工具
- 提供了应用定制、整合,身体替换的起点
2. 目标和原则
数据建模的目标是确认和记录不同视角对数据需求的理解,从而使应用程序与当前和未来的业务需求更加紧密地结合在一起,并为成功地广泛的数据应用和管理活动奠定基础,如主数据管理和数据治理计划。良好的数据建模会降低支持成本,增加未来需求重复利用的可能性,从而降低构建新应用的成本。数据模型是元数据的一种重要形式。
确认和记录不同视角的理解有助于:
- 格式化:格式化定义赋予数据规范的结构,减少在访问和保存数据时发生异常的概率
- 范围定义:数据模型可帮助解释数据上下文边界,以及购买的应用程序报、项目、方案或实施的现有系统。
- 知识保留记录:数据模型通过以书面形式获取知识来保存系统或项目的企业信息,它能给未来项目提供原始记录。
3. 基本概念
可用于建模的数据类型
分类信息(Category Information):用于对事物进行分类和分配类型的数据。例如,按市场类别或业务部门对客户进行分类;按颜色、型号、大小等对产品进行分类;按订单是打开还是关闭进行分类。
资源信息(Resource Information):资源的基本概况:是指进行运营过程所需的资源的基本概况,如产品、客户、供应商、设施、组织、账户等。在IT专业人士中,资源实体有时被称为参考数据。
业务事件信息(Business Event Information):在运营过程中创建的数据。例子包括客户订单、供应商发票、现金提取和业务会议。在 IT 专业人员中,事件实体有时被称为事务性业务数据。
详细的交易信息(Detail Transaction Information):详细的交易信息通常通过销售点系统(商店或在线)产生。它还可以通过社交媒体系统、其他互联网交互(点击流等)以及机器中的传感器产生,这些传感器可以是船只和车辆的部件、工业部件或个人设备(GPS、RFID、Wi-Fi等)。这种类型的详细信息可以被汇总,用于推导出其他数据,并分析趋势,类似于商业信息事件的使用方式。这种类型的数据(大容量或快速变化)通常被称为大数据
数据模型组件(实体、关系、属性、域)🌙
实体
实体是一个组织收集信息的载体,一个实体可被认为是一些基本问题的答案(谁、什么、何时、何地、为什么、怎么办或这些问题的综合);实体通常采用矩形表示;实体的定义属于核心元数据,描述的业务价值有巨大贡献,高质量数据定义具备以下三个基本特征:
- 清洗:定义应该易于阅读和理解,采用简单清晰的语言表述,没有晦涩的首字母缩写词或难于理解的歧义术语表达
- 准确:定义是对实体的准确和正确的描述,应由相关业务领域专家进行审查,以确保其准确性
- 完整:定义要尽量全面,所包括的内容都要体现
类别 | 定义 | 示例 |
---|---|---|
谁 | 有利害关系的人或组织。也就是说,"谁 "对企业来说是*重要的?通常情况下,"谁 "是与当事人的概括,或角色相关联的,如客户或供应商。个人或组织可以有多个角色,也可以被包含在多个当事人中。 | 雇员, 患者, 玩家, 疑犯,客户, 供应商, 学生, 乘客, 竞争对手, 作者 |
什么 | 企业感兴趣的产品或服务。通常是指企业生产什么产品或提供什么服务。也就是说,对企业来说,什么是重要的?类别、类型等的属性在这里非常重要。 | 产品、服务、原材料、成品、课程、歌曲、照片、书籍 |
何时 | 企业感兴趣的日历或时间区间。也就是说,企业在经营中的时间段是什么时候? | 时间、日期、月、季、年、日、月、季、年、日历、学期、会计期、分、出发时间 |
何地 | 企业感兴趣的地点。地点可以是指实际地点,也可以是指电子场所。也就是说,企业在哪里开展业务? | 邮件地址、分发点、网站URL、IP地址 |
为什么 | 与企业利益相关的事件或交易。这些事件使企业的经营得以维持下去。也就是说,企业为什么要经营? | 订单、退货、投诉、撤回、押金、提存、赞美、查询、交易、索赔 |
怎么办 | 企业感兴趣的事件的文件。文档提供了事件发生的证据,如记录订单事件的采购单等。也就是说,我们如何知道一个事件发生了? | 发票、合同、合同、协议、账目、采购单、提货单、装箱单、贸易确认书 |
度量 | 在时间点或超过时间点的其他类别(什么、什么地方)的计数、总和等。 | 销售额、项目计数、付款、余额 |
关系
关系在数据建模图上通常显示为线条,线条上的符号(称为基数)精确的语法说明了规则,关系通过关系数据库中的外键来表示,在非关系型数据库中通过边界或链接来表示。
属性
属性时一种定义、描述或度量实体某方面的性质,实体中属性的物理展现为表、视图、文档、图形或文件中的列、字段、标记或节点等。在数据模型中,属性通常在实体矩形内的列表中描述。
键 | 说明 |
---|---|
单一键 | 唯一标识实体实例的一个属性 |
代理键 | 也是一种单一键,代理键为表的唯一标识符,通常是一个计数符,由系统自动生成,不应对数据库的最终用户可见。它们保存在后台,以帮助保持唯一性,允许在结构间进行更高效的导航,并促进跨应用程序的集成。 |
组合键 | 一组由两个或多个属性组成的集合,这些属性一起唯一标识一个实体实例 |
复合键 | 包含一个组合键和至少一个其他单一键、组合键或非键属性 |
候选键 | 超键是唯一标识实体实例的任何属性集,候选键是标识实体实例的最小属性集合,可能包含一个或多个属性。候选键也可以是业务键,业务键是业务专业人员用于检索单个实体实例的一个或多个属性 |
主键 | 被选择为实体唯一标识符的候选键 |
备用键 | 为一个候选键,可用于查找特定实体实例 |
域
在数据建模中,域代表某一属性可被赋予的全部可能取值,域提供了一种将属性特征标准化的方法
数据建模的方法
关系建模
维度建模
类别 | 定义 |
---|---|
事实表 | 在维度建模中,事实表的行对应于特定的数值型度量值 |
维度表 | 表示业务的重要对象,并且主要包含文字描述 |
雪花模型 | 将星型模式中的平面、单表、维度结构规范为相应的组件层次结构或网络结构 |
粒度 | 指事实表中的单行数据的含义或描述,这是每行都有的最详细信息,定义一个事实表中的粒度是维度建模的关键步骤之一。 |
一致性维度 | 基于整个组织考虑构建,而不是基于某个特定的项目。由于具有一致的术语和值,这些维度在不同的维度模型中可以共享。 |
一致性事实 | 使用跨多个数据集市的标准化术语。 |
UML(统一建模语言)
基于事实的建模
基于时间的数据模型
非关系型数据库(Nosql)
- 文档数据库:通常将业务主题存储在一个文档结构中,而不是将其分解为多个关系结构
- 键值数据库:只在两列中存储数据(键和值),其特征是可在列值同时存储简单和复杂的信息。
- 列数据库:最接近关系型数据库,可以使用更复杂的数据类型,包括未格式化的文本和图像,列数据库将每一列存储在自己的结构中。
- 图数据库:为那些使用一组节点就可很好地表示他们之间关系的数据而设计,这些节点之间连接数不确定。图数据库最适用的例子是社交关系(节点是人)、交通网络(节点是公共汽车或火车站吧)或路径图(节点是十字路口或告诉公路出口)。图数据库最大的功能是在图中寻找最短路径或最近邻居。
4. 规划数据建模
数据建模工作计划主要包括评估组织需求、确定建模标准、明确数据模型存储管理等任务。数据建模工作成果:
- 图表:一个数据模型包含若干个图表,图表是一种以精确方式描述需求的形式
- 定义:实体、属性和关系的定义对于维护数据模型的精度至关重要。
- 争议和悬而未决的问题:数据建模过程中经常出现无法解决的一些争议和问题。
- 血缘关系:指数据从哪里来,经过什么样的加工,变成了什么样的结果的脉络关系。血缘关系之所以很重要原因一是有助于数据建模人员深入理解数据需求,准确定位属性来源;二是确定属性在源系统中的情况,这是验证模型和映射关系准确性的有效工具。
5. 建立数据模型
正向工程
正向工程师指从需求开始构建新应用程序的过程,首先需要通过建立概念模型来理解需求的范围和核心术语;然后建立逻辑模型来详细描述业务过程;最后通过具体建表语句来实现物理模型。
概念数据模型建模
逻辑数据模型建模
物理数据模型
逆向工程
逆向工程师记录现有数据库的过程。物理数据建模通常是第一步,以了解现有系统的技术设计;逻辑数据建模是第二步,以记录现有系统满足业务的解决方案;概念数据模型是第三步,用于记录现有系统中的范围和关键术语。
6. 工具
数据建模工具
数据血缘工具
数据分析工具
元数据资料库
数据模型模式
行业数据模型
7. 方法
命名约定的最佳实践
对每种类型建模对象和书库对象发布数据模型和数据库命名标准;逻辑名称对业务用户应具有意义,尽可能使用完整的单词,并避免使用除最熟悉的缩写之外的单词;命名标准应尽量减少跨环境的名称变化,分类词(即数量、名称和代码等属性名词中的最后一个术语)可用于从表名中区分实体和列名的属性。
数据库设计中的最佳实践
- 性能和易用性:确保用户可快速、轻松地访问数据,从而最大限度地提高应用程序和数据的业务价值
- 可重用性:确保数据库结构在适当情况下,能被多个应用重复使用,并可用于多种目的,避免将数据库、数据结构或数据对象耦合到单个应用程序中。
- 完整性:无论语境如何,数据应始终具有有效的业务含义和价值,并且应始终反映业务的有效状态。实施尽可能接近数据的完整性约束,并立即检测并报告数据完整性约束的违规行为。
- 安全性:应始终及时向授权用户提供真实准确的数据,且仅限授权用户使用,必须满足所有利益相关方的隐私要求;强化数据安全性,执行数据的5. 安全性约束检查,尽可能确保数据的安全性。
- 可维护性:确保创建、存储、维护、使用和处置数据的成本不超过其对组织的价值,以能够产生价值的成本方式执行所有数据工作。
8. 数据建模和设计治理
数据建模和设计质量管理
开发数据建模和设计标准
- 标准数据模型和数据库设计可交付成果的列表和描述
- 适用于所有数据模型对象的标准名称、可接受的缩写和非常用单词的缩写规则列表
- 所有数据模型对象的标准命名格式列表,包括属性和分类词
- 用于创建和维护这些可交付成果的标准方式的列表和说明
- 数据建模和数据库设计角色和职责的列表和描述
- 数据模型和数据库设计中捕获的所有元数据属性的列表和描述,包括业务元数据和技术元数据
- 元数据质量期望和要求
- 如何使用数据建模工具的指南
- 准备和领导设计评审的指南
- 数据模型版本控制指南
- 禁止或需要避免的事项列表
评审数据模型以及数据库设计质量
项目团队应对概念数据模型、逻辑数据模型和物理数据库设计进行需求评审和设计评审。审查会议议程包括审查启动模型的项目、对模型所做的更改、考虑和拒绝的任何其他选项以及新模型在多大程度上符合现有的建模和架构标准。
管理数据模型版本与集成
- 为什么(Why)项目或情况需要变更
- 变更对象(What)以及如何(How)更改,包括添加了哪些表,修改或删除了哪些列等
- 变更批改的时间(When)以及将此变更应用于模型的时间
- 谁(Who)做出了变更
- 进行变更的位置(Where)在哪些模型中