根据事实表与维度表的关系,可将常见的模型分为星型模型和雪花型模型。数据库
当全部的维度表直接链接到事实表上时,整个图就像星星同样,故得名星型模型,以下图:架构
星型架构是一种非正规化的结构,多维数据集的每个纬度都直接与事实表相链接,不存在渐变纬度,因此会产生数据冗余。如在地域维度表中,存在国家 A 省 B 的城市 city1 以及国家 A 省 B 的城市 city2 两条记录,那么国家 A 和省 B 的信息分别存储了两次,即存在冗余。性能
当有一个或多个维度表没有直接链接到事实表上,而是经过其余维度表链接到事实表上,其图解就像多个雪花链接到一块儿,故得名雪花型模型。雪花型模型是对星型模型的扩展,它对星型模型的维度表进一步层次化,原有的维度表可能被扩展为小的事实表,造成一些局部的层次区域,这些被分解的表都被链接到主维度表而不是事实表,以下图:spa
如图中,又将地域维度表分为国家维,省份维,城市维。其优势是:经过最大限度的减小数据存储量以及联合较小的维度表来改善查询性能。雪花型模型去除了数据冗余。设计
没有对比就没有伤害:ci
星型模型由于数据的冗余因此不少统计查询不须要作外部的链接,所以通常状况下效率会比雪花型模型较高,星型结构不用考虑不少正规化的因素,设计与实现都比较简单。雪花型模型因为去除了冗余,有些统计就须要经过表的联接才能产生,因此效率不必定有星型模型高。正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的 ETL、以及后期的维护都要复杂一些。所以在冗余能够接受的前提下,实际运用中星型模型使用更多,也更有效率。it