数据仓库(六):概念设计
在数据集市设计中可以使用3种基本的系统方法:数据驱动的方法、需求驱动的方法和混合方法。它们的区别在于源数据库分析和终端用户需求分析阶段所占的比重。方法的选择将极大地影响概念设计的方式。
数据驱动方法包括:基于实体-关系模式的设计、基于关系模式的设计、基于XML模式的设计。概念型实体-关系模式比关系型逻辑模式更具表达力。因此通常认为前者是更好的设计源。但实际情况是公司经常无法提供精确完整的实体-关系模式(丢失、文档不完整或者其他原因)。那么就只能根据数据库的逻辑模式来做。另一方面,Web数据大部分是XML格式的,基于XML模式的设计可以从XML源的模式派生一个数据集市概念模式。
1 数据驱动方法设计
1.1 基于实体-关系模式的设计
在数据集市的符合维度事实模型(DFM)的概念设计中使用的基于实体-关系模式的技术包含以下步骤:
(1)定义事实。
(2)对于每个事实:
a. 建立一个属性树。
b. 修剪和移植属性树。
c. 定义维度。
d. 定义度量。
e. 创建事实模式。
首先从数据源模式中选择相关事实。然后以半自动模式创建属性树。这是一个过渡结构,可用于确定事实模式的边界以清除不相关属性及修改链接到这些不相关属性的依赖关系(对应步骤(2).b)。属性树链接了数据集市和数据源模式。这个链接是数据准备过程的关键。之后将属性树转换为事实模式(步骤(2).e)就相对简单了。其中,步骤a基于一种算法;步骤cde基于属性的目标特性;步骤1和b需要深入理解公司的商业模型。
1.1.1 定义事实
事实通常对应于公司中动态发生的事件。在实体-关系模式中,事实可能对应着一个实体或者E1,E2,...,En实体间的n元关系R。对于后者,为简便起见,可将R转换为一个实体(实体化过程)。为此,添加一个新实体F,并使用F和Ei间的二元关系(Ri)替换R的每个分支。若使用min(E, A)和max(E, A)分别表示最小基数等级和最大基数等级(基数等级是指实体E在相应等级上参与关系A,通常min(E, A)∈{0, 1},max(E, A)∈{1, n}),则:min(F, Ri) = max(F, Ri) = 1, min(Ei, Ri) = min(Ei, R), max(Ei, Ri) = max(Ei, R)。
注意:有时不同的实体可能是表达个体事实的候选。建议选作事实的实体应该是构建包含尽可能多的属性的属性树的实体。
1.1.2 构建属性树
属性树
给定实体-关系数据源模式的一个相关部分,以及它的一个被分类为事实的实体F,属性树是满足以下要求的树:
- 每个节点对应于一个数据源模式属性(简单或复合属性)。
- 根对应于F实体的标识符。
- 对于每个节点v,对应的属性通过函数决定了对应于v的后继的所有属性。
1.1.3 修剪和移植属性树
1.1.4 定义维度
1.1.5 定义度量
1.1.6 生成事实模式
1.2 基于关系模式的设计
1.3 基于XML模式的设计
2 混合方法设计
3 需求驱动方法设计
参考资料:
《数据仓库设计:现代原理与方法》Matteo Golfarelli,Stefano Rizzi著