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

Posted 胖胖学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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、第三范式

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

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

上面表需要再次拆解:

以上是关于[hive]维度模型分类:星型模型,雪花模型,星座模型|范式的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库中的几种模型

数据仓库设计要点

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

数据仓库模型(星型模型和雪花模型 )

星型模型与雪花模型比对(区别)

星型模型和雪花模型 (数据仓库模型)