星型模型与雪花模型的比较

时间:2024-03-23 16:07:19

当今数据仓库建模主要分为两类:范式建模和维度建模

范式建模是基于三范式标准进行建模,好处是高度集成,易于管理和维护,但坏处是结构死板,周期过长

维度建模是依据事实表和维度表结合应用所产生的一种模型结构,好处是构建迅速,最快看到回报,坏处是不好维护,结构复杂

实际应用中一般是范式建模和维度建模相结合,这里讲下维度模型下的两个主要分类:雪花模型和星型模型

星型模型:由一个事实表和一组维表直接组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的外键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表,优点是所有字段均已连接,方便OLAP,缺点是数据可能会造成冗余;

星型模型与雪花模型的比较图片来自于百度百科

 

雪花模型:事实表与一组维度表组成,但维度表不一定全部直接关联于事实表,形状如雪花一样,好处是数据不会冗余,坏处是数据关联join太多,不利于OLAP。

星型模型与雪花模型的比较图片来自于百度百科

 

通俗区别:看是否所有的维度表都全部直接关联在事实表上,如果是则为星型,反之为雪花。简单来说星型模型是明细表,雪花模型是主表

属性 星型模型 雪花模型
数据总量
可读性 容易
表个数
查询速度
冗余度
对实时表的情况 增加宽度 字段比较少,冗余底
扩展性

实际应用:由于雪花模型不利于OLAP,所以实际项目中在数据冗余可接受的情况下一般选择星型模型