1.建模目标
数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。Linux的创始人Torvalds有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系”,其阐述了数据模型的重要性。有了适合业务和基础数据存储环境的模型,那么大数据就能获得以下好处。
- 访问性能:能够快速查询所需的数据,减少数据I/O
- 数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数据系统中的存储成本和计算成本
- 使用效率:改善用户应用体验,提高使用数据的效率
- 数据质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台
所以,大数据的数仓建模需要通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。
以空间换时间 以时间换空间
- 以空间换时间: Join 维度表 事实表 ===> 大宽表
- 以时间换空间: 本身一张大事实表 ==> 事实表 + 多张维度表
2.关系型数据库范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式。
关系模式范式:关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有
- 第一范式(1NF):字段不可分,每个字段是原子级别的,多个字段组织在一起形成一个字段是违反第一范式的
- 第二范式(2NF):有主键,非主键字段依赖主键
- 第三范式(3NF):非主键字段不能相互依赖
- 巴斯-科德范式(BCNF):在3NF基础上,任何非主字段不能对主键子集依赖
- 第四范式(4NF):在满足3NF的基础之上,表中不能包含一个实体的两个或多个互相独立的多值因子
- 第五范式(5NF)完美范式:在满足4NF的基础之上,表必须可以分解为较小的表,除非那些表在逻辑上拥有与原始表相同的主键
各种范式呈递次规范,越高的范式数据库冗余越小。有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式。一般说来,数据库只需满足第三范式(3NF)就行了。总之,规范化的过程就是在数据库表设计时移除数据冗余的过程。随着规范化的进行,数据冗余越来越少,但数据库的效率也越来越低。
3.ER对象关系实体模型
在信息系统中(CMS,ERM,OA等),将事物抽象为“实体”、“属性”、“关系”来表示数据关联和事物描述;实体:Entity,关系:Relationship;这种对数据的抽象建模通常被称为ER实体关系模型。
- 实体:通常为参与到过程中的主体,客观存在的,比如商品、仓库、汽车。此实体非数据库的实体表
- 属性:对主体的描述、修饰即为属性,比如商品的属性有商品名称、颜色、尺寸、重量、产地等
- 关系:现实的物理事件是依附于

本文探讨了数据模型在大数据中的关键作用,从建模目标、关系型数据库范式到ER模型、维度模型的详细解析,涵盖了星型模型、雪花模型的区别与优化,以及实际建模原则和常见模型分类。
最低0.47元/天 解锁文章
668





