數據倉庫 之 數據建模理論


數據倉庫 之 數據建模理論

 

數據倉庫建模理論就像大廈的地基,只有把建模理論理解清楚,在數據建模時才能有理有據。作為一個數據倉庫開發人員,數據建模理論是我們必須要掌握和理解的一部分,只要充分理解了數據建模理論知識,在建設數據倉庫時我們就可輕松上手。

數據建模理論

數據倉庫的兩大模式:Kimball維度建模 和 Inmon范式建模

一、Inmon范式建模

1.1、什么是Inmon范式模型?

數據倉庫是商業智能的一部分,一家企業或公司只有一個數據倉庫,數據集市的信息皆來源數據倉庫。現在的數據庫大多數都是依據3FN范式來建立的,而依據范式的思想來進行數據倉庫建模,就是范式建模。數據倉庫中的數據信息必須符合第三范式。

范式是關系型數據庫的基本概念。是指符合某些條件、符合某些規則的關系集合。范式是分級的,每向上一級,條件和規則更加嚴格,每一級是下一級的子集。

 

范式最主要的目的是消除冗余,每一份信息必須存放一次,也只能存儲一次。數據的冗余不僅僅會造成存儲資源的浪費,而且可能會引發數據的更新異常。

二、Kimball維度建模

2.1、什么是Kimball維度建模?

數據倉庫是公司內部所有數據集市的集合,信息總是被存儲在多維模型中。是面向數據集市、數據主題的,一般采用星型模型建模。依據星型模型,構建事實表和維度表,建立數據倉庫模型的過程,就是維度建模。Kimball的核心思想就是星型模型和維度建模。

2.2、什么是星型模型?

所有的表直接與事實表關聯,整個圖解就像星星一樣,該模型稱為星型模型。星型模型是一種非正規化的結構,是反范式的。因為多維數據集的每一個維度都直接與事實表相連接,不存在漸變維度,所以數據有一定的冗余,

 

 

 

2.3、事實表和維度表

事實表描述業務過程的度量、以可加數據為主題,每一行代表一個可以觀察的實體或事件。主要的是發生了業務過程,如賣出一件商品,用戶購買一件商品,這都觸發了業務過程。賣出的商品有商品屬性、有賣出的門店、有出貨記錄,有購物者信息等等。

維度表描述事實所處的環境、面向分析,代表針對事實的一種分類。直白點,維度表就是用來描述事實的。還以賣出商品為例,賣出的商品,商品有屬性,包括顏色、尺碼、風格、季節等多種屬性,這些屬性組合在一起就構成了描述商品的維度表。

 

 

對維度表再建立更細的維度,稱為支架表。支架表是維度表的維度表,支架表是去冗余的產物,在星型模型中,對冗余很寬容。所以支架並不是必須的,並且應該盡量少用。合適的方法是:將支架表合並到和事實表直接連接的維度表。

2.2、什么是雪花模型?

當有維表沒有直接連接到事實表上,而是通過連接其他維表間接連接到事實表,其圖解就像多個雪花連接在一起,故稱雪花模型。雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,把原有的維表進一步拓展,形成更多細分層次。

處理雪花模型的方式,和支架表一樣,理想的模型是只存在和事實表直接相連接的維度表。在數據倉庫中,數據冗余不重要,連接性能更重要!我們通過犧牲空間來換取時間,這些數倉很常用的手段。

 

 

雪花模型是一種規范的數據建模模型,規范化的目的是去冗余,在節省存儲的同時減少重復更新。但是對於數據倉庫來說,這兩者都不重要,數據倉庫本來就不更新。Kimball模式的數據倉庫的查詢性能優先!星型模型,是反范式的

總結:數據倉庫建模過程是一個很復雜的過程,一方面不僅要根據自家業務處理建模需要,一方面還要深入了解建模的理論基礎。

 

轉載於:http://www.360doc.com/content/21/0417/18/20885555_972805729.shtml

 


免責聲明!

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



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