数据仓库 - 模式



模式是对整个数据库的逻辑描述。它包括所有记录类型(包括所有相关数据项和聚合)的记录名称和描述。与数据库类似,数据仓库也需要维护模式。数据库使用关系模型,而数据仓库使用星型、雪花型和事实星座型模式。本章将讨论数据仓库中使用的模式。

星型模式

  • 在星型模式中,每个维度都只用一个维度表表示。

  • 此维度表包含属性集。

  • 下图显示了公司关于四个维度(时间、项目、分支和位置)的销售数据。

Start Schema
  • 中心有一个事实表。它包含每个四个维度的键。

  • 事实表还包含属性,即销售额和销售单位。

注意 - 每个维度只有一个维度表,每个表都包含一组属性。例如,位置维度表包含属性集 {location_key, street, city, province_or_state, country}。此约束可能会导致数据冗余。例如,“温哥华”和“维多利亚”这两个城市都在加拿大不列颠哥伦比亚省。此类城市的条目可能会导致属性 province_or_state 和 country 的数据冗余。

雪花模式

  • 雪花模式中的一些维度表被规范化了。

  • 规范化将数据拆分到其他表中。

  • 与星型模式不同,雪花模式中的维度表是规范化的。例如,星型模式中的项目维度表被规范化并拆分为两个维度表,即项目表和供应商表。

Snowflake Schema
  • 现在,项目维度表包含属性 item_key、item_name、type、brand 和 supplier-key。

  • 供应商键链接到供应商维度表。供应商维度表包含属性 supplier_key 和 supplier_type。

注意 - 由于雪花模式中的规范化,冗余减少了,因此易于维护并节省存储空间。

事实星座模式

  • 事实星座有多个事实表。它也称为星系模式。

  • 下图显示了两个事实表,即销售和运输。

Fact Constellation Schema
  • 销售事实表与星型模式中的相同。

  • 运输事实表具有五个维度,即 item_key、time_key、shipper_key、from_location、to_location。

  • 运输事实表还包含两个度量,即销售额和销售单位。

  • 也可以在事实表之间共享维度表。例如,时间、项目和位置维度表在销售和运输事实表之间共享。

模式定义

多维模式使用数据挖掘查询语言 (DMQL) 定义。可以使用两个基本结构,立方体定义和维度定义,来定义数据仓库和数据市场。

立方体定义语法

define cube < cube_name > [ < dimension-list > }: < measure_list >

维度定义语法

define dimension < dimension_name > as ( < attribute_or_dimension_list > )

星型模式定义

我们讨论过的星型模式可以使用数据挖掘查询语言 (DMQL) 定义如下:

define cube sales star [time, item, branch, location]:   
    	   
dollars sold = sum(sales in dollars), units sold = count(*)    	  

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)        	
define dimension branch as (branch key, branch name, branch type)              	
define dimension location as (location key, street, city, province or state, country)

雪花模式定义

雪花模式可以使用 DMQL 定义如下:

define cube sales snowflake [time, item, branch, location]:

dollars sold = sum(sales in dollars), units sold = count(*)

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier (supplier key, supplier type))
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city (city key, city, province or state, country))

事实星座模式定义

事实星座模式可以使用 DMQL 定义如下:

define cube sales [time, item, branch, location]:

dollars sold = sum(sales in dollars), units sold = count(*)

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city, province or state,country)
define cube shipping [time, item, shipper, from location, to location]:

dollars cost = sum(cost in dollars), units shipped = count(*)

define dimension time as time in cube sales
define dimension item as item in cube sales
define dimension shipper as (shipper key, shipper name, location as location in cube sales, shipper type)
define dimension from location as location in cube sales
define dimension to location as location in cube sales
广告
© . All rights reserved.