首页 百科知识 数据仓库概述

数据仓库概述

时间:2022-10-09 百科知识 版权反馈
【摘要】:例如,在DSS中经常要访问大量的历史数据,当以业务处理为主的联机事务处理应用与以分析处理为主的决策支持系统应用共存于同一数据库系统中时,这两种类型的处理发生了明显的冲突。数据仓库用于决策支持,也称分析型处理,用于决策分析,它是建立决策支持系统的基础。按照实际应用即业务处理流程来组织数据,其主要目的是通过进行联机事务处理来提高日常业务处理的速度与准确性等。

1.3.1 数据仓库概述

随着计算机技术的飞速发展和企业界不断提出新的需求,数据仓库技术应运而生。传统的数据库技术是以单一的数据资源,即数据库为中心,进行事务处理、批处理到决策分析等各种类型的数据处理工作。然而,不同类型的数据处理有着其不同的处理特点,以单一的数据组织方式进行组织的数据库并不能反映这种差异,满足不了数据处理多样化的要求。近年来,随着计算机应用,特别是数据库应用的广泛普及,人们对数据处理的这种多层次特点有了更清晰的认识。总结起来,当前的数据处理可以大致地划分为两大类:操作型处理和分析型处理(或信息型处理)。操作型处理也叫事务处理,是指对数据库联机的日常操作,通常是对一个或一组记录的查询和修改,主要是为企业的特定应用服务的,人们关心的是响应时间、数据的安全性和完整性。分析型处理则用于管理人员的决策分析。例如,在DSS中经常要访问大量的历史数据,当以业务处理为主的联机事务处理(OLTP)应用与以分析处理为主的决策支持系统(DSS)应用共存于同一数据库系统中时,这两种类型的处理发生了明显的冲突。人们逐渐认识到,事务处理和分析处理具有极不相同的性质,直接使用事务处理环境来支持DSS是行不通的。两者之间的巨大差异使得操作型处理和分析型处理的分离成为必然。这种分离,划清了数据处理的分析型环境与操作型环境之间的界限,从而由原来的以单一数据库为中心的数据环境发展为一种新环境:体系化环境。

1.3.1.1 数据仓库的概念

数据仓库(data warehouse,DW)的概念形成是以Prism Solutions公司副总裁W.H.Inmon在1992年出版的《建立数据仓库》(Building the Data Warehouse)一书为标志的。数据仓库的提出是以关系数据库、并行处理和分布式技术的飞速发展为基础的,是解决信息技术(IT)在发展中存在的拥有大量数据却有用信息贫乏(Data rich-Information poor)这一问题的综合解决方案

从目前的形势看,数据仓库技术已紧跟Internet而上,成为信息社会中获得企业竞争优势的又一关键。美国MetaGroup市场调查机构的资料表明,《幸福》杂志所列的全球2000家大公司中已有90%将Internet网络和数据仓库这两项技术列入其企业计划,而且有很多企业为使自己在竞争中处于优势已经率先采用之。

传统数据库用于事务处理,也叫操作型处理,是指对数据库联机进行日常操作,即对一个或一组记录的查询和修改,主要为企业特定的应用服务。用户关心的是响应时间、数据的安全性和完整性。数据仓库用于决策支持,也称分析型处理,用于决策分析,它是建立决策支持系统(DSS)的基础。

操作型数据(DB数据)与分析型数据(DW数据)之间的差别如表1.1所示。

表1.1  操作型数据(DB数据)与分析型数据(DW数据)的区别

img1

1.3.1.2 数据仓库特点

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

与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。什么是主题呢?首先,主题是一个抽象的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它对应于企业中某一宏观分析领域所涉及的分析对象。主题是数据归类的标准,每一个主题基本对应一个宏观的分析领域。例如,保险公司的数据仓库的主题为:客户、政策、保险金、索赔等。基于应用数据库的组织则完全不同,它的数据只是为处理具体应用而组织在一起的。保险公司按照应用组织的数据库是:汽车保险、生命保险、健康保险、伤亡保险等。面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整、一致的描述,能完整、统一地刻画各个分析对象所涉及的企业的各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。

需要指出一点,目前数据仓库仍是采用关系数据库技术来实现的,也就是说数据仓库的数据最终也表现为关系。因此,要把握主题和面向主题的概念,需要将它们提高到一个更高的抽象层次上来理解,也就是要特别强调概念的逻辑意义。

