数据仓库 - 模式
模式定义为数据库的逻辑描述,其中事实表和维度表以逻辑方式连接。数据仓库以星型、雪花型和事实星座型模式的形式维护。
星型模式
星型模式包含一个事实表和多个维度表。每个维度仅用一个维度表表示,并且它们未标准化。维度表包含一组属性。
特征
- 在星型模式中,只有一个事实表和多个维度表。
- 在星型模式中,每个维度都由一个维度表表示。
- 维度表在星型模式中未规范化。
- 每个维度表都与事实表中的键连接。
下图显示了公司关于四个维度(即时间、项目、分支机构和位置)的销售数据。
中间有一个事实表。它包含四个维度中的每一个的键。事实表还包含属性,即销售金额和销售单位。
注意 −每个维度只有一个维度表,每个表包含一组属性。例如,位置维度表包含属性集 {location_key, street, city, province_or_state, country}。此约束可能会导致数据冗余。
例如 − "温哥华"和"维多利亚"这两个城市都位于加拿大不列颠哥伦比亚省。这些城市的条目可能会导致属性 province_or_state 和 country 的数据冗余。
Snowflakes 架构
Snowflake 架构中的某些维度表已规范化。规范化将数据拆分成其他表,如下图所示。
与星型模式不同,雪花模式中的维度表是规范化的。
例如 − 星型模式中的项目维度表被规范化并拆分成两个维度表,即项目表和供应商表。现在,项目维度表包含属性 item_key、item_name、type、brand 和 supplier-key。
供应商键链接到供应商维度表。供应商维度表包含属性 supplier_key 和 supplier_type。
注意 −由于雪花模式中的规范化,冗余度降低,因此易于维护并节省存储空间。
事实星座模式(星系模式)
事实星座有多个事实表。它也被称为星系模式。
下图显示了两个事实表,即销售和运输 −
销售事实表与星型模式中的相同。运输事实表有五个维度,即 item_key、time_key、shipper_key、from_location、to_location。运输事实表还包含两个度量,即销售金额和销售单位。事实表之间也可以共享维度表。
例如 −时间、项目和位置维度表在销售和运输事实表之间共享。