剑指大数据:企业级数据仓库项目实战(电商版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 数据库和数据仓库的区别

在前面的讲解中,频繁出现了两个概念:数据库和数据仓库。那么数据库和数据仓库究竟存在什么区别呢?

数据库从字面上来理解,就是用来存储数据的仓库,但是这还不够精确,毕竟数据仓库也是用来存储数据的。现在的数据库通常指的是关系数据库。关系数据库通常由多张二元表组成,具有结构化程度高、独立性强、冗余度低等特点。关系数据库主要进行OLTP(Online Transaction Processing,联机事务处理)分析,例如,用户去银行取一笔钱,银行账户里余额的减少就是典型的OLTP操作。

关系数据库对于OLTP操作的支持是毋庸置疑的,但是它也有解决不了的问题。例如,一个大型连锁超市拥有上万种商品,在全球拥有成百上千家门店,超市经营者想知道在某个季度某种饮料的总销售额是多少,或者对某商品的销售额影响最大的因素是什么,此时,关系数据库就无法提供所需的数据,数据仓库就应运而生了。以上例子体现的是另外一种数据分析类型——OLAP(Online Analytical Processing,联机分析处理)。所以,数据库与数据仓库的区别实际是OLTP与OLAP的区别。

OLTP系统通常面向的是数据的随机读/写操作,采用满足范式理论的关系模型存储数据,从而在事务处理中解决数据的冗余和一致性问题。OLAP系统主要面向的是数据的批量读/写操作,并不关注事务处理中的一致性问题,主要关注海量数据的整合及在复杂的数据处理和查询中的性能问题,支持管理决策。