数据仓库建模:数据立方体与OLAP
数据仓库和OLAP工具基于多维数据模型。这种模型将数据看做数据立方体形式。
数据立方体是一种多维数据模型,允许以多维对数据建模和观察。它由维和事实定义。
一般而言,维是一个单位想要记录的透视或实体。例如:创建一个数据仓库sales,记录商店的销售,涉及维time、item、branch和location。这些维使用商店能够记录商品的月销售,销售商品的分店和地点。
每个维都可以有一个与之相关联的表。该表称为维表,它进一步描述维。维表可以由用户或专家设定,或者根据数据分布自动产生和调整。
通常,多维数据模型围绕诸如销售这样的中心主题组织。主题用事实表表示。事实是数值度量的。把它们看做数量,是因为我们想根据它们分析维之间的联系。例如,数据仓库sales的事实包括dollars_sold(销售额)、units_sold(销售量)和amount_budgeted(预算额)。事实表包括事实的名称或度量,以及每个相关维表的码。
图1:
图2:
现在,假设我们想从四维角度观察销售数据,增加一个维,如supplier。观察4-D事物变得有点麻烦。然而,我们可以把4-D立方体看成3-D立方体的序列,如下图图3所示。如果我们按照这种方法继续下去,则我们可以把任意n维数据立方体显示成(n-1)维“立方体”的序列。数据立方体是对于多维数据储存的一种比喻,这种数据的实际物理存储可以不同于它的逻辑表示。重要的是,数据立方体是n维的,而不限于3-D。
图3:
图1和图2显示不同汇总级的数据,所示的数据立方体称做方体。给定维的集合,我们可以对给定诸维的每个可能的子集产生一个方体。结果形成方体的格,每个方体在不同的汇总级显示group by数据。方体的格称做数据立方体。图4显示形成维time、item、location和supplier的数据立方体的方体格。
图4:
存放最低层汇总的方体称做基本方体。如图3中的4-D方体是给定维time、item、location和supplier的基本方体。图2是time、item和location的(非基本的)3-D方体,对所有的供应商汇总。0-D方体存放在最高层的汇总,称为顶点方体。顶点方体通常用all标记。
星形、雪花形和事实星座:多维数据模型的模式
最流行的数据仓库的数据模型就是多维数据模型。这种模型可以是星形模式、雪花模式或事实星座模式。
星形模式:最常见的模型范式是星形模式,其中数据仓库包括(1)一个大的中心表(事实表),它包括大批数据并且不含冗余;
(2)一组小的附属表(维表),每维一个。这种模式图很像星光四射,维表显示在围绕中心表的射线上。