分析型数据库与维度设计
本章主要讲述星型模式中的一些基本概念,具体如下文。
为业务过程度量建模可以实现分析型数据库设计复杂的业务分析工作。业务过程的维度模型由两个组件构成:度量和度量环境。这些组件也称为事实和维度。在数据库设计时,利用这些组件将方便各种类型的分析型应用的实现。维度模型应用于关系数据库环境时被称为星型模式。应用于多维数据库环境时,维度模型被称为多维数据集。只要数据仓库的任何一部分包含了一个星型模式或多维数据集,就说明数据仓库采用了维度设计。
操作性系统与分析型系统的主要差别
事实和维度
在维度设计中,将度量称为“事实”,将环境描述称为“维度”。
星型模式
针对关系型数据库的维度设计被称为星型模式。相关的维度组合成为维度表中的列,事实则存储在事实表中的各个列中。
维度表
在星型模式中,维度表包含表示维度的列。这些列将提供事实存在的环境。维度表简称为维度或维。维度表用于提供分析事实所需要的多样的环境。在查询或报表中,维度可用于对事实如何上卷进行定义–基于他们的聚集层次。维度值既可用于过滤报表,为每种度量提供环境,通常以文本标签的形式处于报表每行中事实的前面;也可用于对主从关系、分类汇总、交叉报表或排序的获取中。维度表不满足第三范式的要求。
键与历史
在星型模式中,每个维度表都分配有一个代理键(surrogate key)。该列是维度表的唯一标识符,只在数据仓库中创建。代理键在星型模式的加载过程中分配和维护。代理键没有内在的含义,通常表现为一个整数。代理键有时指的是warehouse key,是维度表的主键。 为便于区分,在本书中,代理键会在列名中加后缀“_key”加以标识。维度表中也包含类似操作型系统中存在的用于唯一区分实体的键列,这些列通常称为自然键。不同版本的信息可以通过不同的代理键加以区分,这样就可以通过增加带有序号的自然键的方式对变化进行跟踪。代理键可以基于单一的列实现事实表和维度表之间的连接操作。
事实表
作为星型模式核心的事实表,除了包含事实以外,还包含与其相关的维度表的代理键。事实表中的外键通常用于区分事实表中唯一的行。事实表中的行存储特定级别的细节事实。细节的级别称为事实表的粒度(grain)。通过聚集事实的方法,事实表所拥有的信息可以应用于不同的级别。
小结
维度建模是应用于分析型系统的最佳设计方法。维度模型获取了对过程的度量结果。表达度量的数据元素称为事实。提供度量环境的数据元素称为维度。这些元素的聚集便构成了维度表和事实表。应用于关系型数据库时,维度设计称为星型模式。
星型模式中的维度表采用代理键来确保分析型系统能够以自己的方式响应操作型数据的变化。星型模式中不同粒度的事实可以通过各种细节级别进行查询,并根据需要的维度环境进行聚集。在维度内探索细节被称为浏览。