OLAP分析的基礎是多維數據集,按照其數據存儲格式的不同可以分為關系型OLAP(Relational OLAP,ROLAP)和多維型OLAP(Multidimensional OLAP,MOLAP).
(一):ROLAP采用關系數據庫和相似的關系查詢工具進行多維數據的存儲和分析.在ROLAP中,數據預處理程序一般不高,所以查詢響應較慢,但靈活性較好,用戶可動態定義計算和統計方式,系統的可移植性較好.
在多維分析的商業智能解決方案中,根據事實表和維度表的關系,ROLAP設計模型可分為星型模型和雪花型模型。在設計邏輯型數據的模型的時候,就應考慮數據是按照星型模型還是雪花型模型進行組織。
1. 星型模型:由一個包含大量記錄並且不含冗余的中心表(事實表)和若干個小的維表(每個維一個維表)組成。維表通過外鍵與事實表關聯。如圖1
星型架構是一種非正規化的結構,多維數據集的每一個維度都直接與事實表相連接,不存在漸變維度,所以數據有一定的冗余,如在地域維度表中,存在國家 A 省 B 的城市 C 以及國家 A 省 B 的城市 D 兩條記錄,那么國家 A 和省 B 的信息分別存儲了兩次,即存在冗余。
圖1
2.雪花模型:當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,原有的各維表可能被擴展為小的事實表,形成一些局部的 " 層次 " 區域,這些被分解的表都連接到主維度表而不是事實表。如圖 2,將地域維表又分解為國家,省份,城市等維表。它的優點是 : 通過最大限度地減少數據存儲量以及聯合較小的維表來改善查詢性能。雪花型結構去除了數據冗余。
圖2
兩種模型比較:星型模型因為數據的冗余所以很多統計查詢不需要做外部的連接,因此一般情況下效率比雪花型模型要高。星型結構不用考慮很多正規化的因素,設計與實現都比較簡單。雪花型模型由於去除了冗余,有些統計就需要通過表的聯接才能產生,所以效率不一定有星型模型高。正規化也是一種比較復雜的過程,相應的數據庫結構設計、數據的 ETL、以及后期的維護都要復雜一些。因此在冗余可以接受的前提下,實際運用中星型模型使用更多,也更有效率。
如果事實表很大,優選選擇星型模型。
(二):MOLAP采用多維數據庫(MDDB)來存儲器和分析多維數據.多維數據庫使用專門的技術把數據存儲在類似矩陣的n維陣列中.多維數據庫管理系統的終端用戶把存儲的數據看做是三維的立方體,稱為數據立方體(Data Cube).數據立方體可以擴展到n維,成為超立方體.數據立方體的一個重要牲就是它們是靜態的,也就是必須在使用之前建立,不能即席查詢來建立.比如,銷售立方體包括產品、地區和時間維度,那就只能查詢這些維度。
為了加快訪問數據的速度,數據立方體通常被存儲在內存中,稱該內存為立方體緩存。MOLAP也采用客房/服務器體系結構,立方體緩存可以放置在服務器端或客戶端,或者同時放置在兩端。
在內存里獲取數據立方體可以提供更快的響應時間,但是它也使得多維數據庫比關系數據庫更耗費資源(內存、存儲器、處理器)。由於數據立方體預定義了一系列維,要加入新的維就必須重新建立整個立方體,這個建立過程很耗費時間,因此,不應該頻繁創建數據立方體。而且,為了避免訪問數據時間過長,也必須限制數據立方體的大小。此外,多維數據庫由於使用的數據存儲技術,也需要使用專門的多維查詢語言進行數據訪問。
總的來說,ROLAP的優點是靈活性強,集成性高,用戶可以動態定義計算和統計方式;缺點是分析處理的響應時間較長。MOLAP的優點是分析處理的響應時間較快,缺點是靈活性較差,限制了集成的彈性,處理細節數據的能力較差。
做個小推廣:程序員經常久坐,頸椎毛病比較多,特別推薦ventry頸椎保健枕