一?/p>
1.2
数据仓库与数据库有何不同?它们有哪些相似之处
?
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的?/p>
数据库一般存储在线交易数据,数据仓库存储的一般是历史数据?/p>
数据库设计是尽量避免冗余?/p>
一般采用符合范式的规则来设计,
数据仓库在设计是有意引入
冗余,采用反范式的方式来设计?/p>
数据库是为捕获数据而设计,
数据仓库是为分析数据而设计,
它的两个基本的元素是维表?/p>
事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里?/p>
着要查询的数据,同时有维的
ID
?/p>
单从概念上讲?/p>
有些晦涩。任何技术都是为应用服务的,
结合应用可以很容易地理解?/p>
以银
行业务为例?/p>
数据库是事务系统的数据平台,
客户在银行做的每笔交易都会写入数据库?/p>
?/p>
记录下来?/p>
这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,
它从
事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一?/p>
月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区
就有必要设立
ATM
了?/p>
显然?/p>
银行的交易量是巨大的?/p>
通常以百万甚至千万次来计算。事务系统是实时的,这就?/p>
求时效性,
客户存一笔钱需要几十秒是无法忍受的?/p>
这就要求数据库只能存储很短一段时?/p>
的数据?/p>
而分析系统是事后的,
它要提供关注时间段内所有的有效数据?/p>
这些数据是海量的?/p>
汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了?/p>
数据仓库?/p>
是在数据库已经大量存在的情况下,
为了进一步挖掘数据资源?/p>
为了决策需要?/p>
产生的,它决不是所谓的“大型数据库?/p>
。那么,数据仓库与传统数据库比较,有哪些不同
?/p>
?
让我们先看看
W.H.Inmon
关于数据仓库的定?/p>
:
面向主题的?/p>
集成的?/p>
与时间相关且不可
修改的数据集合?/p>
“面向主题的?/p>
:
传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据
;
数据仓库侧重于数据分析工作,
是按照主题存储的?/p>
这一点,
类似于传统农贸市场与超市?/p>
区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖?/p>
;
而超市里?/p>
白菜、萝卜、香菜则各自一块。也就是说,市场里的?/p>
(
数据
)
是按照小?/p>
(
应用程序
)
归堆
(
?/p>
?/p>
)
的,超市里面则是按照菜的类型
(
同主?/p>
)
归堆的?/p>
“与时间相关?/p>
:
数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出
于决策的需要,
数据仓库中的数据都要标明时间属性。决策中,时间属性很重要?/p>
同样都是
累计购买过九车产品的顾客?/p>
一位是最近三个月购买九车?/p>
一位是最近一年从未买过,
这对
于决策者意义是不同的?/p>
“不可修改?/p>
:
数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的
是历史信息,并不是很多数据库处理的那种日常事务数?/p>
(
有的数据库例如电信计费数据库
甚至处理实时信息
)
。因此,数据仓库中的数据是极少或根本不修改的
;
当然,向数据仓库?