导图社区 DAMA-CDGA数据治理工程师-5.建模与设计
数据建模是发现、分析和确定数据需求的过程,用一种称为数据模型的精准形式表达和传递这些数据需求。良好的数据建模会降低支持成本,增加未来需求重复利用的可能性,从而降低构建新应用的成本。
编辑于2024-03-05 20:20:03不是因为新组织宣布成立或新系统实施上线就要变革,而是人们认识到变革带来的价值而发生行为变化时,变革就会发生。
随着数据领域的快速发展,组织需要改进管理和治理数据的方式,数据管理和数据治理组织需要足够灵活,才能在不断发展的环境中有效的工作,因此,它们需要澄清关于所有权、协作、职责和决策的基本问题。
能力成熟度评估是一种基于能力成熟度模型框架的能力提升方案,描述了数据管理能力初始状态发展到最优化的过程。当一个组织满足某阶段能力特征时,就可以评估其成熟度等级,并制定一个提高能力的计划。
社区模板帮助中心,点此进入>>
不是因为新组织宣布成立或新系统实施上线就要变革,而是人们认识到变革带来的价值而发生行为变化时,变革就会发生。
随着数据领域的快速发展,组织需要改进管理和治理数据的方式,数据管理和数据治理组织需要足够灵活,才能在不断发展的环境中有效的工作,因此,它们需要澄清关于所有权、协作、职责和决策的基本问题。
能力成熟度评估是一种基于能力成熟度模型框架的能力提升方案,描述了数据管理能力初始状态发展到最优化的过程。当一个组织满足某阶段能力特征时,就可以评估其成熟度等级,并制定一个提高能力的计划。
5.建模与设计
引言
定义
数据建模是发现、分析和确定数据需求的过程,用一种称为数据模型的精准形式表达和传递这些数据需求
意义
建模→建表→存储数据
其之所以重要是因为影响存储成本和性能
分类
建模方法
关系模式
多维模式
面相对象模式
事实模式
时间序列模式
NoSQL模式
按详细程度分类
概念模型
逻辑模型
1、是数据架构的产物; 2、应由业务部门和架构师做
物理模型
1、是数据建模的产物; 2、应由技术部门和DBA做
每种模型都包含一系列组件,如实体、关系、事实、键和属性
业务驱动因素
提供有关数据的通用词汇表
获取、记录组织内的数据和系统的详细信息
在项目中作为主要的沟通交流工具
提供了应用定制、整合甚至是替换的起点
目标和原则
良好的数据建模会降低支持成本,增加未来需求重复利用的可能性,从而降低构建新应用的成本
数据模型是元数据的一种重要形式
确认和记录不同视角的理解有助于
格式化
数据模型是对数据结构和数据关系的简洁定义
格式化的定义赋予数据规范的结构,减少在访问和保存数据时发生异常的概率
定义范围
数据模型有助于理解数据上下文边界
知识保留记录
数据模型可以通过以书面的形式获取知识来保存系统或项目的企业信息
基本概念
数据建模和数据模型
建模
数据建模的直接结果不是在数据库,而是对组织数据数据的理解
模型
是现实中事物的一种表征或想要创造事物的一种模式
一个模型可以一个或者多个图表
模型图可以使用标准化的符号快速领会其内容
数据模型描述了组织已经理解或者未来需要的数据
模型是一种文档形式,用于记录数据需求和数据建模过程中产生的数据定义
建模的数据类型
可以对下列4种主要 类型的数据进行建模
类别信息
用于对事物进行分类和分配事物类型的数据
如按市场类别或业务部分分类的客户;按颜色、型号、大小分类的产品
资源信息
实施操作流程中所需资源的基本数据
例如产品、客户、供应商、设施、组织和账户
业务事件信息
在操作过程中创建的数据
客户订单、供应商发票、现金提取、业务会议
详细交易信息
详细的交易信息通过销售系统生成
1、属于静态数据; 2、部分“动态数据”也可以建模,如系统的方案;
数据模型的组件
实体
定义
是有别于其他事物的一个事物
是一个组织收集信息的载体
可以被视为是一些基本问题的答案
是什么、为什么、谁、何时、何地、如何做
别名
普遍的用法
实体
是实体类型
实体实例
是特定实体的具体化或取值
1、Employee是实体;2、Jane是实体实例
依据模型区分
关系模型
实体
维度模型
事实表、维度
面向对象
类、对象
基于时间
中心、卫星、链接
NoSQL
文件、节点
按模型抽象程度区分
概念模型
概念、术语
逻辑模型
实体
物理模型
表
实体的图形表示
通常用矩形(或带有圆边的矩形)代表实体,矩形的中间是实体的名称
定义标准
属于核心元数据
高质量的数据定义特征
清晰
准确
完整
关系
定义
是实体之间的关系
别名
依据模型区分
关系模型
关系
维度模型
导航路径
NoSQL
边界、链接
按模型抽象程度区分
概念、逻辑模型
关系
物理模型
约束、引用
关系的图形表示
在数据建模上通常显示为线条
关系的基数
基数说明了一个实体和其他实体参与建立关系的数量
基数由出现在关系线两端的符号表示
对于基础而言,只能选择0,1或多
关系的每一方都可以有0,1或多的任意组合
指定0或1表示关系中是否需要实体实例
1个或多个表示给定关系中参与方的实体数量
关系
一元关系
也被称为递归关系或自我引用关系
只包含一个实体
在层级关系中,一个实体最多拥有一个父实体
在关系网络中,一个实体可以拥有多个父实体
二元关系
涉及两个实体
三元关系
涉及三个实体
外键
ForeignKey通常在物理数据模型中表示,在逻辑数据模型中有时也用
属性
定义
属性是一种定义、描述或度量实体某方面的性质
实体中物理展现为表、视图、文档、图形或文件中的列、字段、标记或节点
属性的图形表示
在数据模型中,属性通常在实体矩阵内的列表中描述
标识符
定义
标识符也称为键,是唯一标识实体实例的一个或多个属性的合集
键的结构类型
单一键
是唯一标识实体实例的一个属性
如VIN
代理键
也是单一键
代理键是表的唯一标识符,由系统自动生成
代理键是一个整数,其含义与数值无关
代理键具有技术功能,不应对数据库的最终用户可见
它保存在后台,以帮助保持唯一性,允许在结构间进行更高效的导航,并促进跨应用程序的集成
复合键
是一组由两个或多个属性组成的合集,这些属性一起唯一的标识一个实体实例
如电话号码(区号+交换机号+本地号码)
混合键
包含一个组合键和至少一个其他单一键、组合键或非键属性
如多维事实表上的键,它可能包含几个复合键、单一键和可选的加载时间戳
键的功能类型
超键
是唯一标识实体实例的任何属性集
候选键
是标识实体实例的最小属性集合,它可能包含一个或多个属性
最小意味着候选键的任意子集都无法唯一标识实体实例
一个实体可能有多个候选键
候选键是业务键
业务键
是业务专业人员用于检索单个实体实例的一个或多个属性
与代理键互斥
主键
是被选择为实体唯一标识符的候选键
一个实体可能有多个候选键,但只有一个候选键能够作为一个实体的主键
主键是代理键
备用键
是一个候选键
虽然也是唯一的,但是没有被选为主键
用于查找特定实体实例
标识关系和非标识关系
实体
独立实体
是指其主键仅包含只属于该实体的属性
关系数据模型:用矩形符号表示独立实体
非独立实体
是指其主键至少包含一个来自其他实体的属性
关系数据模型:用圆角矩形符号表示非独立实体
标识关系
是指父实体的主键作为外键被继承到子实体主键的一部分
非独立实体至少包含一个标识关系
如,学生和注册之间,课程和注册之间的关系
非标识关系
父实体的主键仅被继承为子实体的非主外键属性
域
定义
代表某一属性可被赋予的全部可能值
域中的所有值都为有效值,不在域中的值被称为无效值
属性中不应当含有其他指定的域以外的值
可以用附加的规则对域进行限制,这些限制规则被称为约束
域可以用多种不同的方式定义
数据类型
数据格式
列表
范围
基于规则
数据建模的方法
关系模型
设计的目的是精准的表达业务,消除冗余
特别适合设计操作型的系统,因为此类系统需要快速的输入信息并精准的存储信息
维度模型
事实表
用于特地的数值型度量值
事实表占据了数据库的大部分空间90%
维度表
表示业务的重要对象,并且主要包含文字描述
维度是事实表的入口点或链接,充当“查询”、“报表”约束的主要来源
通常是高度反范式的
通常占总数的10%
变化
维度也有一些属性,他们以不同的速率发生变化
渐变类维度SCD
ORC
第一类,覆盖
新值覆盖旧值
第二类,新行
新值写在新行中,旧行被标记为非当前值
第三类,新列
一个值的多个实例列在同一行的不同列中,最后一个值被丢弃
雪花模型
包含事实表和维度表
维度表外展
星型模型
包含事实表和维度表
维度表不外展
粒度
是指事实表中的单行数据的含义或者描述,这是每行都有的最详细信息
定义一个事实表中的粒度是维度建模的关键步骤之一
粒度越细,灵活度越大
一致性维度
是基于整个组织考虑的,而不是基于某个特定的项目
由于具有一致的术语和值,这些维度在不同的维度模型中共享
一致性事实
使用跨多个数据集市的标准化术语
不同的业务用户可能以不同的方式使用同一术语
很多事物的称谓一样,但在各组织中的概念并不相同,或者相反,事物的称谓不同,却在各组织中实际表达的是同一概念
面向对象
UML
基于时间
数据拱顶
锚建模
基于事实
对象角色建模
完全面向通信的建模
非关系型
文档数据库
键值数据库
列数据库
图数据库
数据建模的级别
概念数据模型
概念数据模型仅包括给定的领域和职能中基础和关键的业务实体,同时给出实体和实体之间的关系描述
逻辑数据模型
逻辑数据模型是对数据需求的详细描述
逻辑数据模型不受任何技术或特定实施条件的约束
通常是从概念数据模型扩展而来
在关系逻辑数据模型中,通过添加属性来扩展概念数据模型
物理数据模型
实体
属性
规则
不能有空格
长度不能超过30Bytes
不能由数字开头,一定要有字母开头
物理数据模型
描述了一种详细的技术解决方案,通常以逻辑数据模型为基础,与某一类系统硬件、软件和网络工具相匹配
物理数据模型与特定技术有关
由于物理数据模型受实现技术约束,因此常常通过对结构进行组合(逆规范化)来提高检索性能
规范模型
规范模型是物理模型的一种,用于描述系统之间的数据移动
该模型描述了系统之间作为数据报或消息传递的数据结构
当通过Web服务,企业服务总线ESB或企业应用集成EAI发送数据时,规范模型描述了发送服务和接收服务应使用的数据结构
这些结构的设计应尽可能通用,以实现重用和简化接口需求
视图
是虚拟表,它提供了一种从多种包含或引用实际属性的表中查看数据的方法
当请求视图中的一个属性时,标准视图会运行SQL来检索数据
分区
是指拆分表的过程
执行分区时为了方便存档和提高检索性能
分区
可以是垂直的(按列分组)
为减少查询返回的结果集、可根据列的不同为某表创建子集
例如,将客户表分割成两张表,分别基于静态的字段或相对易变的字段(以提高加载、检索性能)
或基于查询中常见和非常见字段(提高全表扫描性能)
也可以是水平的(按行分组)
为减少查询返回的结果集,使用某列的值作为区分创建子集表
例如,创建只包含特定区域中客户的区域客户表
逆规范化
简述
目的:牺牲空间(数据重叠,提高性能)
只存在于物理模型
适用于OLAP
是将符合范式规则的逻辑数据模型经过慎重考虑后,转换成一些带冗余数据的物理表
换言之,逆规范化有意将一个属性放在多个位置
将数据逆规范化有很多原因,最重要的是提供性能
提前组合来自多个其他表的数据,以避免代价高昂的运行时连接
创建更小的、预先过滤的数据副本,以减少昂贵的运行时计算或大型表的扫描
预先计算和存储昂贵的数据计算结果,以避免运行时系统资源竞争
逆规范化处理由于存在数据冗余而引入了产生数据错误的风险
因此,只有在使用视图或分区进行物理设计还是无法满足效率要求时,才会选择逆规范化处理
维度模型
逆规范化被称为“折叠”“合并”
如果每个维度都被折叠成一个结构,生成的数据模型被称为星型模式
如果维度没有折叠,则生成的数据模型被称为雪花
规范化
规范化是运用规则将复杂的业务转化为规范的数据结构的过程
目标是保证每个属性只在一个位置出现,以消除冗余或冗余导致的不一致性
根据主键和外键整理属性
规范化规则可归类到不同规范层次,对每一个层次可应用更细的方式和规范性来搜索正确的主键
每个级别由一个独立的范式组成,而且每个相继级别不需要包含以前的级别
层次
第一范式
确保每个实体都有一个有效的主键,每个属性都依赖于主键,而且消除冗余的分组,以确保每个属性的原子性(不可能有多个值存在)
第二范式
确保每个实体都有最小的主键,每个属性都依赖于完整的主键
第三范式
确保每个实体都没有隐藏的主键,每个属性都不依赖于键值之外的任何属性
模型的规范化通常要求达到第三范式水平即可
第四范式
第五范式
抽象化
是将细节移除,这样可以在更广泛的情况下扩展适用性,同时保留概念或主题的重要和本质属性
活动
规划数据建模
交付成果
图表
一个数据模型中包含多个图表,图表是一种以精确的方式描述需求的形式
需求可以描述不同详细程度的层级(概念、逻辑、物理)、采用的数据模型(关系、维度、事实、时间、对象、NoSQL),以及实例中采用的表示方法(统一建模语言、对象角色建模)
定义
实体、关系、属性的定义对于维护数据模型的精度至关重要
争议和悬而未决的问题
通常数据建模工作交付的文档应包含当前的议题和未解决的问题
血缘关系
血缘关系是指数据从哪里来,经过什么样的加工,变成什么样的结果的脉络关系
一、有助于数据建模人员理解数据需求,准确定位属性来源
二、确定属性在源系统中的情况,这是验证模型和映射关系准确性的有效工具
建立数据模型
正向工程
定义
指从需求开始构建新应用程序的过程
顺序
概念模型
通过建立概念模型来理解需求的范围和核心的术语
逻辑模型
然后建立逻辑模型来详细描述业务过程
物理模型
最后通过具体的建表语句来实现物理模型
概念数据模型建模
选择模型类型
从关系、维度、事实、时间、对象、NoSQL的建模方法中选择一种来进行建模
选择表示方法
一旦选定了建模的模式类型,接下来就该考虑采用何种建模表示方法,例如信息工程法IE、对象角色建模ORM
完成初始概念模型
收集组织中的最高级概念
收集与这些概念的相关的活动
合并企业术语
获取签署
逻辑数据模型建模
逻辑数据模型补充了概念模型中的需求细节
步骤
分析信息需求
分析现有文档
添加关联实体
关联实体用于描述多对多关系
关联实体从关系中涉及的实体获取标识属性,并将它们放入一个新的实体中
添加属性
将属性添加到概念实体中
逻辑数据模型中的属性具有原子性,它应该包含一个且只有一个数据(事实),不能再次拆分
指定域
域的作用是保证模型属性中格式和数值集的一致性
指定键
分配给实体的属性可以是键属性,也可以是非键属性
键属性有助于从所有实体实例中识别出唯一的实体实例,可以是单独一个属性成为键,也可以是与其他键元素组合的部分键
物理数据建模
逻辑数据模型需要进行修改和调整以形成物理数据模型,并使得最终的设计在存储应用程序中运行良好
表
表
文件
模式
列
列
字段
元素
行
行
实例
记录
步骤
解决逻辑抽象
添加属性细节
添加参考数据对象
指定代理键
逆规范化
逆规范化或添加冗余可以极大的提高性能,远超过了重复存储和复制处理的成本
维度模型主要采用逆规范化的手段
建立索引
索引是用于访问数据库数据的过程中优化查询(数据检索)性能的另一个选择
索引可以提高查询性能
索引可以是唯一的或非唯一的、集群的或非集群的、分区的或非分区的、单列或多列等多种类型
如果没有适当的索引,DBMS将读取表中的每一行(表扫描)以检索所有数据。对于大表来说,这将会耗费很多成本
要尝试在大表上构建索引,使用最频繁引(特别是键包括主键、备用键、外键)用的列来实现最常运行的查询
分区
必须充分考虑整个数据模型(维度)的分区策略,尤其是当事实包含许多可选维度键时
创建视图
视图用于控制对某些数据元素的访问,也可以用于嵌入公共连接条件或过滤器,以实现常见对象或查询的标准化
视图本身是需求驱动的
逆向工程
第一步、物理数据建模
第二步、逻辑数据建模
第三步、概念数据建模
审核数据模型
需要通过持续改进实践来控制模型质量
维护数据模型
数据模型需要保持最新的状态
需求或流程发生变化时,都需要对数据模型进行更新
通常来说,在一个特定项目中,模型级别需要更改时,也意味着相应的更高级别的模型需要更改
例如,如果物理模型需要添加新的一列,则经常需要将该列作为属性添加到相应的逻辑数据模型中
在结束开发迭代时,一个好的习惯是对最新的物理数据模型进行逆向工程,并确保它与相应的逻辑数据模型保持一致
许多数据建模工具可以自动比较物理模型和概念模型差异
工具
数据建模工具
数据建模是自动实现数据建模功能的软件
更复杂的数据建模工具支持从概念模型到逻辑模型,从逻辑模型到物理模型,从物理模型到数据库结构转换的正向工程
大多数还支持从数据库到概念模型的逆向工程
数据血缘工具
是允许捕获和维护数据模型上每个属性的源结构变化的工具
这些工具可实现变更影响分析
可以使用它们来查看一个系统的变化或系统的一部分中的变化是否对另一个系统产生影响
数据分析功能
可以帮助探索数据内容,根据当前的元数据进行验证、识别数据质量和现有数据工件的缺陷
元数据资料库
用于存储有关数据模型的描述性信息
共享元数据比存储元数据更重要
元数据资料库必须具有便于用户访问的方式,供人们查询存储库内容
数据模型模式
基本模式
是数据建模的“螺母和螺栓”
套件模式
是指跨越业务人员和数据建模人员范畴的一套构建块
整合模式
提供了以常见方式整合套件模式的框架
行业数据模型
行业数据模型
是为整个行业预建的数据模型,通常内容广泛且内容详细,可包含数千个实体和属性
任何购买的数据模型都需要进行定制以适应组织的特点
方法
命名约定的最佳实践
命名标准对于实体、表、属性、键、视图、索引尤为重要
名称应该是唯一的并且尽可能具有描述性
命名标准应该尽量减少跨环境的名称变化
名称不应受其特定环境影响,如测试、QA或生产环境
分类词,即数量、名称和代码等属性名称中的最后一个术语,可用于从表名中区分实体和列名的属性
逻辑名称
应尽可能使用完整的单词,并避免使用除最熟悉的缩写外的单词
通常情况下不允许使用任何的分隔符对单词进行分隔
物理名称
必须符合DBMS允许的最大长度,因此必要时使用缩写
通常使用下划线作为单词分隔符
数据库设计中的最佳实践
DBA应牢记PRISM设计原则
性能和易用性Performance and Ease of use
可重用性Reusability
完整性Integrity
安全性Security
可维护性Maintainability
数据建模和设计治理
数据建模和设计质量管理
开发数据建模和设计标准
评审数据模型以及数据库设计质量
管理数据模型版本与集成
度量指标
模型多大程度上反映了业务需求
模型的完整性如何
模型与模式的匹配度如何
模型的结构如何
模型的通用性如何
模型遵循命名标准的情况如何
模型的可读性如何
模型的定义如何
模型与企业数据架构的一致性如何
模型与元数据的匹配度如何