相信大數據學習者對數據倉庫和數據庫并不陌生。兩者都是通過數據庫軟件存儲數據的地方。從這個意義上說,它們似乎并沒有太大不同。但是深入分析后,我們會發現兩者之間在數據量和功能方面的差異是巨大的。那么到底數據庫與數據倉庫有哪些區別呢?為了更清楚地區分,接下來讓我們詳細的談談二者之間的區別。
1、概念不同
數據庫是一種邏輯概念,用來存放數據的倉庫,通過數據庫軟件來實現。數據庫由很多表組成,表是二維的,一張表里面有很多字段。字段一字排開,對數據就一行一行的寫入表中。數據庫的表,在于能夠用二維表現多維的關系。而數據倉庫是數據庫概念的升級,從數據量來說,數據倉庫要比數據庫更龐大德多。數據倉庫主要用于數據挖掘和數據分析,輔助領導做決策。
2、設計不同
數據庫設計是盡量避免冗余,一般針對某一業務應用進行設計,比如一張簡單的User表,記錄用戶名、密碼等簡單數據即可,符合業務應用,但是不符合分析。而數據倉庫在設計是有意引入冗余,依照分析需求,分析維度、分析指標進行設計。簡單來說,數據庫是為捕獲數據而設計,數據倉庫是為分析數據而設計。
3、應用場景不同
以銀行業務為例。數據庫是事務系統的數據平臺,客戶在銀行做的每筆交易都會寫入數據庫,被記錄下來,這里可以簡單地理解為用數據庫記賬。有所區別的是,數據倉庫是分析系統的數據平臺,它從事務系統獲取數據,并做匯總、加工,為決策者提供決策的依據。比如,某銀行某分行一個月發生多少交易,該分行當前存款余額是多少。如果存款又多,消費交易又多,那么該地區就有必要設立ATM了。
顯然,銀行的交易量是巨大的,通常以百萬甚至千萬次來計算。事務系統是實時的,這就要求時效性,客戶存一筆錢需要幾十秒是無法忍受的,這就要求數據庫只能存儲很短一段時間的數據。而分析系統是事后的,它要提供關注時間段內所有的有效數據。這些數據是海量的,匯總計算起來也要慢一些,但是只要能夠提供有效的分析數據就達到目的了。
4、本質不同
數據庫與數據倉庫的區別實際講的是OLTP與OLAP的區別。操作型處理,叫聯機事務處理OLTP,它是針對具體業務在數據庫聯機的日常操作,通常對少數記錄進行查詢、修改。用戶較為關心操作的響應時間、數據的安全性、完整性和并發支持的用戶數等問題。傳統的數據庫系統作為數據管理的主要手段,主要用于操作型處理。而分析型處理,叫聯機分析處理OLAP一般針對某些主題的歷史數據進行分析,支持管理決策。
5、作用不同
我們要明白,數據倉庫與數據庫雖然有所區別,但是并表代表誰就一定比誰要好,數據倉庫的出現并不是要取代數據庫。數據庫是面向事務的設計,數據倉庫是面向主題設計的。數據庫一般存儲業務數據,數據倉庫存儲的一般是歷史數據。
總之,數據庫與數據倉庫雖然都可以存放數據,但是,數據倉庫是在已經存在大量數據庫的條件下生成的,以便進一步挖掘數據資源并做出決策需求。它絕不是所謂的“大型數據庫”。兩者互不相同,又相輔相成,缺一不可。想了解更多關于數據庫的信息,請繼續關注中培偉業。