第四节 物理模型设计

  这一步所做的工作是确定数据的存储结构,确定索引策略,确定数据存放位置,确定存储分配。

确定数据仓库实现的物理模型,要求设计人员必须做到以下几方面:

l 要全面了解所选用的数据库管理系统,特别是存储结构和存取方法。
l 了解数据环境、数据的使用频度、使用方式、数据规模以及响应时间要求等,这些是对时间和空间效率进行平衡和优化的重要依据。
l 了解外部存储设备的特性,如分块原则,块大小的规定,设备的I/O特性等。

1. 确定数据的存储结构

  一个数据库管理系统往往都提供多种存储结构供设计人员选用,不同的存储结构有不同的实现方式,各有各的适用范围和优缺点,设计人员在选择合适的存储结构时应该权衡三个方面的主要因素:存取时间、存储空间利用率和维护代价。

2. 确定索引策略

  数据仓库的数据量很大,因而需要对数据的存取路径进行仔细的设计和选择。由于数据仓库的数据都是不常更新的,因而可以设计多种多样的索引结构来提高数据存取效率。
在数据仓库中,设计人员可以考虑对各个数据存储建立专用的、复杂的索引,以获得最高的存取效率,因为在数据仓库中的数据是不常更新的,也就是说每个数据存储是稳定的,因而虽然建立专用的、复杂的索引有一定的代价,但一旦建立就几乎不需维护索引的代价。

3. 确定数据存放位置

  我们说过,同一个主题的数据并不要求存放在相同的介质上。在物理设计时,我们常常要按数据的重要程度、使用频率以及对响应时间的要求进行分类,并将不同类的数据分别存储在不同的存储设备中。重要程度高、经常存取并对响应时间要求高的数据就存放在高速存储设备上,如硬盘;存取频率低或对存取响应时间要求低的数据则可以放在低速存储设备上,如磁盘或磁带。

  数据存放位置的确定还要考虑到其它一些方法,如:决定是否进行合并表;是否对一些经常性的应用建立数据序列;对常用的、不常修改的表或属性是否冗余存储。如果采用了这些技术,就要记入元数据。

4. 确定存储分配
  许多数据库管理系统提供了一些存储分配的参数供设计者进行物理优化处理,如:块的尺寸、缓冲区的大小和个数等等,它们都要在物理设计时确定。这同创建数据库系统时的考虑是一样的。

第五节 数据仓库的生成
  在这一步里所要做的工作是接口编程,数据装入。
  这一步工作的成果是,数据已经装入到数据仓库中,可以在其上建立数据仓库的应用,即DSS应用。

1. 设计接口

  将操作型环境下的数据装载进入数据仓库环境,需要在两个不同环境的记录系统之间建立一个接口。乍一看,建立和设计这个接口,似乎只要编制一个抽取程序就可以了,事实上,在这一阶段的工作中,的确对数据进行了抽取,但抽取并不是全部的工作,这一接口还应具有以下的功能:

l 从面向应用和操作的环境生成完整的数据;
l 数据的基于时间的转换;
l 数据的凝聚;
l 对现有记录系统的有效扫描,以便以后进行追加。

  当然,考虑这些因素的同时,还要考虑到物理设计的一些因素和技术条件限制,根据这些内容,严格地制定规格说明,然后根据规格说明,进行接口编程。从操作型环境到数据仓库环境的数据接口编程的过程和一般的编程过程并无区别,它也包括伪码开发、编码、编译、检错、测试等步骤。

  在接口编程中,要注意:

l 保持高效性,这也是一般的编程所要求的;
l 要保存完整的文档记录;
l 要灵活,易于改动;
l 要能完整、准确地完成从操作型环境到数据仓库环境的数据抽取、转换与集成。

