在构建数据仓库的维度建模中,一般有三种模式。星型模型/雪花模型/星座模型
在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。
星型模型
当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型。 星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余
星形模型的维度建模由一个事实表和一组维度表组成,有以下特点:
维度表只和事实表关联,维度表之间没有关联;
每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外码;
以事实表为核心,维表围绕核心呈星形分布;
雪花模型
当一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的"层次"区域,这些被分解的表都连接到主维度表而不是事实表。
优点:通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。
特点:将星形模式的大维度表拆分未小维度表,满足规范化设计,但不利于开发。
两者对比:星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高。在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。 在雪花模型中,数据模型的业务层级是由一个不同维度表主键-外键的关系来代表的。而在星形模型中,所有必要的维度表在事实表中都只拥有外键。
星座模式
星座模式也是星型模式的扩展
特点:星型模型和雪花模型都是基于多维表对应事实表,有的时候一个维度表可能被多个事实表用到,这个时候就需要采用星座模式。
三种模型的对比
雪花模型是将星型模型的维度表进一步划分,使得各维度表满足规范化设计。而星座模型允许星型模型中出现多个事实表,更符合实际业务需求。 雪花模型使得维度分析更加容易