在数据仓库设计中,一般表结构设计有两种方式:星型模型和雪花模型,下面做一个简单的对比
星形模型
星型模型是有一个事实表和多个维度表组成,事实表里面的维度信息由维度表的主键来表示,以进行信息关联如下图所示
可以看到每一个维度都与实时表关联,维度表不会有和其他维度关联的外键,并且维度表可以与多个实体表关联。
雪花模型
如上述结构商品维度中,商品可能存在商品类型层级的分类,例如小米手机,可能属于的层级是3C-手机-国产-小米。那么这个类型层级本身可以可以作为一个维度单独剥离出来的。但是的。这个类型层级维度又不会直接连接实体表。而是同时商品维度中一个层级ID来关联,这个时候就变为雪花模型,当有一个或者多个维度不直接关联实体表时就是雪花模型,雪花模型也是对星形模型进一步细化,相对星形来说,没那么冗余
其他
从数据冗余来讲,星形模型,没有冗余或很少冗余,更加规范。星型模型把维度所有的属性基本全家在一个维度表上,担有一个不同就得新建一行,会有很多容易。但是也减少表连接。实体表只有一个连接一层就行。一定程度上性能会比较好