一、概述
本文就数据库与数据仓库的区别进行简要说明,并且适当的引入OLTP和OLAP内容。二、主要内容
1.什么是数据库和数据仓库
我们都知道ORACLE,SQL SERVER,我们都叫它们数据库。那什么是数据库呢?百度给出的定义如下:数据库是按照数据结构来组织、存储和管理数据的仓库。我们可以形象的去理解,认为数据库就是一个大仓库,里面装着各种来之不易的宝贵数据,当然这些数据是以一定的结构存放的,而不是杂乱无章的放着。但不仅仅是这样,我们别忘记了定义中的管理二字,它表明我们不仅仅是把数据放在那里就完了,而且要去管理它的。管理的内容很多,比如建表,录入数据,查询数据,删除数据等。
什么数据仓库呢?
数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。这个定义很复杂,但是也很全面,值得我们来好好分析一下。
首先,这个定义明确指出了数据仓库的目的:用于决策管理的,也就是说有个数据仓库,我们能够很easy的做正确的决策。
其次,前面的句子则刚好说明了数据仓库的几个特点:
(1)面向主题:数据仓库中的数据都是面向某个主题的,比如销售,税收等。它排除了数据库中的与主题不相关的属性。
(2)集成: 数据仓库的中的数据往往来自分布的甚至是异构的各个数据库,所以你当然需要把你想要的东西从这些分散的数据库 中集成到一个仓库里。
(3)相对稳定:数据仓库不需要进行事务处理,仅仅需要查询就可以了。所以它是相对稳定的。
(4)反映历史变化:包含历史数据,通过这些信息,对企业的发展历程和未来趋势做出定量分析预测。
2.两者的区别
(1)数据库是面向事务的设计,数据仓库是面向主题设计的。(2)数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
(3)据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
(3)数据库是为收集数据而设计,数据仓库是为分析数据而设计。(4)数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的。数据仓库的出现,并不是要 取代数据库。数据库主要用于联机事务处理(OLTP),而数据仓库主要用于联机分析处理(OLAP)。
3.OLTP和OLAP
知道了数据库与数据仓库的区别,其实也就知道了OLTP和OLAP的大部分区别。现在简单的把两者的区别罗列出来:面向性: OLTP面向顾客的,用于办事员,专业人员等。OLAP用于分析人员,决策者。
数据内容:OLTP保存着当前数据,琐碎。OLAP保存着历史数据,并且进行的聚集,汇总。
设计模式: OLTP采用的是E-R模型,OLAP采用的是雪花模型和星型模型。
访问模式:OLTP有多重措施保证读写的正确与安全。OLAP通常只提供查询。