數據庫和數據倉庫的區別

有兩個層面/角度來回答這個有趣的問題:
1,邏輯層面/概念層面:數據庫和數據倉庫實際上是同樣的或者及其類似的,都是經過某個數據庫軟件,基於某種數據模型來組織、管理數據。可是,數據庫一般更關注業務交易處理(OLTP),而數據倉庫更關注數據分析層面(OLAP),由此產生的數據庫模型上也會有很大的差別。
數據庫一般追求交易的速度,交易完整性,數據的一致性,等等,在數據庫模型上主要聽從範式模型(1NF,2NF,3NF,等等),從而儘量減小數據冗餘,保證引用完整性;而數據倉庫強調數據分析的效率,複雜查詢的速度,數據之間的相關性分析,因此在數據庫模型上,數據倉庫喜歡使用多維模型,從而提升數據分析的效率。
2,產品實現層面:數據庫和數據倉庫軟件是有些不一樣的,數據庫一般使用行式存儲,如SAP ASE,Oracle, Microsoft SQL Server,而數據倉庫傾向使用列式存儲,如SAP IQ,SAP HANA數據庫

 

數據倉庫是一個面向主題的(Subject Oriented),集成的(Integrate),相對穩定的(Non-volatile),反映歷史變化(Time Variant)的數據集合,用於支持管理決策。數據庫設計

所謂的:設計

  • 面向主題:指數據倉庫中的數據是按照必定的主題域進行組織
  • 集成:指對原有的分散的數據庫通過系統加工,整理獲得的消除源數據中的不一致性
  • 相對穩定:指一旦某個數據進入數據倉庫之後只須要按期的加載、刷新
  • 反映歷史變化:指經過這些信息,對企業的發展歷程和將來趨勢作出定量分析預測

數據倉庫建設是一個工程,是一種過程,而不是一種能夠購買的產品,企業數據處理方式是以聯機事務處理形式信息,並利用信息進行決策;在信息應用過程當中管理信息。事務

數據倉庫的出現,並非要取代數據庫。目前大部分數據倉庫仍是用關係型數據庫管理系統實現的。數據倉庫與數據庫的主要區別在於:數據分析

  • 數據庫是面向事務的設計,數據倉庫是面向主題設計的
  • 數據庫通常存儲在線交易數據,數據倉庫存儲的通常是歷史數據
  • 數據庫設計是儘可能避免冗餘,數據倉庫在設計時有意引入冗餘
  • 數據庫是爲了捕獲數據而設計,數據倉庫是爲了分析數據而設計
相關文章
相關標籤/搜索