首页 百科知识 数据仓库的定义与特征

数据仓库的定义与特征

时间:2022-06-20 百科知识 版权反馈
【摘要】:William H.Inmon的定义中特别提到了数据仓库的四个特征,正是这四个特征把数据仓库与面向事务处理的数据库区别开来。数据仓库只需包括与决策支持相关的信息,只提供特定主题的简明视图,而排除与主题无关的数据、信息。而数据仓库是面向分析、支持决策的,典型应用是联机分析处理,用户多是企业的各级管理人员,通过对企业运营的历史数据进行分析,得到信息、知识辅助决策。

6.2.1 数据仓库的定义与特征

根据数据仓库之父William H.Inmon在Building the Data Warehouse一书中的定义,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、非易失的(Non-volatile)且随时间变化的(Time Variant)数据集合,用来支持管理人员做出决策。

从这个简短而又全面的定义我们可以知道:首先,与数据库一样,数据仓库也是一个数据的集合;但与数据库不同的是,数据仓库的目的是为了支持企业或组织的决策分析。但既然数据库和数据仓库都是用来存储数据,那么为什么有了数据库以后还需要大费周章建立数据仓库?两者到底有何不同?它们能相互取代吗?

为了回答这些问题,我们首先必须了解数据仓库的特征。William H.Inmon的定义中特别提到了数据仓库的四个特征,正是这四个特征把数据仓库与面向事务处理的数据库区别开来。

面向主题的

与围绕业务组织数据的传统操作型系统不同,数据仓库是面向主题的,它围绕一些主题,如顾客、供应商、产品和销售进行组织。数据仓库只需包括与决策支持相关的信息,只提供特定主题的简明视图,而排除与主题无关的数据、信息。面向主题可以使用户不仅能够了解它们的企业运转得怎样,而且知道为什么。

之所以存在这样的不同,是因为传统的操作型系统的作用在于提高组织日常操作、事务处理的效率,而数据仓库的作用在于支持决策。例如,对一个保险公司来说,日常事务是对各种各样的保险业务(例如汽车、人寿、健康、意外等)的处理,以及月度、季度、年度报表统计。与各个业务系统相对应,数据库也就设计成了汽车、人寿、健康、意外等。假设客户经理想要了解某个客户的投保情况,在这样的环境中,他需要遍历几乎所有的表,才能得到所需数据。可见,无论从效率还是灵活性等方面,这都难以满足决策分析的需要。

为了解决这样的问题,面向主题的数据组织方式应运而生。主题是用户关心的管理问题,一个主题往往要从多个角度来描述,采用多维数据模型来组织数据就可以实现面向主题的目标。数据仓库将每一种主题相关的数据从各个操作型数据库中抽取出来,集中存放在一起。这样,决策者只需要在数据仓库中的一个主题中进行检索,就可以获得所关心问题的方方面面的信息,从而提高了数据分析的效率与准确性。

对于上述客户经理的问题,我们可以将数据仓库的主题设计成顾客、保险单、索赔和保险费等,如图6-3。这样,假设想要了解某个客户的投保情况,我们只需要在保险费主题中进行查询,因为数据仓库将和每一种主题相关的数据集中存放在一个地方,这样针对不同的决策需求,决策者可以非常方便地在数据仓库中检索包含这个主题的所有数据,从而极大地方便了数据分析、决策的过程。

集成的

在一个企业中存在各种各样的应用系统,如财务系统、人事系统、销售系统、生产系统等,在这些系统中,同一信息在编码形式、命名习惯、实际属性、属性度量等方面可能存在诸多不一致之处。

当这些数据进入数据仓库时,必须采用某种方法来消除应用问题中存在的诸多不一致,使之在数据仓库中具备统一的表示和含义。例如性别数据在一个地方以“0”和“1”进行编码,而在另一处以“F”和“M”表示,还有的系统用“男”和“女”表示。在数据仓库中,它们要被转换成同一种格式,这样数据就具有了标准化和一致性的特点。再如许多组织对不同类型的数据使用相同术语,例如“净销售”也许表示销售部门的任务或者表示会计部门的销售回款总额,这也需要进行统一。

图6-3 面向主题的数据组织示例

因此,数据仓库必须将不一致的数据进行有效的集成,集成的数据要保持格式和语义的一致性。需要说明的是,上述一致性问题只是集成所包含的一部分工作,另外还需要根据主题进行有效的数据组织。

非易失的

简单地说,非易失的含义是不可修改。在操作型环境中,对数据的增、删、改操作频繁。但是,对于数据仓库而言,一旦数据进入数据仓库,只要其未超过数据存储期限,一般只能读取,不能改变或者更新。通常,在数据仓库中只需要两种数据操作:数据的初始化装入和数据访问(查询、分析)。

时变的

时变即与时间相关。时变的特点指的是数据仓库从历史的角度(例如过去5~10年)提供信息,并且数据仓库中隐式或显式地包含时间元素。

一般来说,数据仓库中的数据并不体现当前最新的业务状况——新近的数据首先存储在业务系统的数据库中。但是,业务系统中数据保存的期限较短,一般是60~90天,而数据仓库的数据通常保存5~10年甚至更长时间以用于决策分析——趋势分析、预测和比较等。

数据仓库中的数据往往是和时间相关联的,时间维是所有数据仓库必须支持的一个重要维度,而且时间维包含多种层次。例如,对于“销售额”而言,数据仓库中往往储存了按日计、周计、月计的销售额。

数据库与数据仓库的区别

在了解了数据仓库的特征之后,我们知道,虽然数据库与数据仓库都是数据的集合,但是二者还是存在着显著的差异的。表6-2将数据仓库与传统的操作型数据库系统进行一个简单的比较。总的来说,操作型数据库是面向企业日常的事务处理,其典型应用是OLTP,用户是企业的业务人员,难以支持复杂的数据分析。而数据仓库是面向分析、支持决策的,典型应用是联机分析处理(OLAP,6.3节即将介绍),用户多是企业的各级管理人员,通过对企业运营的历史数据进行分析,得到信息、知识辅助决策。

表6-2        数据库与数据仓库的比较

或许你会有个疑问,既然数据库存放了大量数据,为什么不直接在这种数据库上进行联机分析处理,而是另外花费时间和资源去构造一个分离的数据仓库呢?

分离的主要原因是提高两个系统的性能。数据库是为事务处理而设计的,快速、准确地处理事务数据是其追求的目标。为此,要将数据库设计成一系列的“小表”的形式,正如第2章所介绍的。但是,如果要在数据库的基础上进行复杂的查询,将会涉及许多连接操作、大量的数据汇总与计算,效能很低。因此,需要一个特殊的、基于多维视图的数据组织与存取方法来支持联机分析处理,也就是需要一个数据仓库来满足分析决策的需要。

此外,数据仓库与数据库分离是由于这两种系统中数据的结构、内容和用法都不相同。决策支持需要历史数据,而操作数据库一般不维护历史数据。在这种情况下,操作数据库中的数据尽管很丰富,但对于决策,常常还是远远不够的。决策支持需要将来自异种源的数据统一(如聚集和汇总),产生高质量的、纯净的和集成的数据。相比之下,操作数据库只维护详细的原始数据(如事务),这些数据在进行分析之前需要统一。

总之,由于联机事务处理和联机分析处理的功能不同,它们也就需要不同类型的数据,数据库与数据仓库分别为两者服务,因此需要维护分离的数据仓库。

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

我要反馈