2. 数据装入
在这一步里所进行的就是运行接口程序,将数据装入到数据仓库中。主要的工作是: 
l 确定数据装入的次序;
l 清除无效或错误数据;
l 数据“老化” ;
l 数据粒度管理;
l 数据刷新等。

  最初只使用一部分数据来生成第一个主题域,使得设计人员能够轻易且迅速地对已做工作进行调整,而且能够尽早地提交到下一步骤,即数据仓库的使用和维护。这样既可以在经济上最快地得到回报,又能够通过最终用户的使用、尽早发现一些问题并提出新的需求,然后反馈给设计人员,设计人员继续对系统改进、扩展。
 
第六节 数据仓库的使用和维护
  在这一步中所要做的工作有建立DSS应用,即使用数据仓库理解需求,调整和完善系统,维护数据仓库。

  建立企业的体系化环境,不仅包括建立起操作型和分析型的数据环境,还应包括在这一数据环境中建立起企业的各种应用。数据仓库装入数据之后,下一步工作是:一方面,使用数据仓库中的数据服务于决策分析的目的,也就是在数据仓库中建立起DSS应用;另一方面,根据用户使用情况和反馈来的新的需求,开发人员进一步完善系统,并管理数据仓库的一些日常活动,如刷新数据仓库的当前详细数据、将过时的数据转化成历史数据、清除不再使用的数据、调整粒度级别等。我们把这一步骤称为数据仓库的使用与维护。

1. 建立DSS应用

使用数据仓库,即开发DSS应用,与在操作型环境中的应用开发有着本质区别,开发DSS应用不同于联机事务处理应用开发的显著特点在于:
l DSS应用开发是从数据出发的;
l DSS应用的需求不能在开发初期明确了解;
l DSS应用开发是一个不断循环的过程,是启发式的开发。

  DSS应用主要可分为两类:例行分析处理和启发式分析处理。例行分析处理是指那些重复进行的分析处理,它通常是属于部门级的应用,如部门统计分析,报表分析等等;而个人级的分析应用经常是随机性很大的,企业经营者受到某种信息启发而进行的一些即席的分析处理,所以我们称之为启发式的分析处理。

DSS应用开发的大致步骤如下:
  步骤l——确定所需的数据。为满足DSS应用的要求,我们必须从数据仓库中确定一个可能用到的数据范围。这是一个试探的过程。
  步骤2——编程抽取数据。根据上面得到的数据范围,编写一个抽取程序来获得这些数据。为适应分析需求多变的特点,要求所编写的抽取程序应该通用,易于修改。
  步骤3——合并数据。如果有多个数据抽取源,要将抽取来的数据进行合并、提炼,使数据符合分析处理的要求。
  步骤4——分析数据。在上步准备好的数据基础上进行分析处理,并看所得的结果是否满足了原始的要求,如果不能满足,则返回步骤1,开始新的一次循环,否则就准备最终分析结果报告。
  步骤5——回答问题。生成最终分析结果报告。—般情况下,最终的分析结果报告是在许多次的循环后得到的,因为一次分析处理很少是在一次循环后就完成的。
  步骤6——例行化、一次分析处理的最后、我们要决定是否将在上面已经建立的分析处理例行化。如果建立的分析处理是重复进行的部门级的DSS应用,那么最好是将它例行化,这样在进行下一次同样的分析处理时,不必再重复上述六步的循环过程。而且,不断地积累这种例行处理,形成一个集合,我们就可以通过组合这些已有的处理来生成新的一个较大的复杂处理,或完成一个复杂处理的一部分。

2. 理解需求,改善和完善系统,维护数据仓库

  数据仓库的开发是逐步完善的原型法的开发方法,它要求:要尽快地让系统运行起来,尽早产生效益;要在系统运行或使用中,不断地理解需求,改善系统;不断地考虑新的需求,完善系统。

  维护数据仓库的工作主要是管理日常数据装入的工作,包括刷新数据仓库的当前详细数据,将过时的数据转化成历史数据.清除不再使用的数据,管理元数据,等等;另外,如何利用接口定期从操作型环境向数据仓库追加数据,确定数据仓库的数据刷新频率,等等。