1. 数据建模的定义
-
定义:数据建模是发现、分析和确定数据需求的过程,用一种称为数据模型的精确形式表示和传递这些数据需求
-
什么是建模:是指表结构的设计,表是用来存储数据的
1.1 建模的重要性
-
建模好与坏直接影响存储成本
-
直接影响性能
1.2 数据可以采用不同的模式来表示,常见的6中模式
-
关系模式
-
多维模式
-
面向对象模式
-
事实模式
-
时间序列模式
-
NoSQL模式
1.3 每种模式分为三层模型
-
概念模型 -- 偏向业务
-
逻辑模型 -- 偏向业务
-
物理模型 -- 技术(建表存储)
概念+逻辑 属于数据架构的产物, 物理模型数属于数据建模的产物
1.4 每种数据模型包含的组件:
-
实体
-
实体的定义:比如 学生,老师 和业务相关的所有内容都可以为实体,具体有哪些实体必须由业务部门定义;
-
-
关系(由业务定义)
-
关系的定义:老师和学生之间的关系(可以是多对多)
-
关系有4种:
-
一对多(允许的)
-
多对一(允许的)
-
多对多(不允许的,违反三范式)
-
一对一(不允许的 需要中间表)
-
如果考题问,实体与实体有几种对应关系,答案是4种
关系的基数:
-
对应基数而言,只能选择0,1,或者多(意思是超过1个)
-
-
属性
-
定义:是一种定义、描述或度量实体某方面的性质(比如学生姓名,ID )依赖于实体
标识符 也称为键,是唯一标识实体实列的一个或者多个属性的集合
-
-
域(高手必问)
-
是一种定义、描述或度量实体某方面的性质
-
是一种定义、描述或度量实体某方面的性质
-
域可以用多种不同的方式定义:
-
数据类型
-
数据格式
-
列表,例如状态值
-
范围,例如订单时间范围
-
基于规则,例如物品价格高于物品成本
-
简单的来说可以把许多个字段组合成一个域,可以通过这个域来统一修改类型,格式,状态,规则等
-
2. 业务驱动因素
-
提供有关数据的通用词汇表
-
获取、记录组织内数据和系统的详细信息
-
在项目中作为主要的交流沟通工具
-
提供了应用定制、整合,甚至替换的起点
数据模型对于有效的数据管理至关重要
3. 目标和原则
-
目标:数据建模的目标是确认和记录不同视角对数据需求的理解,从而使应用程序与当前和未来的业务需求更加紧密地结合在一起,并为成功地 完成广泛的数据应用和管理活动奠定基础,如主数据管理和数据治理计划。良好的数据建模会降低支持成本,增加未来需求重复利用的可能性,从而降低构建新应用的成本
-
原则:
-
格式化。数据模型是对数据结构和数据关系的简洁定义。能够 评估当前或者理想情况下业务规则对数据的影响情况。格式化的定义赋 予数据规范的结构,减少在访问和保存数据时发生异常的概率。通过展 现数据中的结构和关系,数据模型使数据更容易被使用。
-
范围定义。数据模型可以帮助解释数据上下文的边界,以及购 买的应用程序包、项目、方案或实施的现有系统。
-
知识保留记录。数据模型通过以书面的形式获取知识来保存系 统或项目的企业信息。
4. 建模的数据类型
-
类别信息。
用于对事物进行分类和分配 事物类型的数据
-
资源信息。
实施操作流程所需资源的 基本数据
-
业务事件信息。
在操作过程中创 建的数据
-
详细的交易信息。
息通常通过销售系统(商店或在线应用)生成。它还可以通过社交媒体 系统、其他互联网交互(单〈双〉击流等)和机器上的传感器产生
5. 数据建模的方法
常见的6中数据建模方法:
-
关系建模
表示法:
-
信息工程IE
-
信息建模集成定义(IDEF1X)
-
巴克符号
-
陈氏符号
-
-
维度建模
-
事实表
-
维度表
-
雪花模型
-
维度表是有层级的,维度表进行了规范化处理。 维度表分解成多个子表,结构类似雪花,每个子表只包含一个维度的具体信息,并通过外键连接。
-
优点: 减少数据冗余,存储空间较小。 数据更新时的一致性更好。
-
缺点: 查询性能较星型模型差,查询复杂度增加,因为需要更多的表连接。 结构相对复杂,不易于理解和实现。
-
-
星型模型(事实表+维度表)
-
特点:没有延展,只是扁平的维度表,中心是一个事实表(fact table),围绕着多个维度表(dimension tables)。
-
优点: 查询性能好,结构简单,易于理解和实现。适合进行快速的查询和数据汇总分析。
-
缺点: 数据冗余可能较高,因为维度表没有进行规范化。
SCD 是渐变类的维度
-
-
-
-
面向对象建模
统一建模语言(UML)
-
基于事实建模
-
对象角色建模(ORM2)
-
完全面向交流的信息建模?(FCO-IM)
-
-
基于时间建模
-
数据拱顶模型(Data Vault)
-
锚建模(Anchor Modeing)
-
-
非关系型(NoSQL)建模
常见的4种NoSQL数据库:
-
文档数据库
-
列数据库
-
图数据库
-
键值数据库
-
6 数据模型级别
-
概念数据模型(数据架构师干的)
-
只有实体的名称,没有属性,偏向业务
-
-
逻辑数据模型
-
有实体的名称,也有属性;偏向业务
-
-
物理数据模型
-
有表,遵循标准和规则,偏向技术
-
7 规范化和逆规范化
-
规范化:
-
第一范式(1NF)确保每个实体都有一个键,每个主键都依赖主键,消除冗余的分组,确保每个属性的原子性,不能有多个值的存在
-
第二范式(2NF)确保每个实体都有最小的主键,每个属性都依赖于完整的主键
-
第三范式 (3NF) 确保每一个实体都没有隐藏的主键。每个属性都不依赖于键值之外的任何属性(仅依赖于完整的主键。
-
第四范式(4NF)。将所有三元关系分解成二元关系,直到这 些关系不能再分解成更小的部分。
-
第五范式(5NF)。将实体内部的依赖关系分解成二元关系, 所有联结依赖部分主键。
-
-
逆规范化
逆规范化只会在OLAP中使用,不会在OLTP中使用
逆规范化是牺牲空间换取时间
原因有很多,最重要的是提高性能,如:
-
提前组合来自多个其他表的数据,以避免代价高昂的运行时连接
-
创建更小的、预先过滤的数据副本,以减少昂贵的运行时计算和/或大型表的扫描
-
预先计算和存储昂贵的数据计算结果,以避免运行时系统资源竞争
8 建立数据模型
-
正向工程
-
正向工程是指从需求开始构建新应用程序的过程。首先需要通过建立概念模型来理解需求的范围和核心的术语;然后建立逻辑模型来详细描述业务过程;最后是通过具体的建表语句来实现物理模型
概念–>逻辑–>物理
ER图到数据表的建立
逆向工程
-
逆向工程是记录现有数据库的过程。物理数据建模通常是第一步,以了解现有系统的技术设计;逻辑数据建模是第二步,以记录现有系统满足业务的解决方案;概念数据建模是第三步,用于记录现有系统中的范围和关键术语。
逆向工程在元数据管理过程中起到了非常重要的作用
-
9 工具
-
数据建模工具
-
数据血缘工具
-
数据分析工具
-
元数据资料库
-
数据模型模式
-
行业数据模型
-
行业数据模型是为整个行业预建的数据模型,包括医疗保健、电信、保险、银行、制造业等行业。这些模型通常范围广泛且内容详细。一些行业的数据模型包含数千个实体和属性。可以通过供应商购买行业数据模型,也可以通过ARTS(零售)、SID(通信)或ACORD(保险)等行业组织获得。
-
10 命名约定的最佳实践
-
对每种类型建模对象和数据库对象发布数据模型和数据库命名标准。命名标准对于实体、表、属性、键、视图和索引尤为重要。
-
名称应该是唯一的并且尽可能具有描述性。 逻辑名称对业务用户应具有意义,应尽可能使用完整的单词,并避免使用除最熟悉的缩写之外的单词。 物理名称必须符合DBMS允许的最大长度,因此必要时将使用缩写。
-
逻辑名称通常情况下不允许使用任何的分隔符对单词进行分隔,但物理名称通常使用下划线作为单词分隔 符。
-
命名标准应该尽量减少跨环境的名称变化。名称不应受其特定环境影响,如测试、QA或生产环境。
11 数据库设计中的最佳实践?(PRISM)
DBA应牢记以下PRISM设计原则
-
1)性能和易用性(Performance and Ease of Use)
-
2)可重用性(Reusability)
-
3)完整性(Integrity)
-
4)安全性(Security)
-
5)可维护性(Maintainability)
-
12 度量指标
数据模型计分卡这个表是考试中会出现的,主要是问那一项是计分卡里没有的