一、操作型數據庫和分析型數據庫的區別


數據庫的"分家"

        隨着經典的RDBMS,如Oracle,MySQL,SQL Server等被成功推向市場,為社會信息化的發展做出了重大貢獻。並且隨着數據庫使用范圍的不斷擴大,它被逐步划分為兩大基本類型:

        1. 操作型數據庫

        主要用於業務支撐。一個公司往往會使用並維護若干個數據庫,這些數據庫保存着公司的日常操作數據,比如商品購買、酒店預訂、學生成績錄入等;

        2. 分析型數據庫

        主要用於歷史數據分析。這類數據庫作為公司的單獨數據存儲,負責利用歷史數據對公司各主題域進行統計分析;

   放在一起會發生資源搶奪等情況,具體區別如下:

 

操作型數據庫 VS 分析型數據庫

 

        1. 數據組成差別 - 數據時間范圍差別

   操作型數據庫只會存放90天以內的數據,

   分析型數據庫存放的則是數年內的數據。

   這點也是將操作型數據和分析型數據進行物理分離的主要原因。

        2. 數據組成差別 - 數據細節層次差別

        操作型數據庫存放的主要是細節數據,

   分析型數據庫中雖然既有細節數據,又有匯總數據,但對於用戶來說,重點關注的是匯總數據部分。

        操作型數據庫中自然也有匯總需求,但匯總數據本身不存儲而只存儲其生成公式。這是因為操作型數據是動態變化的,因此匯總數據會在每次查詢時動態生成。

        而對於分析型數據庫來說,因為匯總數據比較穩定不會發生改變,而且其計算量也比較大(因為時間跨度大),因此它的匯總數據可考慮事先計算好,以避免重復計算。

        3. 數據組成差別 - 數據時間表示差別

        操作型數據通常反映的是現實世界的當前狀態;

   分析型數據庫既有當前狀態,還有過去各時刻的快照,分析型數據庫的使用者可以綜合所有快照對各個歷史階段進行統計分析。

        4. 技術差別 - 查詢數據總量和查詢頻度差別

        操作型查詢的數據量少而頻率多,

   分析型查詢則反過來,數據量大而頻率少。要想同時實現這兩種情況的配置優化是不可能的,這也是將兩類數據庫物理分隔的原因之一。

        5. 技術差別 - 數據更新差別

        操作型數據庫允許用戶進行增,刪,改,查;

   分析型數據庫用戶則只能進行查詢。

        6. 技術差別 - 數據冗余差別

        數據的意義是什么?就是減少數據冗余,避免更新異常。而如5所述,分析型數據庫中沒有更新操作。因此,減少數據冗余也就沒那么重要了。

       "某大公司Hadoop Hive里的關系表不完全滿足完整/參照性約束,也不完全滿足范式要求,甚至第一范式都不滿足。這種情況正常嗎?",答曰是正常的。因為Hive是一種數據倉庫,而數據倉庫和分析型數據庫的關系非常緊密(后文會講到)。它只提供查詢接口,不提供更新接口,這就使得消除冗余的諸多措施不需要被特別嚴格地執行了。

        7. 功能差別 - 數據讀者差別

        操作型數據庫的使用者是業務環境內的各個角色,如用戶,商家,進貨商等;

   分析型數據庫則只被少量用戶用來做綜合性決策。

        8. 功能差別 - 數據定位差別

        這里說的定位,主要是指以何種目的組織起來。操作型數據庫是為了支撐具體業務的,因此也被稱為"面向應用型數據庫";

   分析型數據庫則是針對各特定業務主題域的分析任務創建的,因此也被稱為"面向主題型數據庫"。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM