数据建模知识点
文章目录
前言
目前,由于互联网时代浪潮,产生的大量数据越来越有价值,而如何将这些数据利用起来已经成为了一门重要学问,这就是数据建模的相关知识。数据模型是将数据元素以标准化的模式组织起来, 用来模拟现实世界的信息框架蓝图。
一、数据建模基本流程
在建模的不同阶段,将数据模型分为三个层次,每层的作用各不相同。
1.概念模型:确定系统的核心以及划清系统范围和
边界。
2.逻辑模型:梳理业务规则以及对概念模型的求精
3.物理模型:从性能、访问、开发等多方面考虑,
做系统的实现
二、实体,关系,属性
1.实体
通常是名词
“人”,“事”等的抽象化对象
比如:员工,公司等等
实体,就是你想要在数据库里存储的所有信息
实体对应数据库就是表,实体中的实例就是一行行的数据
2.属性和域
属性的内容非常广泛,一个实体可能会有如下的类型属性,但绝不仅限
于此列表
属性的取值通常包括:
整形,浮点型,字符型,日期,图片,XML等等,类型非常丰富
域:属性的所有取值范围的集合,其实可以理解为自定义的数据类型,
并可以加一些约束。
域带来的好处
1.提高数据质量
2.使数据模型更易于理解和便于沟通
3.标准化,提高建模效率和模型质量
3.关系
通常是动词:老师 教 课程
用于表示实体和实体之间的关系
在概念模型层级,存在1:N, 0:N, 1:1, 0:1, M:N几种情况
在逻辑模型和物理模型层级,需要消除M:N的情况
三、键
1.主键
主键(Primary Key): 从候选键中,选中用来作为唯一标识的属性或者
属性组,被称为主键。
总结主键的特点
1.唯一性,不可重复
2. 强制性,不可以为空
3. 永久性,不可改变
4. 最小集合,不可掺杂多余的属性
2.候选键
一个或者多个属性的组合,可以唯一确定实体的一个实例。
3.可选键
候选键中,没有选中的其他键,称为可选键。
4.其他
单键(Simple Key): 主键如果是一个属性,称为单键
复合键(Composite Key):主键如果是多个属性的组合,称为复合键
自然键(Natural Key): 已经真实存在的键,通常具有商业含义,比如身
份证ID,护照编码等等。可以是单键,也可以是复合键。
代理键(Surrogate Key): 完全没有商业含义,通常由当下的系统自动
生成。都是单键。
四、约束
约束存在的目的其实就是根据需要把商业规则应用到数据库的设计中。
- 唯一标识(Identifier)
- 非空约束(Not Null)
- 默认值(Default Value)
- 检查(Check)
- 参照完整性(Referential Integrity)
五、范式(规范化)
- 一个过程:1NF->2NF->3NF->BCNF->4NF->5NF
- 减少冗余:同一含义的数据只存一份
“每一个非键值属性必须依赖于键,依赖于整个键而不是键的一部分,
并且不依赖于其他非键属性。“
1.第一范式(1NF)
原子性,没有重复列,列不可再分,也没有重复行。
- 数据规整成二维表格
- 确保每一列表达的同一含义的数据
- 去掉多值属性,拆成多列
- 去掉重复组,挪到新表中去
- 确定主键
2.第二范式(2NF)
非主键属性依赖于整个键,而不是其中一部分。
- 首先得满足第一范式
- 如果非主键属性只依赖于主键的一部分,则需要移出创建新表
3.第三范式(3NF)
非主键属性只依赖于键,不能依赖于其他非主键属性。
- 首先得满足第二范式
- 如果非主键属性还依赖其他非主属性,则需要移出创建新表
4.第四范式(4NF)
多值依赖:
- 三个属性,在一起做联合主键,假设分别为ABC
- AB, AC都存在关系,并且B的改动不会影响C,C的改动也不会影响B
这种情况,我们称为多值依赖,第四范式就是消除多值依赖。
5.第五范式(5NF)
连接依赖:
- 三个属性,在一起做联合主键,假设分别为ABC
- AB, AC,BC均存在逻辑关系
这种情况,我们称为连接依赖
第五范式就是要消除连接依赖。
六、需求分析(数据模型相关任务)
需求分析是数据建模相关任务之一。
分为以下几步:
1.了解企业商业模式
2.了解企业的IT战略以及对数据的战略期待
3.评估可重用信息资产
4.了解组织架构
5.了解IT/Data人员结构
6.了解IT合规
7.了解KPI信息
8.沟通计划以及相关材料
9.搜集企业业务流程图以及相关报表
1.需求分析阶段-商业模式
- 价值主张(Value Proposition)
- 市场划分(Market Segmentation)
- 分销渠道(Distribution Channels)
- 客户关系(Customer Relationships)
- 价值配置(Value Configuration)
- 核心能力(Core Capability)
- 合作伙伴网络(Partner Network)
- 成本结构(Cost Structure)
- 收入模型(Revenue Model)
2.命名规范
- 清晰:表达的含义要清晰
- 别太复杂:很想说简单,但有的时候很难简单
- 可共享:希望放眼整个企业,至少也是当下的系统
- 基于经验可识别:一些企业习惯的共识,不要试图改变
- 一致性:同一术语在不同环境中保持同一含义,相同环境下保持同
一风格
3.元数据
信息=元数据+数据
元数据是用来描述数据的信息
按照功能主要分为三类:
- Business Metadata
- Technical Metadata
- Operational Metadata
七.逻辑建模
将实体转换为逻辑概念上的模型,成为逻辑建模,而实体包括生活中各种物体,比如汽车,店面,衣物等。
这里举的例子是Location地点模型的构建:最常见的地址模式有,在百度地图搜个地方,然后就能进行定位。该模型有四个实体,包括地域,国家,省州,城市。实体建模的过程,就是将个体进行抽象化,再具体化。
隐私及安全:1. 行级别访问控制
2. 财务相关机密数据
3. 客户隐私
4. 访问审计
逻辑建模Check List:1. 确保模型能够正确及完整的满足需求
5. 确保模型符合设计的规约
6. 确保模型的一致性
7. 确保合理的抽象化设计
8. 确保模型符合标准
9. 确保模型的可读性
10. 确保模型的定义以及相关描述正确及完整
八、物理建模
1.逻辑模型->物理模型
- 模式(Schema)
- 实体:表
- 属性:字段
- 主键:PK约束
- 外键:RI约束
- 索引:主键外键相关字段
- 注释
- 其他索引
- 分区
- 物化视图
- 其他
2.逆规范化
狭义的逆规范化:
规范化是 1NF -> 2NF -> 3NF -> BCNF ->4NF -> 5NF
逆规范化就是 3NF -> 2NF -> 1NF
广义的逆规范化:
类似狭义的逆规范化的,采用空间换时间等手段去优化数据库操作,
所有这类数据模型的变化都归到逆规范化处理范畴
有哪些逆规范化的Pattern:
- 合并表
- 冗余列
- 派生列
- 重复组
- 汇总
- 拆表
- Hierarchical加速表