- 课本内容
- 5.1 引言
- 概要
- 常见6种数据模式
- 关系模式
- 多维模式
- 面向对象模式
- 事实模式
- 时间序列模式
- NoSQL模式
- 按照描述详细程度不同分类
- 概念模型
- 逻辑模型
- 物理模型
- 包含组件
- 实体、关系、事实、键、属性
- 常见6种数据模式
- 业务驱动因素
- 1)提供有关数据的通用词汇表。2)获取、记录组织内数据和系统的详细信息。3)在项目中作为主要的交流沟通工具。4)提供了应用定制、整合,甚至替换的起点。
- 语境关系图
- 图5-1 语境关系图:数据建模和设计
- 图5-1 语境关系图:数据建模和设计
- 目标和原则
- 目标
- 数据建模的目标是确认和记录不同视角对数据需求的理解,从而使应用程序与当前和未来的业务需求更加紧密地结合在一起,并为成功地完成广泛的数据应用和管理活动奠定基础,如主数据管理和数据治理计划。
- 确认和记录不同视角的理解有助于
- 格式化
- 范围定义
- 知识保留记录
- 目标
- 基本概念
- 数据建模和数据模型
- 模型是一种文档形式,用于记录数据需求和建模过程产生的数据定义
- 建模的数据类型
- 类别信息
- 用于对事物进行分类和分配事物类型的数据。
- 资源信息
- 实施操作流程所需资源的基本数据。例如,产品、客户、供应商、设施、组织和账户等。
- 资源信息有时也被称为参考数据
- 业务事件信息
- 在操作过程中创建的数据。例如,客户订单、供应商发票、现金提取和业务会议等。
- 详细交易信息
- 详细的交易信息通常通过销售系统(商店或在线应用)生成。
- 总结
- 以上四类都属于“静态数据”。部分“动态数据”也可以建模
- 类别信息
- 数据模型组件
- 基本组成
- 实体、关系、属性和域
- 实体
- 常用实体例子
- 实体别名
- 实体实例是特定实体的具体化或取值
- 根据不同类型的模型进行变化
- 关系模型
- 实体
- 关系模型
- 维度模型
- 事实表和维度
- 面向对象模型
- 类和对象
- 基于时间模型
- 中心、卫星、链接
- 非关系数据库模型
- 文件、节点
- 实体实例是特定实体的具体化或取值
- 根据不同抽象类型进行变化
- 概念模型
- 概念或术语
- 逻辑模型
- 实体
- 物理模型
- 表
- 概念模型
- 常用实体例子
- 实体图形表示
- 在数据模型中,通常采用矩形(或带有圆边的矩形)代表实体,矩形的中间是实体的名称
- 在数据模型中,通常采用矩形(或带有圆边的矩形)代表实体,矩形的中间是实体的名称
- 实体的定义
- 高质量的数据定义具备以下 3个基本特征
- 清晰
- 准确
- 完整
- 高质量的数据定义具备以下 3个基本特征
- 基本组成
- 关系
- 关系捕获概念实体之间的高级别交互、逻辑实体之间的详细交互以及物理实体之间的约束
- 关系别名
- 根据模型不同而变化
- 关系模型
- 关系
- 维度模型
- 导航路径
- 非关系型模型
- 边界
- 链接
- 关系模型
- 根据模型抽象程度而变化
- 概念、逻辑模型
- 关系
- 物理模型
- 引用
- 概念、逻辑模型
- 根据模型不同而变化
- 关系图形表示
- 关系在数据建模图上通常显示为线条
- 图5-3 关系
- 图5-3 关系
- 关系在数据建模图上通常显示为线条
- 关系的基数
- 对于基数而言,只能选择0、1或多(“多”的意思是超过“1”个)。
- 关系的元数
- 关系中涉及实体的数目被称为关系的元数(Arity),最常见的有一元关系、二元关系以及三元关系。
- 一元关系(Unary Relationship)也被称为递归关系或自我引用关系。
- 在层级关系中,一个实体最多拥有一个父实体
- 在关系模型中,子实体处于关系中的“多”的一边,而父实体处于关系中的“一”的一边。在关系网络中,一个实体可以拥有多个父实体
- 一元关系(Unary Relationship)也被称为递归关系或自我引用关系。
- 二元关系。涉及两个实体的关系被称为二元关系
- 三元关系。涉及三个实体的关系被称为三元关系
- 关系中涉及实体的数目被称为关系的元数(Arity),最常见的有一元关系、二元关系以及三元关系。
- 外键
- 通常用在物理数据建模中表示关系
- 数据建模和数据模型
- 属性
- 属性(Attribute)是一种定义、描述或度量实体某方面的性质
- 表示形式
- 实体中属性的物理展现为表、视图、文档、图形或文件中的列、字段、标记或节点
- 属性图形表示
- 在数据模型中,属性通常在实体矩形内的列表中描述
- 图5-10 属性
- 图5-10 属性
- 在数据模型中,属性通常在实体矩形内的列表中描述
- 标识符
- 标识符( Identifiers)也称为键,是唯一标识实体实例的一个或多个属性的集合
- 键的结构类型
- 单一键
- 单一键(Simple Key)是唯一标识实体实例的一个属性
- 组合键
- 组合键(Compound Key)是一组由两个或多个属性组成的集合, 这些属性一起唯一地标识一个实体实例
- 复合键
- 复合键(Composite Key)包含一个组合键和至少一个其他单一 键、组合键或非键属性。
- 代理键
- 代理键也是一种单一键。代理键是表的唯一标识符,通常是一个计数符,由系统自动生成。代理键是一个整数,其含义与其数值无关
- 代理键具有技术功能,不应对数据库的最终用户可见
- 单一键
- 键的功能类型
- 候选键
- 候选键 (Candidate Key)是标识实体实例的最小属性集合,可能包含一个或多个属性(如一个单一键或复合键)
- 一个实体可以有多个候选键
- 候选键可以是业务键
- 业务键和代理键是互斥关系。
- 主键
- 主键( Primary Key)是被选择为实体唯一标识符的候选键
- 备用键
- 备用键(Alternate Key)是一个候选键,虽然也是唯一的,但没有被选作为主键
- 超建
- 超键(Super Key)是唯一标识实体实例的任何属性集
- 候选键
- 标识关系和非标识关系
- 独立实体是指其主键仅包含只属于该实体的属性,非独立实体是指其主键至少包含一个来自其他实体的属性
- 图形表示
- 在关系模式中,大多数数据建模图用矩形符号表示独立实体,非独立实体则用圆角矩形表示。
- 图5-11 独立和非独立实体
- 非独立实体至少含有一个标识关系
- 域
- 在数据建模中,域(Domain)代表某一属性可被赋予的全部可能取值。
- 域中所有的值都为有效的值。不在域中的值被称为无效的值
- 域可以用多种不同的方式定义
- 数据类型
- 数据格式
- 列表
- 范围
- 基于规则
- 概要
- 数据建模方法
- 总体分类
- 常见的6种数据建模方法是关系建模、维度建模、面向对象建模、 基于事实建模、基于时间建模和非关系型建模。
- 建模方法与表示方法
- 表5-2 建模方法和表示法
- 表5-3 数据库交叉应用模式(Scheme to Database Cross Reference)
- 在关系建模方法中,三层模型仅适用于关系型数据库,而概念模型和逻辑型模型可适用于其他数据库。基于事实的建模方法与此类似。对于维度建模方法,三层模型仅适用于关系型数据库和多维数据库。面向对象的建模方法仅适用于关系型数据库和对象数据库。基于时间的建模方法属于物理数据建模技术,主要用于关系型数据库环境中的数据仓库。No SQL方法严重依赖于底层数据库结构(文档、列、图或键值),因此也属于物理数据建模技术。
- 表5-2 建模方法和表示法
- 关系建模
- 关系模型设计的目的是精确地表达业务数据,消除冗余
- 在关系建模中有几类不同的表示法可以用来表达实体间的关系,包 括信息工程法IE、信息建模的集成定义IDEF1X、巴克表示法(Barker) 和陈氏表示法
- 最常见的是信息工程法,该方法采用三叉线 (俗称“鸭掌模型”)来表示基数
- 维度建模
- 在维度模型中,数据组织的方式是为了优化海量数据的查询和分析
- 事实表
- 在维度模型中,事实表( Fact Tables)的行对应于特定的数值型度量值
- 维度表
- 各个维度必须在每一行都有一个独一无二的标识符。维表中最主要的两种标识键是代理键和自然键
- 雪花模型
- 雪花模型(Snowflaking)的含义是将星型模式中的平面、单表、维度结构规范为相应的组件层次结构或网络结构
- 粒度
- 粒度(Grain)这一概念是指事实表中的单行数据的含义或者描述,这是每行都有的最详细信息。
- 一致性维度
- 一致性维度(Conformed Dimensions)是基于整个组织考虑构建的,而不是基于某个特定的项目
- 一致性事实
- 一致性事实(Conformed Facts)使用跨多个数据集市的标准化术语
- UML
- 统一建模语言(UML)是一种图形风格的建模语言。
- 类操作可以是
- 1)公开的(Public)。完全可见。2)内部可见的(Internally)。对子实体可见。3)私密的(Private)。隐藏的。
- 基于事实的建模
- 基于事实的模型不使用属性,通过表示对象(实体和值)之间的精确关系来减少直观或专家判断的需求。使用最广的基于事实建模方法是对象角色建模(ORM),由Terry Halpin在1989年提出。
- 分类
- 对象角色建模
- 完全面向通信的建模
- 基于时间的数据模型
- 当数据值必须按照时间顺序与特定时间值相关联时,需要用到基于时间的建模
- 数据拱顶
- 数据拱顶(Data Vault)是一组支持一个或多个业务功能领域,面向细节、基于时间且唯一链接的规范化表
- 数据拱顶模型是一种混合方 式,综合了第三范式( 3NF,将会在后面章节中讨论)和星型模式的优点。
- 数据拱顶模型有3种类型的实体:中心表、链接表和卫星表。数据拱顶模型设计的重点是业务的功能领域,中心表代表业务主键,链接表定义了中心表之间的事务集成,卫星表定义了中心表主键的语境信息(Linstedt,2012)。
- 锚建模
- 锚模型(Anchor Model)适合信息的结构和内容都随时间发生变化 的情况
- 锚建模(Anchor Modeling)有4个基本的建模概念:锚、属性、连接、节点。
- 锚模拟的是实体和事件,属性模拟了锚的特征,连接表示了锚之间的关系,节点用来模拟共享的属性。
- 非关系型数据库
- 通常有4类NoSQL数据库:文档数据库、键值数据库、列数据库和图数据库
- 总体分类
- 数据模型级别
- 数据库管理的三重模式
- 概念模式
- 外模式
- 内模式
- 规范模型
- 规范模型(Canonical Model)是物理模型的一个变种,用于描述系统之间的数据移动。
- 视图
- 视图(Views)是虚拟表,它提供了一种从多张包含或引用实际属性的表中查看数据的方法。
- 分区
- 分区( Partitioning)是指拆分表的过程。执行分区是为了方便存档和提高检索性能。分区可以是垂直的(按列分组),也可以是水平的(按行分组)。
- 逆规范化
- 逆规范化(Denormalization)是将符合范式规则的逻辑数据模型经过慎重考虑后,转换成一些带冗余数据的物理表。
- ①提前组合来自多个其他表的数据,以避免代价高昂的运行时连接。②创建更小的、预先过滤的数据副本,以减少昂贵的运行时计算和/或大型表的扫描。③预先计算和存储昂贵的数据计算结果,以避免运行时系统资源竞争。
- 在文档数据库中,称为嵌入;在维度数据建模过程中,称为折叠或合并
- 逆规范化(Denormalization)是将符合范式规则的逻辑数据模型经过慎重考虑后,转换成一些带冗余数据的物理表。
- 数据库管理的三重模式
- 规范化
- 规范化(Normalization)是运用规则将复杂的业务转化为规范的数据结构的过程
- 范式的层次包括:
- 第一范式(1NF)。确保每个实体都有一个有效的主键,每个属性都依赖于主键,而且消除冗余的分组,以确保每个属性的原子性(不能有多个值存在)。第一范式包括了与通常称为关联实体的附加实体的多对多关系解析。
- 第二范式(2NF)。确保每个实体都有最小的主键,每个属性都依赖于完整的主键。
- 第三范式(3NF)。确保每一个实体都没有隐藏的主键,每个属性都不依赖于键值之外的任何属性(仅依赖于完整的主键)。
- Boyce / Codd范式(BCNF)。解决了交叉的复合候选键的问题。候选键是主键或备用键。复合意味着不止一个(如一个实体主键有两个属性),交叉是指键与键之间隐藏着业务规则。
- 第四范式(4NF)。将所有三元关系分解成二元关系,直到这些关系不能再分解成更小的部分。
- 第五范式(5NF)。将实体内部的依赖关系分解成二元关系,所有联结依赖部分主键。
- 抽象化
- 抽象化(Abstraction)就是将细节移除,这样可以在更广泛的情况下扩展适用性,同时保留概念或主题的重要和本质属性
- 抽象包括泛化(Generalization)和特化(Specialization)
- 泛化将实体的公共属性和关系分组为超类(Supertype)实体,而特化将实体中的区分属性分离为子类(Subtype)实体。
- 5.1 引言
- 5.2 活动
- 规划数据建模
- 数据建模工作计划主要包括评估组织需求、确定建模标准、明确数据模 型存储管理等任务
- 交付成果
- 图表
- 定义
- 争议和悬而未决的问题
- 血缘关系
- 血缘关系之所以在数据建模过程中很重要,有以下两个原因:一是有助于数据建模人员深入理解数据需求,准确定位属性来源;二是确定属性在源系统中的情况,这是验证模型和映射关系准确性的有效工具。
- 建立数据模型
- 建模步骤
- 数据建模是一个不断迭代的过程,在建模过程中,首先要研究现有的数据模型和数据库,参考已发布的建模标准和数据标准,搜集和考虑随时提出的新的数据要求,在此基础上建模人员设计数据模型初稿;然后再与业务专家和业务分析师确认及讨论模型设计是否符合业务规则要求,同时提出修改建议;最后由建模人员进行修改。如此反复进行,直至没有任何问题为止
- 正向工程
- 正向工程是指从需求开始构建新应用程序的过程。首先需要通过建立概念模型来理解需求的范围和核心的术语;然后建立逻辑模型来详细描述业务过程;最后是通过具体的建表语句来实现物理模型
- 概念数据模型建模步骤
- 选择模型类型
- 选择表示方法
- 完成初始概念模型
- 收集组织中最高级的概念(名词)
- 收集与这些概念相关的活动(动词)
- 合并企业术语
- 获取签署
- 逻辑数据模型建模步骤
- 分析信息需求
- 分析现有文档
- 添加关联实体
- 添加属性
- 逻辑数据模型中的属性具有原子性,它 应该包含一个且只有一个数据(事实),不能被再次拆分
- 指定域
- 域(Domains)的作用是保证模型属性中格式和数值集的一致性。
- 指定键
- 分配给实体的属性可以是键属性,也可以是非键属性。键属性有助于从所有实体实例中识别出唯一的实体实例,可
- 物理数据模型建模步骤
- 解决逻辑抽象
- 添加属性细节
- 添加参考数据对象
- 逻辑数据模型中参考数据的集合可以通过以下3种常见方式在物理 模型中实现
- 创建匹配的单独代码表
- 创建主共享代码表
- 将规则或有效代码嵌入到相应对象的定义中
- 逻辑数据模型中参考数据的集合可以通过以下3种常见方式在物理 模型中实现
- 指定代理键
- 给业务分配不可见的唯一键值,与它们匹配的数据没有任何意义或 关系。
- 逆规范化
- 建立索引
- 分区
- 创建视图
- 概念数据模型建模步骤
- 正向工程是指从需求开始构建新应用程序的过程。首先需要通过建立概念模型来理解需求的范围和核心的术语;然后建立逻辑模型来详细描述业务过程;最后是通过具体的建表语句来实现物理模型
- 逆向工程
- 逆向工程是记录现有数据库的过程。
- 物理数据建模通常是第一步,以了解现有系统的技术设计;逻辑数据建模是第二步,以记录现有系统满足业务的解决方案;概念数据建模是第三步,用于记录现有系统中的范围和关键术语。
- 建模步骤
- 审核数据模型
- 维护数据模型
- 数据模型需要保持最新的状态。需求或业务流程发生变化时,都需 要对数据模型进行更新。
- 规划数据建模
- 5.3 工具
- 数据建模工具
- 数据血缘工具
- 数据血缘工具是允许捕获和维护数据模型上每个属性的源结构变化 的工具
- 数据分析工具
- 数据分析工具可以帮助探索数据内容,根据当前的元数据进行验 证、识别数据质量和现有数据工件(如逻辑和物理模型、DDL和模型描 述)的缺陷
- 元数据资料库
- 元数据资料库是一款软件工具,用于存储有关数据模型的描述性信 息,包括图表和附带的文本(如定义)以及通过其他工具和流程(软件 开发工具、BPM工具、系统目录等)导入的元数据
- 数据模型模式
- 数据模型模式是可重复使用的模型结构,可以在很多场景下被广泛 应用。有组件、套件和整合数据模型模式
- 行业数据模型
- 5.4 方法
- 命名约定的最佳实践
- 数据库设计中的最佳实践
- DBA应牢记以下PRISM设计原则
- 性能和易用性
- 可重用性
- 完整性
- 可维护性
- 安全型
- DBA应牢记以下PRISM设计原则
- 5.5 数据建模和设计治理
- 数据建模和设计质量管理
- 开发数据建模和设计标准
- 评审数据模型以及数据库设计质量
- 管理数据模型版本与集成
- 度量指标
- 表5-4 数据模型计分卡
- 模型多大程度上反映了业务需求
- 模型的完整性如何
- 模型与模式的匹配度是多少
- 模型的结构如何
- 模型的通用性如何
- 模型遵循命名标准的情况如何
- 模型的可读性如何
- 模型的定义如何?
- 模型与企业数据架构的一致性如何
- 与元数据的匹配程度如何
- 表5-4 数据模型计分卡
- 数据建模和设计质量管理
- 考察分值&知识点
- 考察分值
- 10分
- 考察知识点
- 引言
- 实体的别名
- 关系的元数
- 域
- 建立数据模型
- 解决逻辑抽象
- 数据建模的方法
- 基于时间的数据模型
- 键的结构类型
- 数据模型组件
- 标识符
- 物理数据建模
- 属性的物理展现
- 非关系型数据库
- 建模的数据类型
- 键的类型
- 活动
- 创建概念数据模型步骤
- 逻辑数据模型建模步骤
- 工具
- 数据建模工具
- 方法
- 命名约定的最佳实践
- PRISM设计原则
- 数据建模和设计治理
- 数据模型积分卡
- 引言
- 考察分值