一、数仓建模的目标
访问性能:能够快速查询所需的数据,减少数据I/O。
数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数据系统中的存储成本和计算成本。
使用效率:改善用户应用体验,提高使用数据的效率。
数据质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台。
所以,大数据的数仓建模需要通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。
二、关系模式范式
关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:
第一范式(1NF):
域都是原子性的,即数据库表的每一列都是不可分割的原子数据项。
例如下面这张表:
ID 商品 商家ID 用户ID
1 4件毛衣 B0001 U00001
“商品”字段就不是原子性的,可以分割成“4件”和“毛衣”。
第二范式(2NF):
在1NF的基础上,实体的属性完全依赖于主关键字,不能存在仅依赖主关键字一部分的属性,也就是不存在局部依赖。
例如下面这张表:
学生ID 所属系 系主任 所修课程 分数
S001 物理系 张三 C001 90
S001 物理系 张三 C002 100