什么是联机分析处理(OLAP)与联机事务处理(OLTP)
当今的数据处理大致可以分成两大类:联机事务处理OLTP(On-Line Transaction Processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。
| OLTP | OLAP |
用户 | 操作人员,低层管理人员 | 决策人员,高级管理人员 |
功能 | 日常操作处理 | 分析决策 |
DB 设计 | 面向应用 | 面向主题 |
数据 | 最新的,细节的,二维的,分立的 | 历史的,聚集的,多维的,集成的 |
存取规模 | 读/写数条(甚至数百条)记录 | 读上百万(甚至上亿)条记录 |
操作频度 | 非常频繁(以秒计) | 比较稀松(以小时甚至以周计) |
工作单位 | 严格的事务 | 复杂的查询 |
用户数 | 数百个-数千万个 | 数个-数百个 |
DB 大小 | 100MB-GB | 100GB-TB |
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。
OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。
OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。
·钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
·切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。
ROLAP表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"。
MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方块(Cube)"的结构,在MOLAP中对"立方块"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。
HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。
还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。
OLAP工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维。而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(维1,维2,……,维n,度量指标),如(地区、时间、产品、销售额)。多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-down和Roll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。
联机事务处理(OLTP)是指利用计算机网络,将分布于不同地理位置的业务处理计算机设备或网络与业务管理中心网络连接,以便于在任何一个网络节点上都可以进行统一、实时的业务处理活动或客户服务。
通常在DBMS中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统(OLTP)实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。在联机事务处理中,事务是被立即执行的,这与批处理相反,一批事务被存储一段时间,然后再被执行。大多数批处理(例如帐目交换)是在夜间进行的。OLTP的结果可以在这个数据库中立即获得,这里假设这些事务可以完成。联机事务处理以实时的方式发生。民航定票系统和银行ATM机是联机事务处理系统的例子。
在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在分布式环境下,维护多个数据库的完整性是另外一种问题。传统上,大多数联机事务处理系统在大型计算机系统上实现,这是由于它的操作的复杂性,以及需要快速输入/输出、禁止和管理的原因。如果一个事务必须在多个场地进行修改,那么就需要管理机制来防止重写数据并提供同步。其它的需求包括具有卷回失效事务的能力、提供安全性特征,以及如果需要,提供数据恢复的能力。这是通过一个事务处理监督器来处理的。这个监督器保证了事务是完全完成的或是进行卷回的,因而就可以保证数据库状态的正确性。
在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务。
可以看出,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。另外,对多个数据库的写入操作必须进行同步处理,并且必须保证这个写入已经确实被所有的数据库处理完毕了,需要一个监督程序来保证数据的完整性。对在分布式环境下的事务处理有四种需求,联合起来称为“ACID”。
原子性(Atomicity):定义工作的独立单元。如果一个事务是分布的,所有影响分离地点数据的子事务都必须象一个事务那样被一起执行。为了保持在多个地点数据的一致性,需要使用下面就将介绍的双阶段认可过程。
一致性(Consistency):一致性基本上是一种数据库从一个状态变到同等的另一个状态的需求。事务监督器必须检验所有被影响的数据都是一致的。
孤立性(Isolation):事务必须被孤立地执行直到完成,执行期间不受到其它事务的影响。
持续性(Durability):这个性质是与事务的最终确认一起进行的。一旦一个事务被检验为对所有受影响的系统都是正确的,它就被认可并且不再需要卷回。
联机事务处理在金融、证券、期货以及信息服务等系统得到广泛的应用。
例如金融系统的银行业务网,通过拨号线、专线、分组交换网和卫星通信网覆盖整个国家甚至于全球,可以实现大范围的储蓄业务通存通兑,在任何一个分行、支行进行全国范围内的资金清算与划拨。
在自动提款机网络上,用户可以持信用卡在任何一台自动提款机上获得提款、存款及转帐等服务。
在期货、证券交易网上,遍布全国的所有会员公司都可以在当地通过计算机进行报价、交易、交割、结算及信息查询。此外,民航订售票系统也是典型的联机事务处理,在全国甚至全球范围内提供民航机票的预订和售票服务。
文章引用自:http://www.huihoo.com/database/dw2.html http://www.huihoo.com/database/dw2.html
来自:http://blog.sina.com.cn/s/blog_3e902bd3010006l9.html