数据库与数据仓库的区别.doc
数据库与数据仓库的区别 简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。 单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。 显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。 数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。 “面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。 “与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。 “不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。 数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。 补充一下,数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库必须有如下几点优点,否则是失败的数据仓库方案。 1.效率足够高。客户要求的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。 2.数据质量。客户要看各种信息,肯定要准确的数据,但由于数据仓库流程至少分为3步,2次ETL,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。 3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,客户不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。数据仓库是面向分析的,数据库是面向事务处理. 数据仓库的数据是基本不变得,而数据库的数据是由日常的业务产生的,常更新 数据仓库的数据一般有数据库的数据经过一定的规则转换得到得 数据仓库主要用来分析数据,一般是tb级的的数据,比如决策支持系统,数据挖掘等. 数据库系统作为数据管理手段,从它的诞生开始,就主要用于事务处理。经过数十年的发展,在这些数据库中已经保存了大量的日常业务数据。传统的业务系统一般是直接建立在这种事务处理环境上的。随着技术的进步,人们试图让计算机担任更多的工作,而数据库技术也一直力图使自己能胜任从事务处理、批处理到分析处理的各种类型的信息处理任务。后来人们逐渐认识到,在目前的计算机处理能力上,根本无法实现这种功能,而且,另一方面,事物处理和分析处理具有极不相同的性质,直接使用事务处理环境来支持决策是行不通的。 事务处理环境不适宜DSS应用的原因主要有以下五条: (1)事务处理和分析处理的性能特性不同。 在事务处理环境中,用户的行为特点是数据的存取操作频率高而每次操作处理的时间短;在分析处理环境中,用户的行为模式与此完全不同,某个DSS应用程序可能需要连续几个小时,从而消耗大量的系统资源。将具有如此不同处理性能的两种应用放在同一个环境中运行显然是不适当的。 (2)数据集成问题。 DSS需要集成的数据。全面而正确的数据是有效的分析和决策的首要前提,相关数据收集得月完整,得到的结果就越可靠。当前绝大多数企业内数据的真正状况是分散而非集成的。造成这种分散的原因有多种,主要有事务处理应用分散、“蜘蛛网”问题、数据不一致问题、外部数据和非结构化数据。 (3)数据动态集成问题。 静态集成的最大缺点在于,如果在数据集成后数据源中数据发生了变化,这些 变化将不能反映给决策者,导致决策者使用的是过时的数据。集成数据必须以一定的周期(例如24小时)进行刷新,我们称其为动态集成。显然,事务处理系统不具备动态集成的能力。 (4)历史数据问题。 事务处理一般只需要当前数据,在数据库中一般也是存储短期数据,切不同数据的保存期限也不一样,即使有一些历史数据保存下来了,也被束之高阁,未得到充分利用。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须一大量的历史数据为依托。没有历史数据的详细分析,是难以把握企业的发展趋势的。 DSS对数据在空间和时间的广度上都有了更高的要求,而事务处理环境难以满足这些要求。 (5)数据的综合问题。 在事务处理系统中积累了大量的细节数据,一般而言,DSS并不对这些细节数据进行分析。在分析前,往往需要对细节数据进行不同程度的综合。而事务处理系统不具备这种综合能力,根据规范化理论,这种综合还往往因为是一种数据冗余而加以限制。 要提高分析和决策的效率和有效性,分析型处理及其数据必须与操作型处理及其数据相分离。必须把分析型数据从事务处理环境中提取出来,按照DSS处理的需要进行重新组织,建立单独的分析处理环境,数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技术。 数据仓库的关键技术 那么,数据仓库都有哪些组成部分和关键技术呢?与关系数据库不同,数据仓库并没有严格的数学理论基础,它更偏向于工程。由于数据仓库的这种工程性,因而在技术上可以根据它的工作过程分为:数据的抽取、存储和管理、数据的表现以及数据仓库的设计的技术咨询四个方面。为此,我们将分别讨论每一个环节。 3.1 数据的抽取 数据的抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入到数据仓库。数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面。数据仓库的数据并不要求与联机事务处理系统保持实时的同步,因此数据抽取可以定时进行,但多个抽取操作执行的时间、相互的顺序、成败对数据仓库中信息的有效性则至关重要。 在技术发展上,数据抽取所涉及的单个技术环节都已相对成熟,其中有一些是躲不开编程的,但整体的集成度还很不够。目前市场上所提供的大多是数据抽取工具。这些工具通过用户选定源数据和目标数据的对应关系,会自动生成数据抽取的代码。但数据抽取工具支持的数据种类是有限的;同时数据抽取过程涉及数据的转换,它是一个与实际应用密切相关的部分,其复杂性使得不可嵌入用户编程的抽取工具往往不能满足要求。因此,实际的数据仓库实施过程中往往不一定使用抽取工具。整个抽取过程能否因工具的使用而纳入有效的管理、调度和维护则更为重要。从市场发展来看,以数据抽取、异构互连产品为主项的数据仓库厂商一般都很有可能被其它拥有数据库产品的公司吞并。在数据仓库的世界里,它们只能成为辅助的角色。 3.2 数据的存储和管理 数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库的特性,同时也决定了其对外部数据表现形式。要决定采用什么产品和技术来建立数据仓库核心,则需要从数据仓库的技术特点着手分析 数据仓库遇到的第一个问题是对大量数据的存储和管理。这里所涉及的数据量比传统事务处理大得多,且随时间的推移而累积。从现有技术和产品来看,只有关系数据库系统能够担当此任。关系数据库经过近30年的发展,在数据存储和管理方面已经非常成熟,非其它数据管理系统可比。目前不少关系数据库系统已支持数据分割技术,能够将一个大的数据库表分散在多个物理存储设备中,进一步增强了系统管理大数据量的扩展能力。采用关系数据库管理数百个GB甚至到TB的数据已是一件平常的事情。一些厂商还专门考虑大数据量的系统备份问题,好在数据仓库对联机备份的要求并不高。 数据仓库要解决的第二个问题是并行处理。在传统联机事务处理应用中,用户访问系统的特点是短小而密集;对于一个多处理机系统来说,能够将用户的请求进行均衡分担是关键,这便是并发操作。而在数据仓库系统中,用户访问系统的特点是庞大而稀疏,每一个查询和统计都很复杂,但访问的频率并不是很高。此时系统需要有能力将所有的处理机调动起来为这一个复杂的查询请求服务,将该请求并行处理。因此,并行处理技术在数据仓库中比以往更加重要。 大家可以注意以下,在针对数据仓库的TPC-D基准测试中,比以往增加了一个单用户环境的测试,成为 "系统功力 "(QPPD)。系统的并行处理能力对QPPD的值有重要影响。目前,关系数据库系统在并行处理方面已能做到对查询语句的分解并行、基于数据分割的并行、以及支持跨平台多处理机的群集环境和MPP环境,能够支持多达上百个处理机的硬件系统并保持性能的扩展能力。 数据仓库的第三个问题是针对决策支持查询的优化。这个问题主要针对关系数据库而言,因为其它数据管理环境连基本的通用查询能力都还不完善。在技术上,针对决策支持的优化涉及数据库系统的索引机制、查询优化器、连接策略、数据排序和采样等诸多部分。普通关系数据库采用B树类的索引,对于性别、年龄、地区等具有大量重复值的字段几乎没有效果。而扩充的关系数据库则引入了位图索引的机制,以二进制位表示字段的状态,将查询过程变为筛选过程,单个计算机的基本操作便可筛选多条记录。由于数据仓库中各数据表的数据量往往极不均匀,普通查询优化器所得出得最佳查询路径可能不是最优的。因此,面向决策支持的关系数据库在查询优化器上也作了改进,同时根据索引的使用特性增加了多重索引扫描的能力。 以关系数据库建立的数据仓库在应用时会遇到大量的表间连接操作,而连接操作对于关系数据库来说是一件耗时的操作。扩充的关系数据库中对连接操作可以做预先的定义,我们称之为连接索引,使得数据库在执行查询时可直接获取数据而不必实施具体的连接操作。数据仓库的查询常常只需要数据库中的部分记录,如最大的前50家客户,等等。普通关系数据库没有提供这样的查询能力,只好将整个表的记录进行排序,从而耗费了大量的时间。决策支持的关系数据库在此做了改进,提供了这一功能。此外,数据仓库的查询并不需要像事务处理系统那样精确,但在大容量数据环境中需要有足够短的系统响应时间。因此,一些数据库系统增加了采样数据的查询能力,在精确度允许的范围内,大幅度提高系统查询效率。 总之,将普通关系数据库改造成适合担当数据仓库的服务器有许多工作可以做,它已成为关系数据库技术的一个重要研究课题和发展方向。可见,对于决策支持的扩充是传统关系数据库进入数据仓库市场的重要技术措施。 数据仓库的第四个问题是支持多维分析的查询模式,这也是关系数据库在数据仓库领域遇到的最严峻的挑战之一。用户在使用数据仓库时的访问方式与传统的关系数据库有很大的不同。对于数据仓库的访问往往不是简单的表和记录的查询,而是基于用户业务的分析模式,即联机分析。如图1.3所示,它的特点是将数据想象成多维的立方体,用户的查询便相当于在其中的部分维(棱)上施加条件,对立方体进行切片、分割,得到的结果则是数值的矩阵或向量,并将其制成图表或输入数理统计的算法。 关系数据库本身没有提供这种多维分析的查询功能,而且在数据仓库发展的早期,人们发 数据仓库中的数据组织 数据仓库中数据的四个基本特征在本章§1中已经介绍过了,下面就要分析清楚这些问题:数据仓库存储哪些数据呢?数据如何组织,存储?组织形式有哪些?等等。通过对数据仓库中存放的数据内容及其组织形式的介绍,本节将对这些问题做出回答,以加深对数据仓库数据四个基本特征的理解。 2.1 数据仓库的数据组织结构 一个典型的数据仓库的数据组织结构如图1.2所示: 数据仓库中的数据分为四个级别:早期细节级、当前细节级、轻度综合级、高度综合级。源数据经过综合后,首先进入当前细节级,并根据具体需要进行进一步的综合,从而进入轻度综合级乃至高度综合级,老化的数据将进入早期细节级由此可见,数据仓库中存在着不同的综合级别,一般称之为 "粒度 "。粒度越大,表示细节程度越低,综合程度越高。 数据仓库中还有一种重要的数据-元数据(metadata)。元数据是 "关于数据的数据 ",如在传统数据库中的数据字典就是一种元数据。在数据仓库环境下,主要有两种元数据:第一种是为了从操作性环境向数据仓库转化而建立的元数据,包含了所有源数据项名、 图1.2 DW数据组织结构 2.2粒度与分割 1.粒度 粒度是数据仓库的重要概念。粒度可以分为两种形式,第一种粒度是对数据仓库中的数据的综合程度高低的一个度量,它既影响数据仓库中的数据量的多少,也影响数据仓库所能回答询问的种类。在数据仓库中,多维粒度是必不可少的。由于数据仓库的主要作用是DSS分析,因而绝大多数查询都基于一定程度的综合数据之上的,只有极少数查询涉及到细节。所以应该将大粒度数据存储于快速设备如磁盘上,小粒度数据存于低速设备如磁带上。 还有一种粒度形式,即样本数据库。它根据给定的采样率从细节数据库中抽取出一个子集。这样样本数据库中的粒度就不是根据综合程度的不同来划分的,而是有采样率的高低来划分,采样粒度不同的样本数据库可以具有相同的数据综合程度。 2.分割 分割是数据仓库中的另一个重要概念,它的目的同样在于提高效率。它是将数据分散到 各自的物理单元中去,以便能分别独立处理。有许多数据分割的标准可供参考:如日期、地 域、业务领域等等,也可以是其组合。一般而言,分割标准总应包括日期项,它十分自然而且分割均匀。 2.3 数据仓库的数据组织形式 这里简单介绍数据仓库中常见的数据组织形式: 1. 简单堆积文件: 它将每日由数据库中提取并加工的数据逐天积累并存储起来。 2. 轮转综合文件: 数据存储单位被分为日、周、月、年等几个级别。在一个星期的七天中,数据被逐一记录在每日数据集中;然后,七天的数据被综合并记录在周数据集中;接下去的一个星期,日数据集被重新使用,以记录新数据。同理,周数据集达到五个后,数据再一次被综合并记入月数据集。以此类推。轮转综合结构十分简捷,数据量较简单堆积结构大大减少。当然,它是以损失数据细节为代价的,越久远的数据,细节损失越多。 3. 简化直接文件: 它类似于简单堆积文件,但它是间隔一定时间的数据库快照,比如每隔一星期或一个月作一次。 4. 连续文件: 通过两个连续的简化直接文件,可以生成另一种连续文件,它是通过比较两个简单直接文件的不同而生成的。当然,连续文件同新的简单直接文件也可生成新的连续文件。 对于各种文件结构的最终实现,在关系数据库中仍然要依靠 "表 "这种最基本的结构。 2.4 数据仓库的数据追加 如何定期向数据仓库追加数据也是一个十分重要的技术。我们知道,数据仓库的数据是 来自OLTP的数据库中,问题是我们如何知道究竟哪些数据是在上一次追加过程之后新生成 的。常用的技术和方法有: ·时标方法: 如果数据含有时标,对新插入或更新的数据记录,在记录中加更新时的时标,那么只需根据时标判断即可。但并非所有的数据库中的数据都含有时标。 ·DELTA文件: 它是由应用生成的,记录了应用所改变的所有内容。利用DELTA文件效率 很高,它避免了扫描整个数据库,但同样的问题是生成DELTA文件的应用并不普遍。此外,还有更改应用代码的方法,使得应用在生成新数据时可以自动将其记录下来。但应用成千上万,且修改代码十分繁琐,这种方法很难实现。 ·前后映象文件的方法: 在抽取数据前后对数据库各作一次快照,然后比较两幅快照的不同从而确定新数据。它占用大量资源,对性能影响极大,因此并无多大实际意义。 ·日志文件: 最可取的技术大概是利用日志文件了,因为它是DB的固有机制,不会影响O LTP的性能。同时,它还具有DELTA文件的优越性质,提取数据只要局限日志文件即可,不用扫描整个数据库。当然,原来日志文件的格式是依据DB系统的要求而确定的,它包含的数据对于数据仓库而言可能有许多冗余。比如,对一个记录的多次更新,日志文件将全部变化过程都记录下来;而对于数据仓库,只需要最终结果。但比较而言,日志文件仍然是最可行的一种选择。数据仓库技术简介 作者:周永銮发布时间:2001/07/21 数据仓库是近年来兴起的一种新的数据库应用。在各大数据库厂商纷纷宣布产品支持数据仓库并提出一整套用以建立和使用数据仓库的产品是,业界掀起了数据库热。比如INFORMIXGONGSIDE公司的数据仓库解决方案;ORACLE公司的数据仓库解决方案;Sybase公司的交互式数据仓库解决方案等等。这同时也引起了学术界的极大兴趣,国际上许多重要的学术会议,如超大型数据库国际会议(VLDB),数据工程国际会议(Data Engineering)等,都出现了专门研究数据仓库(Data Warehousing,简记为DW)、联机分析处理(On-Line Analytical Processing,简记为OLAP)、数据挖掘(Data Mining, 简记为DM)的论文。对我国许多企业而言,在建立或发展自己的信息系统常常困扰于这样的问题:为什么要在原有的数据库上建立数据仓库?数据仓库能否代替传统的数据库?怎样建立数据仓库?等等。本章将简要介绍一下用到的数据仓库技术背景,并在下一章结合数据清理系统设计实例,更深一步阐述数据仓库技术在现实中的重大意义 §1 从数据库到数据仓库 传统的数据库技术是以单一的数据资源,即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作,主要的划分为两大类:操作型处理和分析型处理(或信息型处理)。 操作型处理也叫事务处理,是指对数据库联机的日常操作,通常是对一个或一组纪录的查询和修改,主要为企业的特定应用服务的,注重响应时间,数据的安全性和完整性;分析型处理则用于管理人员的决策分析,经常要访问大量的历史数据。而传统数据库系统优于企业的日常事务处理工作,而难于实现对数据分析处理要求,已经无法满足数据处理多样化的要求。操作型处理和分析型处理的分离成为必然。 近年来,随着数据库技术的应用和发展,人们尝试对DB中的数据进行再加工,形成一个综合的,面向分析的环境,以更好支持决策分析,从而形成了数据仓库技术(Data Warehousing,简称DW)。作为决策支持系统(Decision-making Support System,简称DSS),数据仓库系统包括: 数据仓库技术; 联机分析处理技术(On-Line Analytical Processing,简称OLAP); 数据挖掘技术(Data Mining,简称DM); 数据仓库弥补了原有的数据库的缺点,将原来的以单一数据库为中心的数据环境发展为一种新环境:体系化环境。如图1.1所示: 图1.1数据仓库体系化环境 1.1 什么是数据仓库 业界公认的数据仓库概念创始人W.H.Inmon在建立数据仓库一书中对数据仓库的定义是:数据仓库就是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程 数据仓库中的数据面向主题,与传统数据库面向应用相对应。主题是一个在较高层次上将数据归类的标准,每一个主题对应一个宏观的分析领域:数据仓库的集成特性是指在数据进入数据仓库之前,必须经过数据加工和集成,这是建立数据仓库的关键步骤,首先要统一原始数据中的矛盾之处,还要将原始数据结构做一个从面向应用向面向主题的转变;数据仓库的稳定性是指数据仓库反映的是历史数据的内,而不是日常事务处理产生的数据,数据经加工和集成进入数据仓库后是极少或根本不修改的;数据仓库是不同时间的数据集合,它要求数据仓库中的数据保存时限能满足进行决策分析的需要,而且数据仓库中的数据都要标明该数据的历史时期。 数据仓库最根本的特点是物理地存放数据,而且这些数据并不是最新的、专有的,而是来源于其它数据库的。数据仓库的建立并不是要取代数据库,它要建立在一个较全面和完善的信息应用的基础上,用于支持高层决策分析,而事务处理数据库在企业的信息环境中承担的是日常操作性的任务。数据仓库是数据库技术的一种新的应用,而且到目前为止,数据仓库还是用关系数据库管理系统来管理其中的数据。 1.2 数据仓库的产生 计算机系统的功能从数值计算扩展到数据管理距今已有三十多年了。最初的数据管理形式主要是文件系统,少量的以数据片段之间增加一些关联和语义而构成层次型或网状数据库,但数据的访问必须依赖于特定的程序,数据的存取方式是固定的、死板的。到了1969年,E.F.Codd博士发表了他著名的关系数据模型的论文。此后,关系数据库的出现开创了数据管理的一个新时代。 近几十年来,大量新技术、新思路的涌现出来并被用于关系型数据库系统的开发和实现:客户/服务器系统结构、存储过程、多线索并发内核、异步I/O、代价优化,等等,这一切足以使得关系数据库系统的处理能力毫不逊色于传统封闭的数据库系统。而关系数据库在访问逻辑和应用上所带来的好处则远远不止这些,SQL的使用已成为一个不可阻挡的潮流,加上近些年来计算机硬件的处理能力呈数量级的递增,关系数据库最终成为联机事务处理系统的主宰。 整个80年代直到90年代初,联机事务处理一直是数据库应用的主流。然而,应用在不断地进步。当联机事务处理系统应用到一定阶段后,用户便发现单靠拥有联机事务处理已经不足以获得市场竞争的优势,他们需要对其自身业务的运作以及整个市场相关行业的情况进行分析,而做出有利的决策。这种决策需要对大量的业务数据包括历史业务数据进行分析才能得到。在如今这样激烈的市场竞争环境下,这种基于业务数据的决策分析,我们把它称为联机分析处理,比以往任何时候都显得更为重要。如果说传统联机事务处理强调的是更新数据库-向数据库中添加信息,那么联机分析处理就是从数据库中获取信息、利用信息。因此,著名的数据仓库专家Ralph Kimball写道: "我们花了二十多年的时间将数据放入数据库,如今是该将它们拿出来的时候了。 " 事实上,将大量的业务数据应用于分析和统计原本是一个非常简单和自然的想法。但在实际的操作中,人们却发现要获得有用的信息并非如想象的那么容易,这主要表现在以下几点: · 所有联机事务处理强调的是密集的数据更新处理性能和系统的可靠性,并不关心数据查询的方便与快捷。联机分析和事务处理对系统的要求不同,同一个数据库在理论上都难以做到两全。 · 业务数据往往存放于分散的异构环境中,不易统一查询访问,而且还有大量的历史数据处于脱机状态,形同虚设。 · 业务数据的模式针对事务处理系统而设计,数据的格式和描述方式并不适合非计算机专业人员进行业务上的分析和查询。 因此有人感叹:20年前查询不到数据是因为数据太少了,而今天查询不到数据是因为数据太多了。针对这一问题,人们设想专门为业务的统计分析建立一个数据中心,它的数据从联机的事务处理系统中来、从异构的外部数据源来、从脱机的历史业务数据中来 。这个数据中心是一个联机的系统,它是专门为分析统计和决策支持应用服务的,通过它可以满足决策支持和联机分析应用所要求的一切。这个数据中心就叫做数据仓库。这个概念在90年代初被提出来。如果需要给数据仓库一个定义的话,那么数据仓库就是一个作为决策支持系统和联机分析应用数据源的结构化数据环境。数据仓库所要研究和解决的问题就是从数据库中获取信息的问题。 那么数据仓库与数据库(主要指关系数据库)又是什么关系呢?回想当初,人们固守封闭式系统是出于对事务处理的偏爱,人们选择关系数据库是为了方便地获得信息。我们只要翻开C.J.Date博士的经典之作An Introduction to Database Systems便会发现:今天数据仓库所要提供的正是当年关系数据库所要倡导的。然而,由于关系数据库系统在联机事务处理应用中获得的巨大成功,使得人们已不知不觉将它划归为事务处理的范畴;过多地关注于事务处理能力的提高,使得关系数据库在面对联机分析应用时又遇到了新的问题-今天的数据仓库对关系数据库的联机分析能力提出了更高的要求,采用普通关系型数据库作为数据仓库在功能和性能上都是不够的,它们必须有专门的改进。因此,数据仓库与数据库的区别不仅仅表现在应用的方法和目的方面,同时也涉及到产品和配置上的不同。 以辨证的眼光看,数据仓库的兴起实际是数据管理的一种回归,是螺旋式的上升。今天的数据库就好比当年的层次数据库和网状数据库,它们面向事务处理;今天的数据仓库就好比是当年的关系数据库,它针对联机分析。所不同的是,今天的数据仓库不必再为联机事务处理的特性而无谓奔忙,由于技术的专业化,它可更专心于联机分析领域的发展和探索 数据仓库的概念一经出现,就首先被用于金融、电信、保险等主要传统数据处理密集型行业。国外许多大型的数据仓库在1996-1997年建立。那么,什么样的行业最需要和可能建立数据仓库呢?有两个基本条件:第一,该行业有较为成熟的联机事务处理系统,它为数据仓库提供客观条件;第二,该行业面临市场竞争的压力,它为数据仓库的建立提供外在的动力。联机分析处理(OLAP)和联机事务处理(OLTP)的区别默认分类 2010-04-12 21:34:13 阅读188 评论0 字号:大中小 订阅 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易,火车售票等。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。 OLTP OLAP用户 操作人员,低层管理人员 决策人员,高级管理人员功能 日常操作处理 分析决策DB 设计 面向应用 面向主题数据 当前的, 最新的细节的, 二维的分立的 历史的, 聚集的, 多维的集成的, 统一的存取 读/写数十条记录 读上百万条记录工作单位 简单的事务 复杂的查询用户数 上千个 上百个DB 大小 100MB-GB 100GB-TB需要baby注意的一点就是OLAP中的存取里面没有提到写,当然这并不意味着OLAP数据应用不用写数据,不写的话数据怎么得来的呢?只是说并不像OLTP那样频繁的修改数据,OLAP所做的只是加载历史数据,换句话说,就是只有insert,而且是批量的,而没有delete和updata的操作。附:位图索引 位图索引储存主要用来节省空间,减少DB2对数据块的访问,它采用位图偏移方式来与表的行ID号对应,采用位图索引一般是重复值太多的表字段。位图索引在实际密集型OLTP(数据事务处理)中用得比较少,因为OLTP会对表进行大量的删除、修改、新建操作,ORACLE每次进行操作都会对要操作的数据块加锁,所以多人操作很容易产生数据块锁等待甚至死锁现象。在OLAP(数据分析处理)中应用位图有优势,因为OLAP中大部分是对数据库的查询操作,而且一般采用数据仓库技术,所以大量数据采用位图索引节省空间比较明显。联机事务处理系统(On-Line Transaction Processing)也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。 主要特征: 支持大量并发用户定期添加和修改数据。包含大量数据,其中包括用于验证事务的大量数据。 具有复杂的结构。 可以进行优化以对事务活动做出响应。 提供用于支持单位日常运营的技术基础结构。联机分析处理(On-Line Analysis Processing) 随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足这一要求。操作型应用和分析型应用,特别是在性能上难以两全,人们常常在关系数据库中放宽了对冗余的限制,引入了统计及综合数据,但这些统计综合数据的应用逻辑是分散而杂乱的、非系统化的,因此分析功能有限,不灵活,维护困难。在国外,不少软件厂商采取了发展其前端产品来弥补关系数据库管理系统支持的不足,他们通过专门的数据综合引擎,辅之以更加直观的数据访问界面,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求。(比如话单是一张典型的关系数据库二维表,OLTP用来迅速查找用户的话费时长等,要进行经营分析,必须话单表及其他业务表联合进行数据抽取清洗和装载,得出一目了然的结果,比如怎么样搭配套餐能有更好的收益等等) 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLAP和OLTP的区别OLAP:联机分析处理 (OLAP:Online Analytical Processing) 联机分析处理(OLAP)指的是对存储在数据库或数据仓库中的数据提供分析的一种软件。OLAP 工具能快速提供复杂数据库查询的答案,并帮助用户分析多维数据中的各维情况。通常 OLAP 应用于数据仓库中的数据处理过程,即所谓的“数据挖掘”(Data Mining)。关系数据库中,是将经过规范化的实体存放在分散的表格中。该结构非常适用于操作型数据库,但该结构对于复杂的、包含多个表的查询,速度相对较慢。多维数据库是一种更好的查询模式,但其操作性能较差。OLAP 的主要组成部件是 OLAP 服务器,它位于客户机和数据库管理系统(DBMS)之间。OLAP 服务器清楚数据如何被组织成数据库,并具有关于数据分析的特定功能。例如,OLAP 软件获取关系数据库的一个映像后,重新构建一个多维数据,然后便可重新对此查询。由操作型数据创建而来的 OLAP 结构被称之为 OLAP 数据集(OLAP cube)。OLAP 数据集中可能包含每个查询的所有答复。OLAP 数据集采用的星型模式指:事实表列出关键事实,然后由中心进行查询的一种方式。大量的维度表与事实表相链接。为避免计算所有可能的数集,所以只对预先确定的数进行完全的计算,其它的作为备用。OLAP 具有三种类型:多维 OLAP(MOLAP) MOLAP 是 OLAP 中较为“流行”的一种。它使用摘要型数据库,具有一个专用数据库引擎,并且按照需求创建包含基本数据和数据集合的多纬度模式。MOLAP 在小型数据设置方面占有一定优势,集合计算和返回答案的速度都比较快,但同时也能快速创建海量数据。 关系 OLAP(ROLAP) ROLAP 与关系数据库直接相关,基本数据和纬度表代表关系表,此外创建一个包含数据集合信息的新表。R