一、维度模型分类:星型模型,雪花模型,星座模型
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、第三范式
满足第一二范式,且不能存在非主键字段传递函数依赖于主键字段。
主键:学号。学号->系名->系主任
上面表需要再次拆解:
版权归原作者 胖胖学编程 所有, 如有侵权,请联系我们删除。