对于SQL开发人员来说,必须先要了解进行SQL编程的对象类型,即要开发的数据库应用是哪种类型。一般来说, 可将数据库的应用类型分为OLTP (OnLine Transaction Processing,联机事务处理)和OLAP (OnLine Analysis Processing,联机分析处理)两种。OLTP是传统关系型数据库的主要应用,其主要面向基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLTP
OLTP也被称为面向交易的处理系统,其基本特征是可以立即将顾客的原始数据传送到计算中心进行处理,并在很短的时间内给出处理结果,这个过程的最大优点是可以即时地处理输人的数据、及时地回答,因此OLTP又被称为实时系统(Real Time System)。衡量OLTP系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即从用户在终端输人数据到计算机对这个请求做出回复所需的时间。OLTP数据库旨在使事务应用程序仅完成对所需数据的写人,以便尽快处理单个事务。
LTP数据库通常具有以下特征:
- 支持大量并发用户定期添加和修改数据。
- 反映随时变化的单位状态,但不保存其历史记录。
- 包含大量数据,其中包括用于验证事务的大量数据。
- 具有复杂的结构。
- 可以进行优化以对事务活动做出响应。
- 提供用于支持单位日常运营的技术基础结构。
- 口个别事务能够很快地完成,并且只需要访问相对较少的数据,OLP 系统旨在处理同时输人的成百上千的事务
OLAP
OLAP的概念最早是由关系数据库之父E.F.Codd博士于1993年提出的,是一种用于组织大型商务数据库和支持商务智能的技术。数据库分为一个或多个多维数据集,每个多维数据集都由多维数据集管理员组织和设计,易于创建和使用所需的数据透视表和数据透视图。
OLAP是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定致和交互性的存取,允许管理决策人员对数据进行深人观察。决策数据是多维数据,是决策的主要内容。OLAP专门用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以种直观易懂的形 式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况、了解对象的需求、制定正确的方案。
OLAP具有灵活的分析功能、直观的数据操作和分析结果可视化表示等突出优点,从而使用户对基于大量复杂数据的分析变得轻松而高效,利于用户迅速做出正确判断。OLAP可用于证实人们提出的复杂假设,是以图形或表格的形式来表示的对信息的总结。OLAP并不将异常信息标记出来,采取的是一种知识证实的方法。
OLAP的主要特点是直接仿照用户的多角度思考模式,预先为用户组建多维的数据模型。在这里,维指的是用户的分析角度,例如对销售数据的分析,时间周期是一个维度,产品类别、分销渠道、地理分布、客户群类也分别是不同的维度。一 旦多维数据模型建立完成,用户可以快速地从各个分析角度获取数据,也能动态地在各个角度之间切换数据或者进行多角度综合分析,具有极大的分析灵活性。这也是OLAP在近年来被广泛关注的根本原因。OLAP从设计理念和真正实现上都与旧有的管理信息系统有着本质的区别。
下面介绍一下OLAP的基本概念:
- 维(Dimension):是用户观察数据的特定角度,是问题的一类属性, 属性集 合构成一个维(时间维、地理维等)。
- 维的层次(Leve);用户观察数据的某个特定角度(即某个维)还可能存在细节程度不同的各个描述方面(时间维包括日期、月份、季度、年)。
- 维的成员 (Membr);, 即维的一个取值,是数据项在某个维中位置的描述,如“某年某月某日”是在时间维上的位置描述。
- 度量(Measure):多维数组的取值。
OLAP的基本多维分析操作有钻取(ilpp和Dildown)、切片(Sic)和切块(Dice)以及旋转(Pivot)等
- 钻取:改变维的层次,变换分析的粒度。它包括向下钻取(Dill-down) 和向上钻取(ril-up) /上滚(RO1l-up)。向上钻取是在某一维 上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而向下钻取则相反,从汇总数据深入到细节数据进行观察或增加新维。
- 切片和切块:在一部分维 上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片:如果有三个或以上,则是切块。
- 旋转:变换维的方向,即在表格中重新安排维的放置( 如行列互换)。
OLTP与OLAP的比较
- 实时性要求高。
- 查询的数据量不是很大。
- 交易一般是确定的,所以OLTP是对确定性的数据进行存取。
- 并发性要求高,并且严格要求事务的完整性、安全性。
- 实时性要求不是很高,很多应用最多每天更新一一次数据。
- 数据量大。因为OLAP支持的是动态查询,用户要通过对很多数据的统计才能得到想要知道的信息,如时间序列分析等,所以处理的数据量很大。
- 因为重点在于决策支持,所以查询一般是动态的,也就是说允许用户随时提出查询的要求。因此,在OLAP中通过一个重要概念“维”来搭建一个动态查询的平台(或技术),供用户自己决定需要知道的信息。
OLTP | OLAP | |
---|---|---|
用户 | 操作人员 | 决策人员 |
功能 | 日常操作处理 | 分析决策 |
DB设计 | 面向应用 | 面向主题 |
数据 | 当前的,最新的 | 历史的,聚集的 |
存取 | 读/写数十条记录 | 读上百万的数据 |
工作单位 | 简单的事务 | 复杂的查询 |
用户数 | 上千个 | 上百个 |
DB大小 | 一般小于500GB | 大于1TB |