数据仓库 - 建模模式
-
简述
模式是对整个数据库的逻辑描述。它包括所有记录类型的记录的名称和描述,包括所有关联的数据项和聚合。与数据库非常相似,数据仓库也需要维护模式。数据库使用关系模型,而数据仓库使用星型、雪花型和事实星座模式。在本章中,我们将讨论数据仓库中使用的模式。 -
星型模式
-
星型模式中的每个维度仅用一维表表示。
-
该维表包含属性集。
-
下图展示了某公司的销售数据从时间、商品、分店、地点四个维度。
-
中心有一个事实表。它包含四个维度中每个维度的键。
-
事实表还包含属性,即售出的美元数和售出的单位数。
Note− 每个维度只有一个维度表,每个表包含一组属性。例如location维度表包含属性集{location_key, street, city, province_or_state,country}。此约束可能会导致数据冗余。例如,“温哥华”和“维多利亚”这两个城市都在加拿大不列颠哥伦比亚省。这些城市的条目可能会导致沿属性 province_or_state 和 country 的数据冗余。 -
-
雪花模式
-
Snowflake 模式中的一些维度表是规范化的。
-
规范化将数据拆分到其他表中。
-
与星型模式不同,雪花模式中的维度表是规范化的。例如,星型模式中的item维表被规范化拆分为item和supplier表两个维表。
-
现在,项目维度表包含属性 item_key、item_name、type、brand 和 supplier-key。
-
供应商键链接到供应商维度表。供应商维度表包含属性 supplier_key 和 supplier_type。
Note− 由于Snowflake schema 的规范化,减少了冗余,因此变得易于维护并节省存储空间。 -
-
事实星座图
-
一个事实星座有多个事实表。它也被称为星系模式。
-
下图显示了两个事实表,即 sales 和 shipping。
-
销售事实表与星型模式相同。
-
运输事实表有五个维度,即item_key、time_key、shipper_key、from_location、to_location。
-
航运事实表还包含两个度量,即已售美元和已售单位。
-
也可以在事实表之间共享维度表。例如,时间、项目和位置维度表在销售和运输事实表之间共享。
-
-
模式定义
多维模式是使用数据挖掘查询语言 (DMQL) 定义的。立方体定义和维度定义这两个原语可用于定义数据仓库和数据集市。多维数据集定义的语法
维度定义的语法
星型模式定义
我们讨论的星型模式可以使用数据挖掘查询语言(DMQL)定义如下 -雪花模式定义
雪花模式可以使用 DMQL 定义如下 -事实星座模式定义
事实星座模式可以使用 DMQL 定义如下 -