维度建模(星型雪花星座)

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、第三范式

满足第一二范式,且不能存在非主键字段传递函数依赖于主键字段。

主键:学号。学号->系名->系主任

上面表需要再次拆解:

以上是关于维度建模(星型雪花星座)的主要内容,如果未能解决你的问题,请参考以下文章

大数据(0b)离线数据仓库

数据仓库维度建模法案例

数据仓库设计要点

星型模式雪花模式和事实星座模式

[hive]维度模型分类:星型模型,雪花模型,星座模型|范式

数据仓库建模技巧