为了更好地理解主题与面向主题的概念,说明面向主题的数据组织与传统的面向应用的数据组织方式的不同,在此引用一例:一家采用“会员制”经营方式的商场,按业务已建立起采购、销售、库存管理以及人事管理子系统。按照其业务处理要求,建立了各自的数据库模式:

采购子系统:

  订单(订单号,供应商号,总金额,日期)

  订单细则(订单号,商品号,类别,单价,数量)

  供应商(供应商号,供应商名,地址,电话)

销售子系统:

  顾客(顾客号,姓名,性别,年龄,文化程度,地址,电话)销售(员工号,顾客号,商品号,数量,单价,日期)

库存管理子系统:

  领料单(领料单号,领料人,商品号,数量,日期)

  进料单(进料单号,订单号,进料人,收料人,日期)

  库存(商品号,库房号,库存量,日期)

  库房(库房号,仓库管理员,地点,库存商品描述)

人事管理子系统:

  员工(员工号,姓名,性别,年龄,文化程度,部门号)

  部门(部门号,部门名称,部门主管,电话)

以上述数据模式为例,我们可以看出传统的面向应用的数据组织具有如下特点:

第一,面向应用进行数据组织,是指对企业中相关的组织、部门等进行详细调查和收集数据库的基础数据及其处理的过程。调查的重点是“数据”和“处理”,在进行数据组织时应充分了解企业的部门组织结构,考虑企业各部门的业务活动特点。

第二,面向应用进行数据组织应反映一个企业内数据的动态特征,即它要便于表达企业各部门内的数据流动情况以及部门间的数据输入输出关系,通俗地讲是要表达每个部门的实际业务处理的数据流程,即从哪儿获取输入数据,在部门内进行什么样的数据处理,以及向什么地方输出数据。按照实际应用即业务处理流程来组织数据,其主要目的是通过进行联机事务处理来提高日常业务处理的速度与准确性等。

第三,这种数据组织方式生成的各项数据库模式与企业中实际的业务处理流程中所涉及的单据或文档有很好的对应关系,这种对应关系使得数据库模式具有很强的操作性,因而可以较好地在这些数据库模式上建立起各项实际的应用处理。如库存管理中的领料单、进料单和库存等是实际管理中就存在的单据或报表,并且其各项内容也是相互对应的。在有些应用中,这种数据组织方式只是对企业业务活动所涉及的数据存储介质的改变,即从纸介质到磁介质的转变。

第四,面向应用进行数据组织的方式并没有体现出提出数据库这一概念时的原始意图:把数据与处理分开,即要将数据从数据处理或应用中抽象、解放出来,组织成一个和具体的应用相独立的数据世界。所以说,实际中的数据库建设由于偏重对联机事务处理的支持,无论是在设计方法还是在使用上都将数据应用逻辑与数据于一定程度上又重新捆绑在一起了,造成的后果是使得本来是描述同一客观实体的数据由于与不同的应用逻辑捆绑在一起而变得不统一;使得本来是一个完整的客观实体的数据分散在不同的数据库模式中。

总的来说,面向应用来进行企业数据的组织,其抽象程度还不够高,没有完全实现数据与应用的分离。但是这种方式能较好地将数据库模式和企业的现实业务活动对应起来,从而具有很好的操作性,便于实现企业原来的各项业务从手工处理的方式向计算机处理方式的转变。所以在进行OLTP数据库系统的开发时,面向应用的数据组织方式也不失为一种有效的数据组织方式,它可以较好地支持联机事务处理。

那么按照面向主题的方式,数据应该怎样来组织呢?数据的组织应该分为两个步骤:获取主题以及确定每个主题所应包含的数据内容。

前面提到,主题是对应某一分析领域的分析对象,所以主题的抽取,应该是按照分析的要求来确定的。这与按照数据处理或应用的要求来组织数据的主要不同在于同一部门关心的数据内容不同。如在商场中,同样是商品采购,在OLTP数据库中,人们所关心的是怎样更方便更快捷地进行“商品采购”这个业务处理;而在进行分析处理时,人们就应该关心同一商品的不同采购渠道。

①在OLTP数据库中,在进行数据组织时要考虑如何更好地记录下每一笔采购业务的情况,如我们可以用采购管理子系统中组织的“订单”、“订单细则”以及“供应商”三个数据库模式,来清晰完整地描述一笔采购业务所涉及的数据内容,这就是面向应用来进行数据组织的方式。

