维度建模(星型雪花星座)
Posted 五块兰州拉面
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了维度建模(星型雪花星座)相关的知识,希望对你有一定的参考价值。
整理不易,转发请注明出处,请勿直接剽窃!
点赞、关注、不迷路!
摘要: 事实表、维度表、维度模型、核心四步骤
事实表:度量(数值)、维度表的主键作为事实表的外键。
维度表:包含事件发生的实际存在的文本环境,比如产品、地区、日期等各个维度表。
维度表可以分为两类:一般维度表和固定维度表
一般维度表的数据是不断增加和变化的
固定维度表的数据是不变的
事实表的设计是以 能够正确记录历史信息 为准则,维度表的设计是以 能够用合适的角度来聚合主题内容 为准则
维度模型
雪花和星型模型都是基于一张事实表通过外键关联维表进行扩展,生成一份能够支撑可预知查询需求的模型宽表。
星型模型
维度表围绕事实表,一个事实多个维度,维表地位相同。
维度模型(星型模型)比较简单,而且适于变化,各个维度的地位相同。可根据业务情况进行新增或者修改(只要维度的单一值已经存在事实表中)。
雪花模型(性能低)
有些维表不与事实表直接关联,而是通过其他维表关联到事实表。
星座模型(较多采用)
多个事实表相组合,维表是公共的。
维度建模四个步骤
1.选择业务过程
表示的是业务执行的活动,产生一系列事实表。
2.声明粒度
粒度是事实表的度量细节级别。通常从原子级别粒度开始设计,这样可以支持上卷,也支持下钻细节,能够承受各种用户查询。
3.确认维度
文本属性,用来修饰事实表。
4.确认事实
是维度建模的核心。
不同粒度的度量要放在不同的事实表中。
通过外键关联相关维度。
查询操作是基于事实表开展计算和聚合。
[hive]维度模型分类:星型模型,雪花模型,星座模型|范式
一、维度模型分类:星型模型,雪花模型,星座模型
1、星型模型
星型模型中只有一张事实表,以及0张或多张维度表,事实与纬度表通过主键外键相关联,维度之间不存在关联关系,当所有纬度都关联到事实表时,整个图形非常像一种星型的结构,所以称之为“星型模型”。
注:事实表中只存外键和度量值。
2、雪花模型
当一个或多个纬度表没有直接连接到事实表,而是通过其他维度表连接到事实表时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展,它对星型模型的维度进一步层次化。
优点是避免了数据冗余。
缺点是增加了join,导致效率低。
3、星座模型
星座模型也是星型模型的扩展,区别是星座模型中存在多张事实表,不同的事实表之间共享维度表信息。日常开发用的就是星座模型。
二、范式
范式:在进行关系建模时,需要遵循的规则。
范式的作用:降低数据的冗余性,减少存储空间,保持数据一致性。
1、函数依赖:
完全函数依赖,部分函数依赖,传递函数依赖。
1)完全函数依赖
z=f(x,y)有了x,y才能计算出z,所以z完全函数依赖于x,y。比如通过(学号,课程)推出分数,但是单纯用学号推断不出来分数,那么就可以说分数全完依赖于(学号,课程)。
2)部分函数依赖
z=f(x,y)当给定x,y则能计算出z,当给x,y,n时,也能计算出z,此时z部分函数依赖于z,y,n。比如通过(学号,课程)推出姓名,因为可以直接通过学号退出姓名,所以:姓名部分依赖于(学号,课程)。
3)传递函数依赖
y=f(x),z=g(y),依赖x可以得到y,从而得到z,z传递依赖于x。比如:学号推出系名,系名退出系主任,系主任传递依赖于学号。
2、第一范式
字段不可分割。
商品字段中"5台电脑"可以切割成"5台"+"电脑",改为
3、第二范式
满足第一范式,且不能存在非主键字段部分函数依赖于主键字段。
主键为:"学号"+"课名"。"分数”完全依赖于(学号,课名),但是姓名并不完全依赖于(学号,课名),姓名只依赖于学号。
4、第三范式
满足第一二范式,且不能存在非主键字段传递函数依赖于主键字段。
主键:学号。学号->系名->系主任
上面表需要再次拆解:
以上是关于维度建模(星型雪花星座)的主要内容,如果未能解决你的问题,请参考以下文章