資料庫與資料倉庫的區別與聯絡
資料庫是面向事務的設計,資料倉庫是面向主題設計的。資料庫一般儲存線上交易資料,資料倉庫儲存的一般是歷史資料。
資料庫是面向事務的設計,資料倉庫是面向主題設計的。資料庫一般儲存線上交易資料,資料倉庫儲存的一般是歷史資料。
資料庫設計是儘量避免冗餘,一般採用符合正規化的規則來設計,資料倉庫在設計是有意引入冗餘,採用反正規化的方式來設計。
資料庫是為捕獲資料而設計,資料倉庫是為分析資料而設計,它的兩個基本的元素是維表和事實表。(維是看問題的角度,比如時間,部門,維表放的就是這些東西的定義,事實表裡放著要查詢的資料,同時有維的ID)
資料倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘資料資源、為了決策需要而產生的,它決不是所謂的“大型資料庫”。那麼,資料倉庫與傳統資料庫比較,有哪些不同呢?讓我們先看看W.H.Inmon關於資料倉庫的定義:面向主題的、整合的、與時間相關且不可修改的資料集合。
“面向主題的”:傳統資料庫主要是為應用程式進行資料處理,未必按照同一主題儲存資料;資料倉庫側重於資料分析工作,是按照主題儲存的。這一點,類似於傳統農貿市場與超市的區別—市場裡面,白菜、蘿蔔、香菜會在一個攤位上,如果它們是一個小販賣的;而超市裡,白菜、蘿蔔、香菜則各自一塊。也就是說,市場裡的菜(資料)是按照小販(應用程式)歸堆(儲存)的,超市裡面則是按照菜的型別(同主題)歸堆的。
“與時間相關”:資料庫儲存資訊的時候,並不強調一定有時間資訊。資料倉庫則不同,出於決策的需要,資料倉庫中的資料都要標明時間屬性。決策中,時間屬性很重要。同樣都是累計購買過九車產品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對於決策者意義是不同的。
“不可修改”:資料倉庫中的資料並不是最新的,而是來源於其它資料來源。資料倉庫反映的是歷史資訊,並不是很多資料庫處理的那種日常事務資料(有的資料庫例如電信計費資料庫甚至處理實時資訊)。因此,資料倉庫中的資料是極少或根本不修改的;當然,向資料倉庫新增資料是允許的。
資料倉庫的出現,並不是要取代資料庫。目前,大部分資料倉庫還是用關係資料庫管理系統來管理的。可以說,資料庫、資料倉庫相輔相成、各有千秋