資料庫 與 資料倉庫 區別
資料庫與資料倉庫的區別
瞭解資料庫與資料倉庫的區別之前,首先掌握三個概念。資料庫軟體、資料庫、資料倉庫。
- 資料庫軟體:是一種軟體,可以看得見,可以操作。用來實現資料庫邏輯功能。屬於物理層。
- 資料庫:是一種邏輯概念,用來存放資料的倉庫。通過資料庫軟體來實現。資料庫由很多表組成,表是二維的,一張表裡可以有很多欄位。欄位一字排開,對應的資料就一行一行寫入表中。資料庫的表,在於能夠用二維表現多維關係。目前市面上流行的資料庫都是二維資料庫。如:Oracle、DB2、MySQL、Sybase、MS SQL Server等。
- 資料倉庫:是資料庫概念的升級。從邏輯上理解,資料庫和資料倉庫沒有區別,都是通過資料庫軟體實現的存放資料的地方,只不過從資料量來說,資料倉庫要比資料庫更龐大得多。資料倉庫主要用於資料探勘和資料分析,輔助領導做決策。
在IT的架構體系中,資料庫是必須存在的。必須要有地方存放資料。比如現在的網購,淘寶,京東等等。物品的存貨數量,貨品的價格,使用者的賬戶餘額之類的。這些資料都是存放在後臺數據庫中。或者最簡單理解,我們現在微博,QQ等賬戶的使用者名稱和密碼。在後臺數據庫必然有一張user表,欄位起碼有兩個,即使用者名稱和密碼,然後我們的資料就一行一行的存在表上面。當我們登入的時候,我們填寫了使用者名稱和密碼,這些資料就會被傳回到後臺去,去跟表上面的資料匹配,匹配成功了,你就能登入了。匹配不成功就會報錯說密碼錯誤或者沒有此使用者名稱等。這個就是資料庫,資料庫在生產環境就是用來幹活的。凡是跟業務應用掛鉤的,我們都使用資料庫。
資料倉庫則是BI下的其中一種技術。由於資料庫是跟業務應用掛鉤的,所以一個數據庫不可能裝下一家公司的所有資料。資料庫的表設計往往是針對某一個應用進行設計的。比如剛才那個登入的功能,這張user表上就只有這兩個欄位,沒有別的欄位了。但是這張表符合應用,沒有問題。但是這張表不符合分析。比如我想知道在哪個時間段,使用者登入的量最多?哪個使用者一年購物最多?諸如此類的指標。那就要重新設計資料庫的表結構了。對於資料分析和資料探勘,我們引入資料倉庫概念。資料倉庫的表結構是依照分析需求,分析維度,分析指標進行設計的。
資料庫與資料倉庫的區別實際講的是OLTP與OLAP的區別。
操作型處理,叫聯機事務處理OLTP(On-Line Transaction Processing),也可以稱面向交易的處理系統,它是針對具體業務在資料庫聯機的日常操作,通常對少數記錄進行查詢、修改。使用者較為關心操作的響應時間、資料的安全性、完整性和併發支援的使用者數等問題。傳統的資料庫系統作為資料管理的主要手段,主要用於操作型處理。
分析型處理,叫聯機分析處理OLAP(On-Line Analytical Processing)一般針對某些主題的歷史資料進行分析,支援管理決策。
操作型處理 |
分析型處理 |
---|---|
細節的 |
綜合的或提煉的 |
實體——關係(E-R)模型 |
星型模型或雪花模型 |
存取瞬間資料 |
儲存歷史資料,不包含最近的資料 |
可更新的 |
只讀、只追加 |
一次操作一個單元 |
一次操作一個集合 |
效能要求高,響應時間短 |
效能要求寬鬆 |
面向事務 |
面向分析 |
一次操作資料量小 |
一次操作資料量大 |
支援日常操作 |
支援決策需求 |
資料量小 |
資料量大 |
客戶訂單、庫存水平和銀行賬戶查詢等 |
客戶收益分析、市場細分等 |