2 数据仓库与数据库有何不同
它们有哪些相似之处
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的
数据库一般存储在线交易数据,数据仓库存储的一般是历史数据
数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表
维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID
单从概念上讲, 有些晦涩
任何技术都是为应用服务的,结合应用可以很容易地理解
以银行业务为例
数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来, 这里,可以简单地理解为用数据库记帐
数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据
比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少
如果存款又多,消费交易又多,那么该地区就有必要设立ATM 了
显然, 银行的交易量是巨大的,通常以百万甚至千万次来计算
事务系统是实时的,这就要求时效性, 客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据
而分析系统是事后的,它要提供关注时间段内所有的有效数据
这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了
数据仓库, 是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”
那么,数据仓库与传统数据库比较,有哪些不同呢
让我们先看看W
Inmon 关于数据仓库的定义:面向主题的、 集成的、 与时间相关且不可修改的数据集合
“面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数