OLTP和OLAP区别
60年代,关系数据库之父E.F.Codd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。1993年,E.F.Codd提出了OLAP概念,认为OLTP已不能满足终端用户对数据库查询分析的需要,SQL对大型数据库进行的简单查询也不能满足终端用户分析的要求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,E.F.Codd提出了多维数据库和多维分析的概念,即OLAP。
联机事务处理(OLTP)和联机分析处理(OLAP)的不同,主要通过以下五点区分开来。
用户和系统的面向性:
OLTP是面向顾客的,用于事务和查询处理
OLAP是面向市场的,用于数据分析
数据内容:
OLTP系统管理当前数据.
OLAP系统管理大量历史数据,提供汇总和聚集机制.
数据库设计:
OLTP采用实体-联系ER模型和面向应用的数据库设计.
OLAP采用星型或雪花模型和面向主题的数据库设计.
视图:
OLTP主要关注一个企业或部门内部的当前数据,不涉及历史数据或不同组织的数据
OLAP则相反.
访问模式:
OLTP系统的访问主要由短的原子事务组成.这种系统需要并行和恢复机制.
OLAP系统的访问大部分是只读操作
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
下表列出了OLTP与OLAP之间的比较:
用户和系统的面向性:
OLTP是面向顾客的,用于事务和查询处理
OLAP是面向市场的,用于数据分析
数据内容:
OLTP系统管理当前数据.
OLAP系统管理大量历史数据,提供汇总和聚集机制.
数据库设计:
OLTP采用实体-联系ER模型和面向应用的数据库设计.
OLAP采用星型或雪花模型和面向主题的数据库设计.
视图:
OLTP主要关注一个企业或部门内部的当前数据,不涉及历史数据或不同组织的数据
OLAP则相反.
访问模式:
OLTP系统的访问主要由短的原子事务组成.这种系统需要并行和恢复机制.
OLAP系统的访问大部分是只读操作
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
下表列出了OLTP与OLAP之间的比较:
OLTP |
OLAP |
|
用户 |
操作人员,低层管理人员 |
决策人员,高级管理人员 |
功能 |
日常操作处理 |
分析决策 |
DB 设计 |
面向应用 |
面向主题 |
数据 |
最新的,细节的,二维的,分立的 |
历史的,聚集的,多维的,集成的 |
存取规模 |
读/写数条(甚至数百条)记录 |
读上百万(甚至上亿)条记录 |
操作频度 |
非常频繁(以秒计) |
比较稀松(以小时甚至以周计) |
工作单位 |
严格的事务 |
复杂的查询 |
用户数 |
数百个-数千万个 |
数个-数百个 |
DB 大小 |
100MB-GB |
100GB-TB |