0,数仓建模的目标
1,访问性能:能够快速查询所需的数据,减少数据I/O
2,数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数据系统中的存储成本和计算成本
3,使用效率:改善用户应用体验,提高使用数据的效率
4, 数据质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台
So,大数据的数仓建模需要通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点
1,关系模式范式
关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:
1 第一范式(1NF)
2 第二范式(2NF)
3 第三范式(3NF)
4 巴斯-科德范式(BCNF)
5 第四范式(4NF)
6 第五范式(5NF)
1,第一范式(简述)
属性不可切割
2,第二范式(简述)
不能存在“部分函数依赖”
3,第三范式(简述)
不能存在“传递函数依赖”
emmm,如果你有良好的三范式功底,
当你看完上面三张图的时候,你已经可以理解透彻了。
当然,想详细了解三范式,可以查看之前写的一篇建模三范式的文章:
2,ER实体模型:
在信息系统中,将事物抽象为“实体”、“属性”、“关系”来表示数据关联和事物描述;实体:Entity,关系:Relationship,这种对数据的抽象建模通常被称为ER实体关系模型
实体:通常为参与到过程中的主体,客观存在的,比如商品、仓库、货位、汽车, 此实体非数据库的实体表
属性:对主体的描述、修饰即为属性,比如商品的属性有商品名称、颜色、尺寸、 重量、产地等
关系:现实的物理事件是依附于实体的,比如商品入库事件,依附实体商品、货位,就会有“库存”的属性产生;用户购买商品,依附实体用户、商品,就会有“购买数量”、“金额”的属性产品。
实体之间建立关系时,存在对照关系:
1:1 ,即1对1的关系,比如实体人、身份证,一个人有且仅有一个身份证号
实体之间建立关系时,存在对照关系:
1:1 ,即1对1的关系,比如实体人、身份证,一个人有且仅有一个身份证号
n:m,即多对多的关系,比如实体学生、课程,每个学生可以选修多门课程,
同样每个课程也可以被多门学生选修
emmmm,有点枯燥无味,来个案例阐述一下:
3,实战:课程管理系统
该系统主要用来管理某校教师、学生、课程,其中包括课程选修、考试、教师授课、学生班级管理功能,现需要完成数据库逻辑模型设计
步骤如下:
1,抽象出主体
2,梳理主体之间的关系
3,梳理主体的属性
4,画出E-R关系图
4,应用场景
ER模型是数据库设计的理论基础,当前几乎所有的OLTP系统设计都采用ER模型建模的方式;
Bill Inom提出的数仓理论,推荐采用ER关系模型进行建模;
BI架构提出分层架构,数仓底层ods、dwd也多采用ER关系模型就行设计。
好了,就介绍到这里,欢迎大家用实际的行动,比如说点赞收藏留言,给出你建设性的建议和意见。下次再见。