②在数据仓库中,由于主要是进行数据分析处理,那么商品采购时的分析活动主要是要了解各供应商的情况,显然“供应商”是采购分析时的分析对象。所以我们并不需要组织像“订单”和“订单细则”这样的数据库模式,因为它们包含的是纯操作性的数据;但是仅仅只用OLTP数据库的“供应商”中的数据又是不够的,因而要重新组织“供应商”这么一个主题。

概括各种分析领域的分析对象,我们可以综合得到其他的主题。仍以商场为例子,它所应有的主题包括:商品、供应商、顾客等。每个主题有着各自独立的逻辑内涵,对应了一个分析对象。这三个主题所应包含的内容列出如下:

商品:

  商品固有信息(商品号、商品名、类别、颜色等)

  商品采购信息(商品号、供应商号、供应价、供应日期、供应量等)

  商品销售信息(商品号、顾客号、售价、销售日期、销售量等)

  商品库存信息(商品号、库房号、库存量、日期等)

供应商:

  供应商固有信息(供应商号、供应商名、地址、电话等)

  供应商品信息(供应商号、商品号、供应价、供应日期、供应量等)

顾客:

  顾客固有信息(顾客号、顾客名、性别、年龄、文化程度、住址、电话等)

  顾客购物信息(顾客号、商品号、售价、购买日期、购买量等)

以“商品”主题为例,关于商品的各种信息已综合在“商品”这一个主题中,主要是两个方面的内容:第一,它包含了商品固有信息,如商品名称、商品类别以及型号、颜色等商品的描述信息;第二,“商品”主题也包含有商品流动的信息,如“商品”主题也描述了某商品采购信息、商品销售信息及商品库存信息等。比照商场原有数据库的数据模式,可以看到:首先,在从面向应用到面向主题的转变过程中,丢弃了原来不必要的、不适于分析的信息,如有关订单信息、领料单等内容就不再出现在主题中。其次,在原有的数据库模式中,关于商品的信息分散在各子系统中,如商品的采购信息存在采购子系统中,商品的销售信息则存在于销售子系统中,商品库存信息却又在库存管理子系统中,根本没有形成一个有关商品的完整一致的描述:面向主题的数据组织方式所强调的就是要形成关于商品的一致的信息集合,以便在此基础上针对“商品”这一分析对象进行分析处理。

值得注意的是,不同的主题之间也会有一些内容的重叠。这种重叠是逻辑上的重叠,而不是同一数据内容在物理上的重复储存;主题之间的重叠一般是在细节级上的重叠,因为不同主题中的综合方式是不同的。

总结起来,面向主题的数据组织方式是根据分析要求将数据组织成一个完备的分析领域即主题域。主题域具有以下特性:

①独立性。如针对商品进行的各种分析所要求的是“商品”主题域,这一主题域可以和其他的主题域有交叉部分,但它必须具有独立内涵,即要求有明确的界限,规定某项数据是否该属于“商品”主题。

②完备性。就是要求对任何一个商品的分析处理要求,我们应该能在“商品”这一主题内找到该分析处理所要求的一切内容;如果对商品的某一分析处理要求涉及现存“商品”主题之外的数据,那么就应当将这些数据增加到“商品”主题中来,从而逐步完善“商品”主题。或许有人担心,要求主题的完备性会使得主题包含有过多的数据项而显得过于庞大。这种担心是完全不必要的,因为主题只是一个逻辑上的概念,实现时,如果主题的数据项多了,可以采取各种划分策略来化大为小。

主题是一个在较高层次上对数据的抽象,这使得面向主题的数据组织可以独立于数据的处理逻辑,因而可以在这种数据环境上方便地开发新的分析型应用。同时,这种独立性也是建设企业全局数据库所要求的,所以面向主题不仅是适用于分析型数据环境的数据组织方式,而且是适用于建设企业全局数据库的数据组织方式。

(2)数据仓库是集成的。

数据仓库的数据是从原有的分散的数据库数据中抽取来的。在前面我们已经看到,操作型数据与DSS分析型数据之间差别甚大。第一,数据仓库的每一个主题所对应的源数据在原有的各分散数据库中有许多重复和不一致的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;第二,数据仓库中的综合数据不能从原有的数据库系统直接得到。

数据进入数据仓库之前,必须经过加工与集成。对不同的数据来源要统一数据结构和编码,统一原始数据中的所有矛盾之处,如字段的同名异义、异名同义、单位不统一、字长不一致等。总之,要将原始数据结构进行一个从面向应用到面向主题的大转变,所要完成的工作包括:

