联机事务处理OLTP(on-line transaction processing)主要是执行基本的、日常的事务处理,比如数据库记录的增、删、改、查。比如在银行存取一笔款,就是一个事务交易。OLTP的特点一般有:
1.实时性要求高;
2.数据量不是很大;
3.交易一般是确定的,所以OLTP是对确定性的数据进行存取;(比如存取款都有一个特定的金额)
4.并发性要求高并且严格的要求事务的完整,安全性。(比如这种情况:有可能你和你的家人同时在不同的银行取同一个帐号的款),
联机分析处理OLAP(On-Line Analytical Processing)是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统。OLAP的特点一般有:
1.实时性要求不是很高,很多应用的顶多是每天更新一下数据;
2.数据量大,因为OLAP支持的是动态查询,所以用户也许要通过将很多数据的统计后才能得到想要知道的信息,例如时间序列分析等等,所以处理的数据量很大;
3.因为重点在于决策支持,所以查询一般是动态的,也就是说允许用户随时提出查询的要求。所以在OLAP中通过一个重要概念“维”来搭建一个动态查询的平台(或技术),供用户自己去决定需要知道什么信息。
以下是大致的区分:
OLTP OLAP
用户 操作人员,低层管理人员 决策人员,高级管理人员
功能 日常操作处理 分析决策
DB设计 面向应用 面向主题
数据 当前的,最新的细节的,二维的分立的 历史的,聚集的,多维的集成的, 统一的
存取 读/写数十条记录 读上百万条记录
工作单位 简单的事务 复杂的查询
用户数 上千个 上百个
DB大小 100MB-GB 100GB-TB
这些概念(或技术)都是应用层面的,这个和用什么数据库系统是无关的。有兴趣的朋友如果愿意了解OLAP的具体应用而又不愿意花太大的力气,不妨到科研、教育、文化和卫生系统去看一看,他们那里一般都有一个叫做SPSS的统计分析软件,这是一个和SQLSERVER在同一层次上的世界级的、最权威的统计分析软件,其菜单上有一个“分析”项目,其下拉的第一个项目就是OLAP,当然也可以自己装一个试试。
简单的说:
OLTP即联机事务处理,就是我们经常说的关系数据库,意即记录即时的增、删、改、查,就是我们经常应用的东西,这是数据库的基础;TPCC(Transaction Processing Performance Council)属于此类。
OLAP即联机分析处理,是数据仓库的核心部心,所谓数据仓库是对于大量已经由OLTP形成的数据的一种分析型的数据库,用于处理商业智能、决策支持等重要的决策信息;数据仓库是在数据库应用到一定程序之后而对历史数据的加工与分析,读取较多,更新较少,TPCH属于此类,对于OLAP,列存储模式比通常的行存储模式可能更具优势。