首页 理论教育数据库技术与应用教程:数据仓库的重要性与作用

数据库技术与应用教程:数据仓库的重要性与作用

【摘要】:数据仓库是体系化环境的核心,它是建立决策支持系统的基础。DSS对数据集成的迫切需要也许是数据仓库技术出现的最主要的原因。数据仓库是面向主题的主题是一个抽象的概念,是在较高层次上将信息系统中的数据综合、归类并进行分析利用的抽象。“主题”在数据仓库中是由一系列表实现的。

传统的数据库技术是单一的数据资源,它以数据库为中心,进行从事务处理、批处理到决策分析等各种类型的数据处理工作。然而,不同类型的数据处理有着不同的处理特点,以单一的数据组织方式进行组织的数据库并不能反映这种差别,满足不了数据处理多样化的要求。随着对数据处理认识的逐步加深,人们认识到计算机系统的数据处理应当分为两类,以操作为主要内容的操作性处理和以分析决策为主要内容的分析型处理。

操作型处理也称为事务处理,它是指对数据库联机的日常操作,通常是对记录的查询、修改、插入、删除等操作。分析型处理主要用于决策分析,为管理人员提供决策信息,例如:决策支持系统(DSS)和多维分析等。分析型处理与事务型处理不同,不但要访问现有的数据,而且要访问大量历史数据,甚至需要提供企业外部、竞争对手的相关数据。

显然传统数据库技术不能反映这种差异,它满足不了数据处理多样化的要求。事务型处理与分析型处理的分离,划清了数据处理的分析型环境和操作型环境之间的界限,从而由原来的单一数据库为中心的数据环境(即事务处理环境)发展为一种新环境——体系化环境。体系化环境由操作型环境和分析型环境(包括全局级数据仓库、部门级数据仓库、个人级数据仓库)构成。数据仓库是体系化环境的核心,它是建立决策支持系统(DSS)的基础。

1.事务处理环境不适合运行分析型的应用系统

传统的决策支持系统(DSS)一般是建立在事务处理环境上的。虽然数据库技术在事务处理方面的应用是成功的,但它对分析处理的支持一直不能令人满意。特别是当以事务处理为主的联机事务处理(OⅠXP)应用与以分析处理为主的DSS应用共存于同一个数据库系统中时,这两种类型的处理就发生了明显的冲突。其原因在于事务处理和分析处理具有极不相同的性质,直接使用事务处理环境来支持DSS是不合适的。下列原因说明了为什么事务处理环境不适宜决策支持系统(DSS)应用。

(1)事务处理和分析处理的性能特性不同

一般情况下,在事务处理环境中用户的行为主要是数据的存取以及维护操作,其特点是操作频率高且处理时间短,系统允许多个用户同时使用系统资源。由于采用了分时方式,用户操作的响应时间是比较准的。而在分析处理环境中,一个DSS应用程序往往会连续运行几个小时甚至更长的时间,占用大量的系统资源。具有如此不同处理性能的两种应用放在同一个环境中运行显然是不合适的。

(2)数据集成问题

决策支持系统(DSS)需要集成的数据,全面而正确的数据是进行有效分析和决策的首要前提,相关数据收集得越完整,得到的结果就越可靠。DSS不仅需要企业内部各部门的相关数据,还需要企业外部甚至竞争对手的相关数据。而事务处理一般只需要与本部门业务有关的当前数据,对于整个企业范围内的集成应用考虑很少。绝大多数企业内数据的真正状况是分散而不是集成的,虽然每个单独的事务处理应用可能是高效的,但这些数据却不能成为一个统一的整体。

决策支持系统(DSS)应用需要集成的数据,DSS必须在自己的应用程序中对这些纷杂的数据进行集成。数据集成是一件非常繁杂的工作,如果由应用程序来完成,无疑会大大增加程序员的工作量,而且每一次分析都需要一次集成,会使得处理效率极低。DSS对数据集成的迫切需要也许是数据仓库技术出现的最主要的原因。

(3)数据的动态集成问题

如果每次分析都对数据进行集成,这样无疑会使得开销太大。一些应用仅在开始对所需的数据进行集成,以后就一直以这部分集成的数据作为分析的基础,不再与数据源发生联系,这种方式的集成称为静态集成。静态集成的缺点是非常明显的,当数据源中的数据发生了变化,而数据集成一直保持不变,决策者就不能得到更新的数据。虽然决策者并不要求随时准确地掌握数据的任何变化,但也不希望他所分析的是很久以前的数据。因此,集成系统必须以一定的周期(例如几天或一周)进行刷新,这种方式称为动态集成。很显然,事务处理系统是不能进行动态集成的。

