文档介绍:第3章设计数据仓库
建造数据仓库有两个主要部分—与操作型系统接口的设计和数据仓库本身的设计。然
而因为“设计”一词暗含了可以预先对组成单元进行规划的意思,所以用在这里并不完全准
确。数据仓库的需求只有在已经装载了部分数据并已开始使用时才能弄清楚,因此过去很有
效的设计方法在设计数据仓库时并不能满足需要。数据仓库是在启发方式下建造的,在这个
过程中一个阶段的开发完全依赖于在上一阶段获得的结果。首先,载入一部分数据供 D S S分
析员使用和查看。然后根据最终用户的反馈,修改数据和/或添加其他数据。这种反馈过程贯
穿于数据仓库的整个开发生命周期之中。
因此,数据仓库的设计不能采用与传统的需求驱动的系统相同的方法进行。但与此同时,
对需求进行预测仍然是十分重要的。实际情况通常是介于这二者之间。
注意与本章内容并行的一种数据仓库设计方法学可以在 w w w . b i l l i n m o n . c o m免费得
到。这一方法学是以迭代的方式进行的,并且对所有必需的设计步骤都有非常详细
的介绍。
从操作型数据开始
起初,面向事务处理的操作型数据被存储在现有历史系统中。虽然“创建数据仓库就是
从操作环境中抽取数据然后将这些数据载入数据仓库”这种想法非常诱人,但是事实远非如
此。仅仅是将数据从操作型环境中取出并放到数据仓库中几乎挖掘不出数据仓库的任何潜力。
图3 - 1简单地示出了数据从现有历史系统环境转移到数据仓库的过程。这里,我们可以看
到,有多个应用向数据仓库提供数据。
数据仓库
现有应用
图3-1 将数据从操作型环境移入数据仓库环境不是简单的抽取
图3 - 1显得过于简单了,这有很多的原因。最重要的一个原因是,这一过程没有考虑到操
作型环境中的数据是未经集成的。图 3 - 2描述了一个典型的现有系统中缺乏集成的情况。将未
56中中第 3 章
经集成的数据载入到数据仓库是一个极端严重的错误。
在建立现有应用时,根本没有考虑过以后可能存在的集成问题。每一个应用都有其独有
的特殊的需求,因此,出现这样一些情况,如一些相同的数据以不同的名字出现在各个地方,
一些数据在不同的地方以相同的方式标注,一些数据用相同的名字存在相同的地方却使用了
不同的度量单位等等,也就不足为奇了。从多处抽取数据并将数据集成到一个统一的视图中
是一个十分复杂的问题。
储蓄 DDA 贷款信托
相同的数据, 不同的数据, 这里的数据不在不同的关键字,
不同的名字相同的名字其他地方出现相同的数据
图3-2 源自不同应用的数据集成性很差
数据缺乏集成是抽取程序员不得不面对的一场噩梦。如图 3 - 3所示,为了从操作型环境中
适当地取出数据,必须对无数细节编程并进行一致性处理。
编码转换数据仓库
应用A-m, f
m, f
应用B-1, 0
应用C-x, y
应用D-, 女
度量单位转换数据仓库
应用A艿厘米
应用B艿英寸 cm
应用C艿千立方英尺
应用D艿码
字段转换数据仓库
应用A-balance
应用B-bal bal
应用C-currbal
应用D-balcurr
图3-3 为了将现有系统环境中的数据正确地移到数据仓库环境中,必须进行集成
数据缺乏集成的一个简单例子就是数据编码不一致,如图中对性别的不同编码。在一个
应用中,性别编码为“ m / f”;另一个应用中则编码为“ 0 / 1”;还有一个应用编码为“ x / y”。
当然只要性别的编码的方法一致,至于怎样编码这个问题并没有什么关系。因此,当数据进
入仓库时,必须先对各个应用的不同值进行正确地译码,然后再重新编码为合适的值。
设计数据仓库国国57
我们再来看另外一个例子,四个应用都含有字段—“管道”,但在每个的应用中却使用
了不同的度量单位。一个应用中管道的度量单位是英寸,一个是厘米,等等。在数据仓库中
采用什么单位对管道进行度量并不重要,但必须一致。当一个应用向数据仓库传送数据时,
必须将管道的度量单位转换为惟一并且一致的全局度量标准。
字段转换是数据集成的另一个问题。例如同一字段在四个应用中有不同的名字,为了转
换数据使其正确地进入仓库,就必须建立各个不同源字段到数据仓库字段的映射。
另外一个问题是原有数据在不同的 D B M S下可能以多种不同格式存储。一些原有数据在
I M S中,一些在D B 2中,还有一些可能在 V S A M中。所有采用这些技术存储的数据最后都必须
转换到同一种技术下存储。这种技术的转换并不总是很简单的。
这些简单的例子几乎还未涉及到集成的最浅层,并且就例子