数据仓库模型中的雪花模式

导言: 雪花模式是星型模式的变体。在这里,集中式事实表连接到多个维度。在雪花模式中,维度以规范化形式存在于多个相关表中。当星型模式的维度是详细的、高度结构化的,具有多个层次的关系,并且子表具有多个父表时,雪花结构就具体化了。雪花效应只影响维度表,不影响事实表。

null

例子:

图片[1]-数据仓库模型中的雪花模式-yiteyi-C++库

这个 受雇者 维度表现在包含以下属性:EmployeeID、EmployeeName、DepartmentID、Region、Territory。DepartmentID属性与 受雇者 桌子上有 部门 维度表。这个 部门 维度用于提供每个部门的详细信息,例如部门的名称和位置。这个 顾客 维度表现在包含以下属性:CustomerID、CustomerName、Address、CityID。CityID属性将 顾客 带有 城市 维度表。这个 城市 维度表包含每个城市的详细信息,如CityName、Zipcode、State和Country。

星型模式和雪花模式的主要区别在于雪花模式的维度表以规范化的形式维护,以减少冗余。这里的优点是这样的表(标准化)易于维护并节省存储空间。然而,这也意味着需要更多的联接来执行查询。这将对系统性能产生不利影响。

什么是雪花剥落? 雪花设计是维度表进一步扩展和规范化的结果。换句话说,如果维度的低基数属性被划分为单独的规范化表,则称维度表为雪花状。然后,这些表通过引用约束(外键约束)连接到原始维度表。 通常,不建议在维度表中使用雪花剥落,因为它会妨碍维度模型的可理解性和性能,因为需要连接更多的表来满足查询。

雪花模式的特征: 雪花在以下条件下的尺寸模型:

  • 雪花模式使用较小的磁盘空间。
  • 很容易实现添加到模式中的维度。
  • 有多个表,因此性能降低。
  • 维度表由定义不同粒度信息的两组或多组属性组成。
  • 同一维度表的属性集由不同的源系统填充。

优势: 雪花模式有以下两个主要优点:

  • 它提供结构化数据,减少了数据完整性问题。
  • 它使用的磁盘空间很小,因为数据是高度结构化的。

缺点:

  • 雪花剥落减少了维度表消耗的空间,但与整个数据仓库相比,节省的空间通常微不足道。
  • 除非必要且适当,否则避免维度表的雪崩或标准化。
  • 不要将一维表的层次结构雪花化为单独的表。层次结构应该只属于维度表,而不应该是雪花。
  • 可以属于同一维度的多个层次结构以尽可能低的细节进行了设计。
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享