詳解數據倉庫和數據庫的區別

一、數據倉庫

  1. 什麼是數據倉庫?
    數據倉庫(Data Warehouse),可簡寫爲DW或DWH,數據倉庫,是爲了企業所有級別的決策制定計劃過程,提供所有類型數據類型的戰略集合。它出於分析性報告和決策支持的目的而創建。爲需要業務智能的企業 ,爲需要指導業務流程改進、監視時間,成本,質量以及控制等;
  2. 數據倉庫能幹什麼?(舉幾個栗子)

    1. 年度銷售目標的制定,需要根據以往的歷史報表進行決策,不能隨便制定。
    2. 優化業務流程
      例如:某電商平臺某品牌的手機,在過去5年主要的的購買人羣的年齡在什麼年齡段,在那個季節購買量人多,這樣就可以根據這個特點爲目標人羣設定他們主要的需求和動態分配產生的生產量,和倉庫的庫存。
  3. 數據倉庫的特點

    1. 數據倉庫是面向主題的。
      1. 與傳統的數據庫不一樣,數據倉庫是面向主題的,那什麼是主題呢?首頁主題是一個較高乘次的概念,是較高層次上企業信息系統中的數據綜合,歸類並進行分析的對象。在邏輯意義上,他是對企業中某一個宏觀分析領域所涉及的分析對象。(說人話:就是用戶用數據倉庫進行決策所關心的重點方面,一個主題通常與多個操作信息型系統有關,而操作型數據庫的數據組織面向事務處理任務,各個任務之間是相互隔離的);
    2. 數據倉庫是集成的。
      1. 數據倉庫的數據是從原來的分散的數據庫數據(mysql等關係型數據庫)抽取出來的。操作型數據庫與DSS(決策支持系統)分析型數據庫差別甚大。第一,數據倉庫的每一個主題所對應的源數據在所有的各個分散的數據庫中,有許多重複和不一樣的地方,且來源於不同的聯機系統的數據都和不同的應用邏輯捆綁在一起;第二,數據倉庫中的綜合數據不能從原來有的數據庫系統直接得到。因此子在數據進入數據倉庫之前,必然要經過統一與綜合,這一步是數據倉庫建設中最關鍵,最複雜的一步,所要挖成的工作有:
        1. 要統計源數據中所有矛盾之處,如字段的同名異議、異名同義、單位不統一,字長不統一等。
        2. 進行數據的綜合和計算。數據倉庫中的數據綜合工作可以在原有數據庫抽取數據時生成,但許多是在數據倉庫內部生成的,即進入數據倉庫以後進行綜合生成的。
    3. 數據倉庫的數據是隨着時間的變化而變化的。
      1. 數據倉庫中的數據不可更新是針對應用來說的,也就是說,數據倉庫的用戶進行分析處理是不進行數據更新操作的。但並不是說,在從數據集成輸入數據倉庫開始到最後被刪除的整個生存週期中,所有的數據倉庫數據都是永遠不變的。
      2. 數據倉庫的數據是隨着時間變化而變化的,這是數據倉庫的特徵之一。這一特徵主要有以下三個表現:
        1. 數據倉庫隨着時間變化不斷增加新的數據內容。數據倉庫系統必須不斷捕捉OLTP數據庫中變化的數據,追加到數據倉庫當中去,也就是要不斷的生成OLTP數據庫的快照,經統一集成增加到數據倉庫中去;但對於確實不在變化的數據庫快照,如果捕捉到新的變化數據,則只生成一個新的數據庫快照增加進去,而不會對原有的數據庫快照進行修改。
        2. 數據庫隨着時間變化不斷刪去舊的數據內容 。數據倉庫內的數據也有存儲期限,一旦過了這一期限,過期數據就要被刪除。只是數據庫內的數據時限要遠遠的長於操作型環境中的數據時限。在操作型環境中一般只保存有60~90天的數據,而在數據倉庫中則要需要保存較長時限的數據(例如:5~10年),以適應DSS進行趨勢分析的要求。
        3. 數據倉庫中包含有大量的綜合數據,這些綜合數據中很多跟時間有關,如數據經常按照時間段進行綜合,或隔一定的時間片進行抽樣等等。這些數據要隨着時間的變化不斷地進行從新綜合。因此數據倉庫的數據特徵都包含時間項,以標明數據的歷史時期。
    4. 數據倉庫的數據是不可修改的。
      1. 數據倉庫的數據主要提供企業決策分析之用,所涉及的數據操作主要是數據查詢,一般情況下並不進行修改操作。數據倉庫的數據反映的是一段相當長的時間內歷史數據的內容,是不同時點的數據庫快照的集合, 以及基於這些快照進行統計、綜合和重組的導出數據,而不是聯機處理的數據。數據庫中進行聯機處理的書庫進過集成輸入到數據倉庫中,一旦數據倉庫存放的數據已經超過數據倉庫的數據存儲期限,這些數據將從當前的數據倉庫中刪去。因爲數據倉庫只進行數據查詢操作,所以數據倉庫當中的系統要比數據庫中的系統要簡單的多。數據庫管理系統中許多技術難點,如完整性保護、併發控制等等,在數據倉庫的管理中幾乎可以省去。但是由於數據倉庫的查詢數據量往往很大,所以就對數據查詢提出了更高的要求,他要求採用各種複雜的索引技術;同時數據倉庫面向的是商業企業的高層管理層,他們會對數據查詢的界面友好性和數據表示提出更高的要求;

二、數據倉庫和數據庫的區別

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

三.尾巴

1.如有錯誤歡迎大家指出,我會及時更正,有什麼不懂也可以留言提問,互相交流嗎。
2.也許大家覺得這沒什麼,但是我會認真對待,把它當成我的筆記、心得、這樣才能提升自己。

歡迎訪問我的csdn博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章