首页 > BO > 数据仓库架构星型模型VS雪花模型!
2014
05-16

数据仓库架构星型模型VS雪花模型!

在现有的多维数据仓库的商业智能解决方案中,根据维度表和事实表的关系,在实施过程中,维度设计会映射到 一组关系表,可以把数据库模型分为星型模型和雪花模型,下面我们分别看一下这两种不同的模型。

星型模型:

中央表包含事实数据,多个表以中央表为中心呈放射状分布,它们通过数据库的主键和外键相互连接,是一种使用关系数据库实现多维分析空间的模式,其基本形式必须实现多维空间,以使用关系数据库的基本功能。同时星型模型也是一种非正规化的模型,多维数据集的每一个维度直接与事实表连接,没有渐变维度,所以存在冗余数据。在星型模型中,只需要扫描事实表就可以进行查询,主要的数据都在庞大的事实表中,所以查询效率较高,同时每个维度表和事实表关联,非常直观,很容易组合出各种查询。

雪花模型:

雪花模型在星型模型的基础上,维度表进一步规范化为子维度表,这些子维度表没有直接与事实表连接,而是通过其他维度表连接到事实表上,看起来就像一片雪花,故称雪花模型。也就是说雪花模型是星型模型的进一步扩展,将其维度表扩展为更小的维度表,形成一种层次。这样就通过最大限度的减少数据存储量以及联合较小的维度表来改善查询性能,且去除了星型模型中的冗余数据。

星型模型和雪花模型的特点比较:

星型模型 雪花模型
特点 非正规化;
多维数据集中的每一个维度都与事实表连接(通过主键和外键);
不存在渐变维度;
有冗余数据;
查询效率可能会比较高;
不用过多考虑正规化因素,设计维护较为简单
正规化;
数据冗余少;
有些数据需要连接才能获取,可能效率较低;
规范化操作较复杂,导致设计及后期维护复杂;

当然是实际开发的过程中,可以在数据仓库架构中同时使用这两种模型的混合体。比如中间处理层,可以用雪花模型降低冗余度,在数据集市层,采用星型模型方便提取数据,提高查询效率。

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL