1.定义
1.1 操作性系统
事务的应用的信息系统。
事务是工作于数据库管理系统(或类似系统)中的一个逻辑单元,该逻辑单元中的操作被以一种独立于其他事务的可靠方式所处理。事务一般代表着数据改变,它提供 “all-or-nothing” 操作,就是说事务中的一系列操作要么完全执行,要么完全不执行。
在数据库中使用事务主要出于两个目的:
保证工作单元的可靠性。当数据库系统异常宕机时,其中执行的操作或者已经完成或者只有部分完成,很多没有完成的操作此时处于一种模糊状态。在这种情况下,数据库系统必须能够恢复到数据一致的正常状态。
提供并发访问数据库的多个程序间的隔离。如果没有这种隔离,程序得到的结果很可能是错误的。
根据事务的定义,引申出事务具有原子性、一致性、隔离性、持久性的特点,也就是数据库领域中常说的事务的 ACID 特性。
1.2 分析型系统
在数据库层面,分析型系统操作被定义成少量的事务,复杂的查询,处理归档和历史数据。这些数据很少被修改,从数据库抽取数据是最多的操作,也是识别这种系统的关键特征。分析型数据库基本上都是读操作。分析型系统的典型应用包括:
销售业务分析报告、市场管理报告、业务过程管理(BPM)、预算和预测、金融分析报告及其类似的应用。
2.区别
2.1这两种系统的侧重点不同。
操作型系统更适合对已有数据的更新,所以是日常处理工作或在线系统的选择。
分析型系统提供在大量存储数据上的分析能力,所以这类系统更适合报表类应用。分析型系统通常是查询历史数据,这有助于得到更准确的分析报告。
2.2目标完全不同
为了得到更好的性能,使用的数据模型和设计方法也不同。
操作型系统数据库通常使用规范化设计,为普通查询和数据修改提供更好的性能。
分析型数据库具有典型的数据仓库组织形式。
2.3 复杂查询
操作型系统上的查询更少、查询的复杂度更小,而分析型系统上执行的查询要复杂得多。所以操作型系统会比分析型系统快很多。
2.4 更新频率
操作型系统的数据会持续更新,并且更新会立即生效。而分析型系统的数据更新,是由预定义的处理作业同时装载大量的数据集合,并且在装载前需要做数据转换,因此整个数据更新过程需要很长的执行时间。
具体对比项如下:
序号 | 项目 | 操作型系统 | 分析型系统 |
1 | 应用系统 | 在线应用、交易系统、管理系统等 | 多维分析、决策支持系统等 |
2 | 数据源 | 原始的数据,应用系统的操作信息 | 历史的、归档的数据,来源于数据仓库 |
3 | 用户 | C端或者B端的终端用户 | 数据分析师、管理人员 |
4 | 侧重点 | 更新 | 信息的检索、报表分析 |
5 | 任务 | 常见的业务操作(增删改查) | 数据分析(查询、分析) |
6 | 数据更新 | 插入、删除、更改,要求快速执行,立即返回结果 | 大量数据装载,不要求快速执行,不需要立即返回结果 |
7 | 数据模型 | 实体关系模型 | 多维数据模型 |
8 | 设计方法 | 规范化设计,大量表与表之间的关系 | 维度建模,表较少 |
9 | 时间范围 | 从天到年 | 几年到几十年 |
10 | 存储空间 | 小,只存储操作数据 | 大,需要存储大量的历史数据 |
参考:《Hadoop构建数据仓库实践》