在关系实施中,维度设计会映射到一组关系表。您可以通过以下两种方法实施设计:
|
星型模式 |
|
|
雪花型模式 |
可以将星型模式描述为一个简单的星型:中央表包含事实数据,多个表以中央表为中心呈放射状分布,它们通过数据库的主键和外键相互连接。在星型模式实施中,Warehouse Builder 将所有维度级别的维度数据存储在单个表或视图中。
例如,如果您使用星型模式实现 Product 维,Warehouse Builder 将使用单个表实现该维中的所有级别,如以下屏幕截图所示。所有级别中的属性将映射到一个名为 PRODUCT 的表的不同列。
雪花型模式表示一种维度模型,该模型也是由一个中央事实表和一组成员维度表组成,这些维度表可进一步规范化为子维度表。在雪花型模式实施中,Warehouse Builder 将使用多个表或视图来存储维度数据。单独的数据库表或视图存储与维中每个级别相关的数据。
以下屏幕截图显示了 Product 维的雪花型实施。维中的每个级别都会映射到一个不同的表。
数据仓库专家 Ralph Kimball 建议了三种情况,在这三种情况下,不仅可以使用雪花型实施,而且它还是成功设计的关键:
|
大型客户维度,其中,(例如)80% 的事实表量度涉及匿名访问者 |
|
银行、经纪行和保险公司的金融产品维,因为每个单独的产品都有许多无法与其他产品共享的特殊属性 |
|
|
多企业日历维,因为每个组织都有特殊的结账期、季度和假期 |
Ralph Kimball 建议,在其他大多数情况下,星型模式是较好的解决方案。尽管在规范的雪花型模式中减少了冗余,但需要更多的联结。Kimball 通常建议最好不要将最终用户公开给物理雪花型设计,因为它总是影响可理解性和性能。