介绍:雪花模式是星型模式的变体。在这里, 集中的事实表连接到多个维度。在雪花模式中, 维度存在于多个相关表的规范化中。当星型模式的维度详细且高度结构化, 具有多个关系级别且子表具有多个父表时, 雪花结构就实现了。雪花效果仅影响维度表, 不影响事实表。
例子:
Employee维度表现在包含属性:EmployeeID, EmployeeName, DepartmentID, Region, Territory。 DepartmentID属性与雇员与表部门尺寸表。的部门维用于提供有关每个部门的详细信息, 例如部门的名称和位置。的顾客维度表现在包含以下属性:CustomerID, CustomerName, Address, CityID。 CityID属性链接顾客尺寸表市尺寸表。的市维度表包含有关每个城市的详细信息, 例如CityName, 邮政编码, 州和国家/地区。
星形模式和雪花模式之间的主要区别在于, 雪花模式的维表以规范化的形式维护, 以减少冗余。这样做的好处是这样的表(规范化)易于维护并节省存储空间。但是, 这也意味着需要更多的联接才能执行查询。这将对系统性能产生不利影响。
什么是雪花?
雪花设计是尺寸表进一步扩展和规范化的结果。换句话说, 如果维度表的低基数属性已划分为单独的规范化表, 则该维度表被称为雪花化。然后, 将这些表通过参考约束(外键约束)连接到原始维表。
通常, 不建议在维度表中使用雪花, 因为雪花会影响维度模型的易理解性和性能, 因为需要结合更多表才能满足查询要求。
雪花模式的特征:在以下条件下的雪花尺寸模型:
- 雪花模式使用较小的磁盘空间。
- 将维度添加到架构很容易实现。
- 有多个表, 因此会降低性能。
- 维度表由两组或更多组属性组成, 这些属性定义了不同粒度的信息。
- 同一维表的属性集由不同的源系统填充。
优点:雪花模式有以下两个主要优点:
- 它提供了结构化的数据, 减少了数据完整性的问题。
- 它使用小的磁盘空间, 因为数据是高度结构化的。
缺点:
- 雪花减少了维表占用的空间, 但与整个数据仓库相比, 节省的空间通常很小。
- 除非有必要, 否则请避免雪花化或尺寸表的标准化。
- 不要将一维表的层次结构雪花化为单独的表。层次结构应仅属于维表, 并且绝不应该被雪化。
- 在最低可能的细节上设计了可以属于同一维的多个层次。