星形模型、雪花模型的对比
星形模型、雪花模型的对比
星形模型
当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型。
如下图:销售数据仓库星型模型图
雪花模型
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。
雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。
如下图,将地域维表又分解为国家,省份,城市等维表。它的优点是 : 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。
两种模型的对比
- 数据优化
雪花模型使用的是规范化数据,也就是说数据在数据库内部是组织好的,以便消除冗余,因此它能够有效地减少数据量。通过引用完整性,其业务层级和维度都将存储在数据模型之中。
相比较而言,星形模型实用的是反规范化数据。在星形模型中,维度直接指的是事实表,业务层级不会通过维度之间的参照完整性来部署。 - 业务模型
雪花模型通过引用完整性,其业务层级和维度都将存储在数据模型之中。
星形模型的 业务层级不会通过维度之间的参照完整性来部署。 - 性能
雪花模型在维度表、事实表之间的连接很多,因此性能方面会比较低。而星形模型的连接就少的多,性能相对较高。 - ETL
雪花模型加载数据集市,因此ETL操作在设计上更加复杂,而且由于附属模型的限制,不能并行化。
星形模型加载维度表,不需要再维度之间添加附属模型,因此ETL就相对简单,而且可以实现高度的并行化。