(4)历史数据问题

事务处理一般只需要当前的数据,数据库中一般也只存放短期的数据,即使存放有历史数据也不经常使用。但对于决策分析来说,历史数据是非常重要的,许多分析方法还必须以大量的历史数据为依据来进行分析,分析历史数据对于把握企业的发展方向是很重要的。事务处理难以满足上述要求。

(5)数据的综合问题(www.chuimin.cn)

事务处理系统中积累了大量的细节数据,这些细节往往需要综合后才能被决策支持系统(DSS)所利用,而事务处理系统是不具备这种综合能力的。

以上种种问题表明,在事务环境中直接构造分析型应用是不合适的。建立在事务处理环境上的分析系统并不能有效地进行决策分析。要提高分析和决策的效率,就必须将分析型处理及其数据与操作型处理及其数据分离开来,必须把分析数据从事务处理环境中提取出来,按照处理的需要重新组织数据,建立单独的分析处理环境。数据仓库技术正是为了构造这种分析处理环境而产生的一种数据存储和数据组织技术。

2.数据仓库的定义以及特点

数据仓库是面向主题的、集成的、不可更新的、随时间不断变化的数据的集合,数据仓库用来支持企业或组织的决策分析处理。数据仓库的定义实际上包含了数据仓库的以下4个特点。

(1)数据仓库是面向主题的

主题是一个抽象的概念,是在较高层次上将信息系统中的数据综合、归类并进行分析利用的抽象。较高层次是相对面向应用的数据组织而言的。按照主题进行数据组织的方式具有更高的数据抽象级别,主题对应企业或组织中某一宏观分析领域所涉及的分析对象。

传统的数据组织方式是面向处理具体的应用的,对于数据内容的划分并不适合分析的需要。比如一个企业,应用的主题包括零件、供应商、产品、顾客等,它们往往被划分为各自独立的领域,每个领域有着自己的逻辑内涵。

“主题”在数据仓库中是由一系列表实现的。基于一个主题的所有表都含有一个称为公共码键的属性,该属性作为主码的一部分。公共码键将一个主题的各个表联系起来,主题下面的表可以按数据的综合内容或数据所属时间进行划分。由于数据仓库中的数据都是同某一时刻联系在一起的,所以每个表除了公共码键之外,在其主码键中还应包括时间成分。

(2)数据仓库是集成的

由于操作型数据与分析型数据存在着很大的差别,而数据仓库的数据又来自于分散的操作型数据,因此必须先将所需数据从原来的数据库数据中抽取出来,进行加工与集成、统一与综合之后才能进入数据仓库。原始数据中会有许多矛盾之处,如字段的同名异议、异名同义、单位不一致、长度不一致等,入库的第一步就是要统一这些矛盾的数据。另外,原始的数据结构主要是面向应用的,要使它们成为面向主题的数据结构,则还需要进行数据综合和计算。数据仓库中的数据综合工作可以在抽取数据时生成,也可以在进入数据仓库以后再进行综合生成。

(3)数据仓库是不可更新的

数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询,一般情况下并不需要对数据进行修改操作。历史数据在数据仓库中是必不可少的,数据仓库存储的是相当长一段时间内的历史数据,是不同时间点数据库的结合,以及基于这些数据进行统计、综合和重组导出的数据,不是联机处理的数据。因而,数据在进入数据仓库以后一般是不更新的,是稳定的。

(4)数据仓库是随时间而变化的

虽然数据仓库中的数据一般是不更新的,但是数据仓库的整个生存周期中的数据集合却是会随着时间的变化而变化的。主要表现在以下三个方面。首先,数据仓库随着时间的变化会不断增加新的数据内容。数据仓库系统必须不断捕捉联机处理数据库中新的数据,追加到数据仓库中去,但新增加的变化数据不会覆盖原有的数据。其次,数据仓库随着时间的变化要不断删去旧的数据内容。数据仓库中的数据也有存储期限,一旦超过了这一期限,过期的数据就要被删除,而数据仓库中的数据并不是永远保存,只是保存时间更长。最后,数据仓库中包含大量的综合数据,这些综合数据很多与时间有关,如数据按照某一时间段进行综合,或每隔一定时间段进行抽样等,这些数据会随着时间的不断变化而不断地重新综合。