目录
5.1引言
5.1.1业务驱动因素
- 提供有关数据的通用词汇表
- 获取、记录组织内数据和系统的详细信息
- 在项目中作为主要的交流沟通工具
- 提供了应用定制、整合,甚至替换的起点
定义:数据建模是发现、分析和确定数据需求的过程,然后采用数据模型的精确形式表示和传递这些数据需求。这个过程使循环迭代的,可能包括概念、逻辑和物理模型
目标:确认并记录不同视角对数据需求的理解,确保应用程序更符合当前和未来的业务需求,为更多数据应用或数据管理奠定一个良好的基础,例如主数据管理和数据治理项目
5.1.2目标和原则
数据建模的目标是确认和记录不同视角对数据需求的理解,从而使应用程序与当前和未来的业务需求更加紧密地结合在一起,并为成功地完成广泛的数据应用和管理活动奠定基础,如主数据管理和治理计划。
确认和记录不同视角的理解有助于:
- 格式化
- 范围定义
- 知识保留记录
5.1.3基本概念
1.数据建模和数据模型
数据建模最常用在系统开发与系统维护的工作环境中,数据建模可以应用于更广泛的领域(如业务和数据结构、主数据管理和数据治理计划),其直接的结果不是在数据库,而是对组织数据的理解。
数据模型描述了组织已经理解或未来需要的数据。
数据模型包含一组带有文本标签的符号,这些符号以可视化方式展现数据需求并传递给数据建模人员,以获得一组特别的数据。模型是一种文档形式,用于记录数据需求和建模过程产生的数据定义。
2.建模的数据类型
4种主要类型的数据进行建模:
- 类别信息——用于对事物进行分类和分配事物类型的数据,如颜色、型号、大小等分类
- 资源信息——实施操作流程所需资源的基本数据,如产品、客户、供应商、设施、组织
- 业务事件信息——在操作过程中创建的数据,如客户订单、供应商发票、现金提取
- 详细交易信息——消息的交易信息通常通过销售系统生成
3.数据模型组件
数据模型构件包括:实体、关系、属性、域
①实体
实体的定义是有别于其他事物的一个事物。在数据建模概念里,实体是一个组织收集信息的载体。
一个实体可以被认为是一些基本问题的答案——谁、什么、何时、何地、为什么、怎么办或这些问题的综合。
- 实体的别名——通用术语“实体”可以使用其他名称表示。最常见的是使用“实体类型”代表一类事物,如EMP是实体类型,而Jane是EMP的类型,因此Jane是实体。目前普遍的用法是用术语“实体”表示EMP,用“实体实例”表示Jane。(表是实体,而行数据是实体实例)
- 实体的图形表示——采用矩形或带有圆边的矩形
- 实体的定义——高质量的数据定义具备3个基本特征:清晰、准确、完整
②关系
关系是实体之间的关联。关系捕获概念实体之间的高级别交互、逻辑实体之间的详细交互以及物理实体之间的约束。
- 关系的别名——通用术语“关系”也可以用其他名称来表示。关系的别名根据模型不同而变化。关系模型中经常使用术语“关系”,在维度模型中经常使用“导航路径”,在NOSQL中经常使用的是“边界”或“引用”
- 关系的图形表示——关系在数据建模图上通常显示为线条。
- 关系的基数——两个实体间的关系中,基数说明了一个实体(实体实例)和其他实体参与建立关系的数量。基数只能选择0、1、多
- 关系的元数——关系中涉及实体的数目被称为关系的元数。最常见的有:
- 一元关系——也被称为递归关系或自我引用关系,它只包含一个实体。一元关系中包含层级关系(一对多,一个实体最多拥有一个父实体,子实体属于多,而父实体属于1)和网络关系(多对多的关系描述的是一种网络或图表,一个实体可以拥有多个父实体)。
- 二元关系——涉及两个实体的关系被称为二元关系。最常见的二元关系包含2个实体。如学生和课程构成二元关系的两个实体
- 三元关系——涉及3个实体的关系被称为三元关系,如学生(student)可以在特定的学期(semester)中选择一门特定的课程(course)。
5.外键——当在两个实体之间定义关系时,可以隐式地创建外键
③属性
属性是一种定义、描述或度量实体某方面的性质
- 属性的图形表示——通常在实体矩形内的列表中描述
- 标识符——也称为键,是唯一标识实体实例的一个或多个属性的集合。可以按结构和功能进行划分。根据键的结构分为单一键(唯一标识实体实例的一个属性)、组合键(联合主键)、复合键(一个组合键和至少一个其他单一键、组合键或非键属性,例如多维事实表上的键,它可能包含几个复合键、单一键和可选的加载时间戳)、代理键(类似序列)和功能分为候选键(候选键是标识实体实例的最小属性集合。超键是唯一标识实体实例的任何属性集。候选键可以是业务键。业务键和代理键是互斥关系)、主键(是被选择为实体唯一标识符的候选键)、备用键(是一个候选键,也是唯一的,但没有被作为主键)。
- 标识关系与非标识关系——在关系模式中,独立实体(主键包含只属于该实体的属性)是用矩形符号标识的,非独立实体(是指其主键至少包含一个来自其他实体的属性)是用圆角矩形表示的。标识关系是指父实体的主键作为外键被继承到子实体主键的一部分,如学生和课程是独立实体,但是注册表是非独立实体。非独立实体必须包含有一个表示关系,如学生和注册之间、课程和注册之间。非标识关系中,父实体的主键仅被进程为子实体的非主外键属性。
④域
域代表某一属性可被赋予的全部可能取值。域提供了一种将属性特征标准化的方法。如日期域(聘用员工的日期、收到订单的日期、提交声明的日期)不应该出现2月30日。性别编码域(只能有男、女)。域中所有的值都为有效的值。可以用附加的规则对域进行限制,这些限制规则被称为约束。
域可以分为不同的方式定义:数据类型、数据格式、列表、范围、基于规则。
4.数据建模的方法
6种常见的建模方法有:关系建模、维度建模、面向对象建模、基于事实建模、基于时间建模、非关系建模
- 关系建模——设计目的是精确地表达业务数据,消除冗余。特别适合设计操作型的系统,因为这类系统需要快速输入信息并精确地存储信息
- 维度建模——专注于特定业务流程的业务问题。维度建模是数据组织为了优化海量数据的查询和分析。轴表示法中包括实体表、维度表、雪花模型、粒度、一致性维度(同一个维度去去计算指标,如入学和毕业生数量)、一致性事实(使用跨多个数据集市的标准化术语)
- UML——统一建模语言
- 基于事实的建模——具体有对象角色建模和完全面向通信的建模
- 基于时间的建模——当数值必须按照时间顺序与特定时间值想关联时用到。里边有数据拱顶和锚建模
- 非关系型建模——4类NOSQL数据库:文档数据库、键值数据库、列数据库、图数据库
5.数据模型级别
数据库管理的三重模式:
概念模式——代表了企业当前的“最佳模式”或“经营方式”
外模式——它是数据库管理系统的各个用户操作与特定需求相关企业模型的子集
内模型——描述数据的“机器视图”。描述了企业信息的存储表示形式
这3个层次通常分别在概念、逻辑、物理上进行细节展现
概念数据模型——是一系列相关主题域的集合来描述概要数据需求。仅包括给定的领域和职能中基础和关键的业务实体,同时也给出实体和实体之间的关系的描述
逻辑数据模型——对数据需求的详细描述,通常用于支持特定用法的语境中。逻辑数据模型不受任何技术或特定实施条件的约束。逻辑模型通常是从概念数据模型中扩展而来。关系型逻辑模型捕获业务流程的规则。而维度型逻辑数据模型捕获业务问题以确定业务流程的运行状况和性能。
物理数据模型——描述了一种详细的技术解决方案,通常以逻辑数据模型为基础,与某一类系统硬件、软件和网络工具相匹配。物理数据模型与特定技术相关。
由于物理数据模型受现实技术约束,因此常通过对结构进行组合(逆规范化)来提高检索性能。
- 规范模型——是物理模型的一个变种,用于描述系统之间的数据移动
- 视图——虚拟表
- 分区——拆分表的过程。分为垂直分割和水平分割
- 逆规范化——就是将符合范式规则的表转换为一些带冗余数据的物理表,这么做的原因是为了提高效率。如提前合并数据、预先创建更小的或提前过滤的表、预先计算和存储计算成本高的步骤。维度数据建模中,逆规范化被称为折叠或合并。星型模型是每个维度折叠成一个表。雪花模型是每个维度没有折叠。如地区代码
6.规范化
主要讲第一到第五范式
7.抽象化
抽象包括泛化和特化。
泛化将实体的公共属性和关系分组为超类实体。
特化将实体中的区分属性分类为子类实体,
超类可以使用角色或分类创建子类。
如学校分为中学、高中、大学。那么超类是学校,而其他的是子类。
在数据模型汇总,子类可以减少冗余。
5.2活动
5.2.1规划数据建模
- 图表——是一种以精确的方式描述需求的形式
- 定义——实体、属性和关系的定义
- 争议和悬而未决的问题
- 血缘关系——重要的原因1.有助于深入理解数据需求,定位属性来源。2.验证模型和映射关系准确性
5.2.2建立数据模型
1.正向工程(0→1)
概念数据模型建模步骤:
- 选择模型类型——从关系、维度、事实等
- 选择表示方法——从建模类型选择特定的表示方法,如信息工程法(IE)或对象角色建模
- 完成初始概念模型——主要目的是获取用户的观点
- 收集组织中最高级的概念(名称)——如时间、地点、用户/会员
- 收集与这些概念相关的活动(动词)——如顾客有多个地址、
- 合并企业术语——确保获取的“观点”与企业的术语和定义相一致
- 获取签署——对模型进行最佳实践及需求满足程度的评审
逻辑数据模型建模步骤:
- 分析信息需求
- 分析现有文档
- 添加关联关系
- 添加属性
- 指定域
- 指定键
物理数据模型建模步骤:
- 解决逻辑抽象——子类型吸收和超类型分区
- 添加属性细节
- 添加参考数据对象——常见有3种(创建匹配单独代码表、创建主共享代码表、嵌入相应对象定义中)
- 指定代理建
- 逆规范化
- 建立索引
- 分区
- 创建视图
2.逆向工程
是基于现有数据库的过程。
5.2.3审核数据模型
需要持续改进实践来控制模型质量
5.2.4维护数据模型
需要保持最新的状态
5.3工具
5.3.1数据建模工具
5.3.2数据血缘工具
5.3.3数据分析工具
5.3.4元数据资料库
5.3.5数据模型模式
数据模型模式是可重复使用的模型结构。
基本模式
套件模式
5.3.6行业数据模型
5.4方法
5.4.1命名约定的最佳实践
命名标准对于实体、表、属性、键、视图和索引尤为重要。
5.4.2数据库设计中的最佳实践
- 性能和易用性
- 可重用性
- 完整性
- 安全性
- 可维护性
5.5数据建模和设计治理
5.5.1数据建模和设计质量管理
1.开发数据建模和设计标准
2.评审数据模型以及数据库设计质量
3.管理数据模型版本与集成
5.5.2度量指标
数据模型计分卡(P122——表5-4),总分100分
- 模型多大程度上反应也业务需求——15
- 模型的完整性如何——15
- 模型与模式的匹配度是多少——10
- 模型的结构如何——15
- 模型的通用性如何——10
- 模型遵循命名标准的情况如何——5
- 模型的可读性如何——5
- 模型的定义如何——10
- 模型与企业数据架构的一致性如何——5
- 与元数据的匹配程度如何——10