一、关系模型
ER建模
从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,其是站在企业角度进行面向主题的抽象,而不是针对某个具体业务流程的
二、维度模型
以维度建模为基础,根据业务域和数据域设计主题模型,构建一致性的维度和事实。
一、星形模型 星形模型偏多
星型模型:是一种多维的数据关系,它由一个事实表(Fact Table)和一组维表(Dimension Table)组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。事实表的非主键属性称为事实(Fact),它们一般都是数值或其他可以进行计算的数据;
星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,所以数据有一定的冗余
二、雪花模型
雪花型模型:当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。
雪花型模型
通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。
维度模型-星型模型
事实表:记录特定时间的数字化考量、一般由数字值和指向维度表的外键组成、低粒度,记录原始的操作型事件。
维度表:对事实数据属性的描述、记录通常比事实表少、记录包含大量用于描述事实数据的属性字段。
维度模型更多信息:https://blog.csdn.net/ccstargazing/article/details/106480393
维度模型-雪花模型
雪花模型就是将星型模式中的维度表进行规范化处理。具体做法是把低基数(count distinct)的属性从维度表中移除并形成单独的表。
雪花模式中,一个维度被规范化成多个表的关联,而在星型模式中,每个维度由一个单一的维度表所表示。
关系模型:站在企业角度进行面向主题的抽象,而不是针对某个具体业务流程,更多的是面向数据的整合和一致性治理。
维度模型:以分析决策的需求为出发点构建模型,有较好的大规模查询性能,更直接面向业务。
关系模型三范式
第一范式(1NF):列的原子性。即每一列都是不可拆分的最小单元。
第二范式(2NF):没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
第三范式(3NF):非主键字段之间不能相互依赖
关系模型优劣
优势:没有数据冗余、数据加载更快、保证数据一致性。
劣势:不能直接用于分析决策、开发成本高且周期长、不适合快速迭代。
维度模型-星型模型
事实表:记录特定时间的数字化考量、一般由数字值和指向维度表的外键组成、低粒度,记录原始的操作型事件。
维度表:对事实数据属性的描述、记录通常比事实表少、记录包含大量用于描述事实数据的属性字段。
维度模型更多信息:https://blog.csdn.net/ccstargazing/article/details/106480393
维度模型-雪花模型
雪花模型就是将星型模式中的维度表进行规范化处理。具体做法是把低基数(count distinct)的属性从维度表中移除并形成单独的表。
雪花模式中,一个维度被规范化成多个表的关联,而在星型模式中,每个维度由一个单一的维度表所表示。
通常情况下数据库表设计会遵循三范式,但是有时候也不一定。那么,三范式的设计初衷是什么或者到底有什么作用。概括性的说包括以下三个方面:
减少数据冗余
增加数据有效性检查
提高存储效率
优势:没有数据冗余、数据加载更快、保证数据一致性。
劣势:不能直接用于分析决策、开发成本高且周期长、不适合快速迭代。
比如上图反第二范式的图中,数据冗余存储(系名和系主任冗余),在删除某个系学生数据时会导致系信息丢失,导致删除异常,插入一个新的系但是没有学生时会产生插入异常,修改时会有修改异常等,遵循第二范式,数据表动时,会检查这些数据的有效性,从而避免脏数据。另外,将表拆分存储,实际上提高了单表的存储效率。