数仓入门基础-4-事实表与维度表
事实表,发生在现实世界中操作型时间,其产生的可度量数值,存储在事实表中,例如交易订单表。一般有以下几种事实特性:
1.可加、半可加、不可加事实 。可加,例如pv(点击量) ; 半可加,例如数值差额,uv(用户量);不可加,例如比率。
2.NULL值处理。可以存在空值度量,但是外键不能存在空值,须用默认行而不是空值外键表示未知的或无法应用的条件。
3.事实一致性。不同事实表中的事实,应保证事实的定义是相同的,且具有相同的命名,如果不兼容,则须用不同命名方式,便于应用
4.周期事实。某天、某周等周期性,周期内未发生过程,也会有null或0等事实;
5.累计事实,开始与结束之间可预测步骤内的度量事件;
6.无事实的事实,比如:某天学生参加课程的事件;
7.聚集事实,聚合,提高查询性能;
8.合并事实,同粒度表进行合并;
维度表,对于物体属性描述的表,例如商品信息表,城市信息表,时间维度表等。有一些概念需了解下
1.维度下钻:例子:如果我知道上海市的数据,但是我想查看各区的数据,维度级别变细,称为下钻,相反称为上卷。
2.退化维度:维度除了主键外无其他内容,例如订单号,发票号
3.非规范化扁平维度:将多张范式表 合并成统一的扁平的非规范化的维度,能够实现维度建模的双重目标:简化与速度,比如将一张商品表,和一张商品分类信息表合并成一张表
4.维度层次:比如 年月日, 国家 省份 城市 等
5.维度表空值属性,当给定维度行没有被全部填充时,或者当存在属性没有被应用到所有维度行时,将产生空值维度属性。可以用描述性的字符串替代空值,例如Unknown等,应避免维度属性使用空值,因为不同的数据库系统在处理分组和约束时,针对空值的处理方法不一致,与事实表关联时也可能关联不上
6.文档属性的标识与指示器, Magic 的缩写或数字的维度字段,应有对应的中文解释字段,比如city_id,city_name
7.日期维度,能够对事实表,按照日期,节日等进行数据导航。