①要统一元数据中所有矛盾之处。如字段的同名异义、异名同义、单位不统一、字长不一致,等。

②进行数据综合和计算。数据仓库中的数据综合工作可以在从原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。

(3)数据仓库是稳定的。

数据仓库包括了大量的历史数据。数据经集成进入数据仓库后是极少或根本不更新的。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据经过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。因为数据仓库只进行数据查询操作,所以数据仓库管理系统DWMS相比DBMS而言要简单得多。DBMS中许多技术难点,如完整性保护、并发控制等,在数据仓库的管理中几乎可以省去。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,它要求采用各种复杂的索引技术;同时由于数据仓库面向的是企业的高层管理者,他们会对数据查询的界面友好性和数据表示提出更高的要求。

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

数据仓库中的数据不可更新是针对应用来说的,也就是说,数据仓库的用户进行分析处理时是不进行数据更新操作的。但并不是说,在从数据集成输入数据仓库开始到最终被删除的整个数据生存周期中,所有的数据仓库数据都是永远不变的。

数据仓库的数据是随时间的变化不断变化的,这是数据仓库数据的第四个特征,表现在以下三方面:

①数据仓库随时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉数据库中变化的数据,追加到数据仓库中去,也就是要不断地生成OLTP数据库的快照,经统一集成后增加到数据仓库中去;但对于每次的数据库快照确实是不再变化的,捕捉到新的变化数据,只不过又生成一个数据库的快照增加进去,而不会对原来的数据库快照进行修改。

②数据仓库随时间变化不断删去旧的数据内容。数据仓库的数据也有存储期限,只要超过了这一期限,过期数据就要被删除。只是数据仓库内的数据时限要远远长于操作型环境中的数据时限。在操作型环境中一般只保存有60~90天的数据,而在数据仓库中则需要保存较长时限的数据(如5~10年),以适应DSS进行趋势分析的要求。

③数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,例如数据经常按照时间段进行综合,或者隔一定的时间进行抽样等。这些数据要随着时间的变化不断地进行重新综合。数据仓库内的数据时限在5~10年,因此,数据仓库数据的码键都包含时间项,以标明数据的历史时期,这适合DSS进行时间趋势分析。而数据库只包含当前数据,即存储某一时间的正确的有效数据。

(5)数据仓库中的数据量很大。

通常的数据仓库的数据量为10GB级,相当于一般数据库100MB的100倍,大型数据仓库是一个TB(1 000GB)级的数据量。

数据仓库中数据的比重为索引和综合数据占2/3,原始数据占1/3。

(6)数据仓库软硬件要求较高。

①需要一个巨大的硬件平台。

②需要一个并行的数据库系统。

1.3.1.3 数据仓库的结构

数据仓库是在原有关系型数据库基础上发展形成的,但它的组织结构形式不同于数据库系统,从原有的业务数据库中获得的基本数据和综合数据被分成一些不同的层次(level)。一般数据仓库的组成结构如图1.1所示,包括早期细节数据(older detail data)、当前细节数据(current detail data)、轻度综合数据(lightly summarized data);高度综合数据(highly summarized data)和元数据(meta data)。

img2

图1.1 数据仓库结构图

当前细节数据是最近时期的业务数据,是数据仓库用户最感兴趣的部分,数据量大。随着时间的推移,当前细节数据由数据仓库的时间控制机制转为历史细节数据,一般被转存于介质中,如磁带等。轻度综合数据是从当前细节数据中提取出来的,设计这层数据结构时会遇到“综合处理数据的时间段选取”,“综合数据包含哪些数据属性”(attribute)和“内容”(content)等问题。最高一层是高度综合数据层,这一层的数据十分精炼,是一种准决策数据。

整个数据仓库的组织结构是由元数据来组织的。元数据是“关于数据的数据”,如传统数据库中的数据字典就是一种元数据。数据仓库的元数据不包含任何业务数据库中的实际数据信息。元数据在数据仓库中扮演了重要的角色,它被用于以下几种用途:(1)定位数据仓库的目录作用;(2)数据从业务环境向数据仓库环境传送时显示数据仓库的目录内容;(3)指导从当前细节数据到轻度综合数据,轻度综合数据到高度综合数据的综合算法的选择。元数据至少包括以下一些信息:数据结构(the structure of the data)、用于综合的算法(the algorithms used for summarization)、从业务环境到数据仓库的规划(the mapping from the operation to the data warehouse)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