ccidnet????

出版日期:1999-01-11 总期号:351 本年期号:02

本期导读
信息综述
产品技术
行业应用
网络通信
市场研究
构造新版“资治通鉴”
数据仓库发展轨迹的探索
杨泳、孙玉芳


  孙玉芳:1947年出生,1970年毕业于北京大学数学力学系,1981年于中国科学院计算技术研究所获硕士学位。1992年为中科院软件所研究员,1995年任博士导师,1994年10月任副所长。此外被聘为中国信息技术标准化委员会副主任、中国unix用户协会秘书长、国际开发系统互联亚洲大洋洲aow技术协调组多国语言处理专委主席。曾在国际和国内学术会议和刊物上发表论文150多篇,出版过专著15本、译著和审译的著作100多本。

  数据仓库正成为各界关注的热点,它的理论已经被广泛接受,但定义还没有统一。严格地讲,数据仓库不是一种产品,也不单是一种计算机技术,它是计算机技术与企业决策管理的结合,是为把握整个企业的运作而提出的信息查询方案。所以,人们不能购买它,必须构造它。


  微机与数据库发展的必然产物


  数据仓库现在正成为商业公司、科研机构、学者和计算机商关注的热点。早在80年代就出现了数据仓库的想法,其中以ibm公司提出的“information warehouse”为代表。由于当时的软硬件水平达不到普及应用的要求,实现数据仓库的花费过于昂贵,数据仓库思想没有引起太多注意。但以1992年w.h.inmon出版《building the data warehouse》为标志,数据仓库以惊人的速度发展起来,inmon也被誉为“数据仓库之父”。

  70年代初e.f.codd 提出的关系数据模型和实体—关系数据建模方法在80年代得到广泛应用,数据库技术基本成熟,计算机在商业上的应用日趋广泛。 80年代后期,公司开始引入处理,虽然最初的目的是处理文档之类,但用户开始提出通过微机友好界面访问公司商业数据的要求。这时is人员主要关心计算机处理业务的性能,所以数据库结构设计得利于更新而不利于查询。再加上微机端软件水平低,对访问主机数据的支持不够,所以数据仓库的理论还处在萌芽阶段。

  90年代,微机已经非常普及,客户机/服务器(c/s)结构开始流行。这种结构运用在数据库方面,使最终用户能从微机访问主机的数据,标志着微机真正进入商业领域。以前is人员为减少冗余,数据库都设计成连接关系复杂的高级范式模型。而现在,最终用户关心的却是如何尽量快地查询到自己所需要的全面的信息,要求系统的设计从数据查询的角度入手。以前分割、紧缩的数据库模型显然很难充分支持来自微机端的查询要求,is人员被要求能在业务数据库的基础上为最终用户再建一层查询数据库即数据仓库,这促使数据仓库理论开始被广泛接受。


  商业竞争的需要


  90年代后,公司普遍采用计算机处理业务,商业发展要求计算机处理从每天的事务工作范围扩大到决策支持范围,从“节省开支”转向“辅助决策、开拓市场”。

  以前计算机应用按照部门职责和业务功能被分割成互不关联的模块,在每个大模块内又照此细分成更小的模块,直至简单到能被清晰描述和实现。这种做法的好处是开发维护容易、对细节问题的处理效率高,运用在商业日常事务处理上是合适的。因此运作系统普遍用这种模式开发。由于数据库技术在商业上的成功应用,这种独立的模块在公司内部越来越多,公司数据量日益增大,而且由于模块自成体系故相互之间无法交流。同时商业的快速发展和商务处理的复杂化以及公司间数据往来的频繁,也加剧了这种混乱。公司的管理层普遍感到不能全面、清晰、快速地掌握公司的业务情况,更不用说把握公司在市场环境下的发展方向。为了能解决这个难题,必须建立大一统的企业数据模型,构造方便查询的非范式数据结构,并充分运用c/s模型,设计出适合本单位实际的数据仓库系统。这也表示着计算机化由公司低层的事务处理扩大到高层的决策支持,是商业发展和竞争加剧的必然结果。

  建造数据仓库是一个庞大的系统集成项目,需要大量的资金和公司内各部门间的紧密合作,特别是is人员与最终用户要互相理解对方的需求和困难。

  尽管有种种困难,数据仓库这个趋势是不可阻挡的,是继业务处理计算机化后的又一次重大挑战。


  面向整个企业的信息查询方案


  90年代数据仓库热的兴起,也带来了一个问题,就是定义的混乱。计算机软硬件商为了强调自己产品的某些功能,使概念能迎合自己商业目的,将数据仓库的含义做了一些修改。将数据仓库描绘成一种产品,似乎只要购买了这些产品,公司的数据仓库马上就能构造起来。

  我们认为,建造数据仓库不可能由计算机商来主导。它只能由公司自己构造以适应公司特殊的需求。随着计算机技术环境不断改进,这种需求也在不断提高,数据仓库不是一个静态的概念。如果没有最终用户的参与,在设计数据仓库时没有谨慎地做好用户需求分析,而仅仅从计算机技术和设备的角度考虑问题,这样建造出来的数据仓库不可能得到最终用户的欢迎。所以严格地讲,数据仓库既不是某种产品,也不单是一种计算机技术,它是计算机技术与公司决策管理的结合,是为把握整个公司的运作而提出的信息查询方案。现在信息技术界普遍认为“数据仓库是一种体系结构,而不是一种产品;你无法购买现成的数据仓库,而必须构造它”。

  在数据仓库概念流行以前,一些公司为了掌握本单位的经营状况,已经尝试利用c/s结构以支持微机访问本部门的业务数据。由此产生了eis(executive information system)、olap(online analytical processing)、dss(decision support system)等术语。这个时期的查询主要针对某个特定的业务运作系统,甚至查询数据层直接依附于业务数据库。由于独立业务处理流程明确、数据格式简单、平台单一,所以难度比建数据仓库要小得多。

  如果高层的管理人员要对整个大公司有个全面的掌握,不限于一个部门一种业务,而是全部部门所有业务,不限于业务数据,而是还包括历史数据、个人数据、外界数据,则必须建立数据仓库。所以说数据仓库是面向整个企业的信息查询方案。为了区别部门级的决策支持系统和企业级的决策支持系统即数据仓库,将前者称作“数据集市”或“数据站场”(data mart)。数据集市是适用于数据范围较小、服务于一个单位某个部门的数据仓库。由于数据集市小巧灵活,容易建造,耗资少,对于规模不大、业务简单的公司,可以考虑用数据集市代替数据仓库。即使决定要建造数据仓库的公司,也可以先建造数据集市来锻炼is人员和培养管理人员对计算机辅助管理的兴趣。


  与数据库的关系


  因为只有关系数据库技术才比较成熟,所以抛开关系数据库技术来构造数据仓库的情况很少。数据仓库的实现目前仍然借助关系数据库。

  但另一方面,数据仓库和运作数据库之间的差异也是明显的。

  (1)数据仓库是面向主题的,而运作数据库是面向应用的。

  运作数据库系统善于处理每次只涉及少量行的数据,数据很少冗余,大量使用代码,数据表按业务功能设计,表之间关系复杂,但更新频繁的操作。数据仓库则不然,它根据最终用户的观点来组织和提供数据,目的是尽量快而全地提供用户需要的信息,很少或几乎不作数据更新操作,但每次涉及大量的数据行以及表之间的大量连接。容忍适当的数据冗余,要求少挂代码,希望从数据分析查询的角度来考虑空间和时间的平衡。

  (2)数据仓库的规模一般远远超过运作数据库。

  数据仓库中包含大量的历史数据。这些历史数据在运作数据库系统中的意义不大,为了减少存储量来加快业务处理速度,运作数据库会定期清理这些历史数据。但这些数据对于数据仓库来说却非常重要,只有对一定时期的连续数据作历史的分析,才能把握公司的发展状况及预测公司的未来。数据仓库所含数据的容量从几十兆到数千兆,远远超过运作系统的数据量。为了管理这些数据,并在用户需要时从中迅速找出有用信息,需要采用与运作数据库不同的数据组织方法。

  (3)数据仓库含大量的衍生数据。

  虽然运作系统的应用程序也会产生衍生数据,但为了控制数据量,大都会在业务处理结束后及时清除。而数据仓库存储大量的衍生数据,这样可以节省查询工作量和再次推导的时间。数据仓库往往会预先计算并存储一些高度概括的数据,以加快一些使用频度高的查询的速度。

  (4)数据仓库的结构比运作数据库简单。

  设计运作数据库时要限制数据重复和冗余、避免破坏数据库完整性的可能,因此运作数据库的标准化要求高,要充分考虑应用逻辑上的完整性约束。带来的后果是运作数据库的结构精巧而复杂,最终用户不能方便地直接从中获取信息。而数据仓库的目标是向最终用户揭示信息的秘密,希望用户能容易理解数据的组织,方法是提供一个范围广泛的数据表,包含用户感兴趣的所有问题。设计数据仓库时不必过多考虑完整性的问题,因为对数据仓库很少有数据更新操作。也不用刻意限制数据冗余,因为适当的冗余往往有利于信息的查询。

  当然,数据仓库也有完整性的问题,这方面,要在从运作系统向数据仓库信息系统作数据填充时予以谨慎考虑,而不是在使用数据仓库时。

  (5)公司可能有许多异构的运作数据库但只有单一的数据仓库。

  公司业务的计算机化是一个长期的发展过程。在逐步实现公司业务处理计算机化的同时,许多新的计算机平台、技术不断涌现,is部门为了跟上计算机的发展,势必不断采用新的计算机硬件设备、操作系统、数据库系统,所以公司内部的运作系统之间往往是异构的。而公司的数据仓库一般只能有一个,不存在相互异构的问题,故有利于最终用户理解数据是如何存放的,使他们能更好地从浩瀚的数据中得到所需要的正确信息。由于数据仓库只有一个,将来数据仓库的基础结构(infrastructure)升级也会非常容易。另外,单一的数据仓库也方便了is人员管理容量如此巨大的数据。


  带来信息查询的变化


  在数据仓库出现以前,公司的管理层一般通过is部门送交的数据报表来了解公司的经营情况。这种方法最大的缺陷是反馈速度慢。在当今市场风云变幻的情况下,如此漫长的反馈时间会使公司管理层丧失许多商业良机。其次,报表是静态的,当管理人员对某些细节感兴趣或希望作一些统计对比分析时,还要先向is人员提出,再由他们来完成新的报表,这会破坏管理人员的决策灵感。三是表格数据枯燥无味,隐藏在数据中的信息不容易被发现。

  数据仓库所提供的信息查询能力则强大很多。从数据仓库中获取信息有两种模式:验证和发现。在验证模式,最终用户作出一种商业性的假设,然后通过访问数据仓库中的数据来证明真伪;在发现模式,最终用户预先并不知道被发现的规律和关系。从工具的角度,可以将数据仓库的决策支持系统分成三部分:信息处理、多维分析、数据挖掘。其中信息处理和多维分析属于验证模式,数据挖掘属于发现模式。

  信息处理包括简单的数据分析、基本的统计查询。要访问的数据可以是近期的,也可以是历史的。信息处理通常只限于二维处理和三维处理。数据以复杂报表和图形的形式给出,主要目的在于使最终用户能尽可能快而直观地得到公司运作报告。复杂查询要按商业术语和规则来定义,使最终用户不必对底层数据结构作技术上的理解。

  数据仓库的出现,真正使联机分析处理(olap)成为流行的查询方式,是继计算机实现联机事务处理(oltp)后的又一次重大进步。olap是一种数据分析技术,也叫多维数据分析,它将数据仓库中的数据转换成多维的逻辑视图,支持交互式的查询分析(包括细剖和概括两个方向,也称为上下挖掘),支持发展预测、趋势分析和统计分析,能提供新的度量如比率,能以表和图的形式检索和显示数据并能方便地变换观察基轴。在多维分析中,数据按维层次来组织。最典型的是时间维,可以包含天、周、月、季度、半年、年等维元素。其它有地理维、产品维、部门维等等。

  数据挖掘指通过对大量详细的数据作分析以发现出乎意料之外的或预先未知的关系、模式、规律。数据挖掘的实现与前两者有很大差异。它涉及更庞大的数据和更多的维,关注隐藏在数据下面的深层的商业规律,分析处理过程需要很少的指导,处理时间从几分钟到几天不等,所以不支持即席查询。数据挖掘现在能为用户所用,是因为三方面因素已经基本成熟:大规模数据收集、强大的计算机处理能力、数据挖掘理论。最常用的数据挖掘技术包括决策树和规则发现、人工神经网络、遗传算法、聚簇等等。虽然现在大量数据挖掘工具独立于数据仓库之外,但基于数据仓库的数据挖掘处理简单而且效率更高。