数据仓库螺旋式开发方法
丁言辉吧
全部回复
仅看楼主
level 9
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
2011年03月15日 09点03分 1
level 9
一.数据仓库与数据库系统设计的不同点
20世纪90年代初,美国著名信息工程科学家w.H.Inmon提出了数据仓库的概念:“数据仓库是面向主题的、集成的、不可更新的且随时间不断变化的数据**,是用来支持管理人员的决策的。”这些特点说明了数据仓库从数据组织到面向的数据处理都跟数据库有较大区别,因此在进行数据仓库系统设计时,不能够照搬原来传统的数据库系统开发方法,需要寻找一个适于数据仓库设计的方法。
数据仓库系统设计与数据库系统设计的不同主要表现在以下几个方面:
(1)面向的处理类型不同。操作型数据库系统的设计方式是面向应用的,数据仓库的系统设计则是面向分析的。
(2)面向的需求不同。数据库系统设计有一组较确定的应用需求。而在数据仓库环境下,数据的分析处理的需求灵活,没有固定的模式,因而在进行数据仓库系统设计时,很难获得对用户需求的确切了解。这就决定了我们不可能从用户需求出发来进行数据仓库的设计。
(3)系统设计的目标不同。事务处理的响应时间是数据库系统设计的一个主要目标;而数据仓库系统设计主要目标是保证数据的四个基本特征。
(4)两者的数据来源或系统的输入不同。操作型环境的数据的输入通常来自于组织外部,设计操作型数据库就是设计如何通过与外部交互实现数据输入、存储、查询更新、可靠与正确等操作。而数据仓库的数据主要来自业已存在的系统内部,设计数据仓库就是要设计如何从现存的数据源中得到完整一致的数据,如何将所得数据进行转换、重组、综合,如何有效地提高数据分析的效率与准确性等等。
通过以上分析,确定数据仓库的开发必须具有以下几个基本特点:
(1)方法必须灵活。数据仓库设计师必须能在没有详细定义系统内每个画面和数据元素的情况下进行数据仓库的开发。
(2)开发过程必须是迅速而准确的。
(3)数据仓库的开发应基于数据驱动的特点。
数据仓库系统的原始需求不明确,且不断变化与增加,开发者最初并不能确切了解到用户的明确而详细的需求,用户所能提供的无非是需求的大的方向以及部分需求,更不能较准确地预见到以后的需求。因此,采用螺旋法来进行数据仓库的开发是比较合适的。
2. 基于数据驱动的螺旋式开发方法
基于数据驱动的螺旋式开发方法是将数据驱动的思想与螺旋式开发方法结合起来的一种开发方法。基于数据驱动方法的主要特点是:
(1)利用以前已经建立的数据库进行数据仓库的建设。要尽量利用已存在的数据和代码,而不是从头开始。这是数据驱动思想的出发点。
(2)基于数据驱动的方法不再是面向应用,而是面向主题。
数据仓库的设计是从已有的数据库系统出发,按照分析领域的要求对数据及数据之间的联系重新考察,以组织数据仓库中的主题。
基于数据驱动的螺旋式数据仓库开发过程是一个经过不断循环、反馈而使系统不断增长与完善的过程,其细化的流程图如图1所示。

2011年03月15日 09点03分 2
level 9
(1)系统定义
系统定义主要是分析原始数据、界定系统边界、确定主要的主题域及其内容。对具体的数据仓库开发过程而言,螺旋式开发法是从较小规模开始的,建议一般不要多于一个主题区域(即数据市场)。只有在配置结束之后系统才会向其他主题区域扩展并将结果传递给用户。
(2)系统分析
系统分析阶段主要是技术准备工作和系统目标的确定。根据上面对数据源的分析和范围的确定以及对企业整体情况的了解确定一系列的初步目标,以及这些目标之间的相互关系。
(3)系统设计
系统设计主要包括元数据的设计、逻辑模型的设计和物理模型的设计。
(4)数据仓库的创建
数据仓库的创建所要做的工作是数据仓库生成程序的设计和数据装入。数据仓库创建的最初只使用一部分数据来生成第一个主题域,使得设计人员能够轻易且迅速地对已做工作进行调整,而且能够尽早地提交到下一步骤,即数据仓库的使用和维护。这样既可以在经济上最快地得到回报,又能够通过最终用户的使用,尽早发现一些问题并提出新的需求,然后反馈给设计人员,设计人员继续对系统改进、扩展。
(5)数据仓库的使用
    数据仓库装入数据之后,主要目的是使用数据仓库中的数据服务于决策分析,也就是在数据仓库中建立起DSS应用。
(6)数据仓库的维护与扩展
维护数据仓库的工作主要是管理日常数据装入(如前所述)的工作。
基于数据驱动的螺旋式开发方法后续阶段的目标是在应用的基础上,以螺旋盘升方式逐步扩充和完善数据仓库系统。用户在对数据仓库原型进行使用的过程中,会提出一系列的反馈信息,如由于环境的变化,会产生新的需求,或者对获取的信息要求更加具体或更加概括一些等。根据用户的这些反馈信息,调整或增加主题,并对元数据进行调整和修改。然后根据元数据的修改情况再次对原有数据进行抽取、分类等操作,并将数据集成到相关主题的数据仓库中,以不断扩充和完善数据仓库。最后再提交给用户使用,根据反馈信息再做下一步处理,如此反复,直到系统日益成熟。

2011年03月15日 09点03分 3
level 9
3.总结
基于数据驱动的螺旋式数据仓库开发法是一个不断向外扩展的迭代过程,它的起点较低,每迭代一次,螺旋线增加一周,数据仓库的开发又前进一个层次,系统又生成一个新版本,而软件开发的时间和成本又有新的投入。在沿螺旋线的路径前进过程中,最后总能得到一个客户满意的软件版本。该方法克服了生命周期法和原型法的缺点,以更灵活的过程取代传统方法,非常适于数据仓库面向主题、基于数据驱动的开发特点。

2011年03月15日 09点03分 4
1