數倉範式建模和維度建模

一、數倉建模分爲傳統型的範式建模和新型維度建模: 

  1. 範式建模
    • Inmon提出的集線器的自上而下(EDW-DM)的數據倉庫架構。操作型或事務型系統的數據源,通過ETL抽取轉換和加載到數據倉庫的ODS層,然後通過ODS的數據建設原子數據的數據倉庫EDW,EDW不是多維格式的,不方便上層應用做數據分析,所以需要通過彙總建設成多維格式的數據集市層。優勢:易於維護,高度集成;劣勢:結構死板,部署週期較長
    • 範式建模應用在EDW層
    • 一個符合第三範式的關係必須具有以下三個條件:
      1. 每個屬性的值唯一,不具有多義性;
      2. 每個非主屬性必須完全依賴於整個主鍵,而非主鍵的一部分;
      3. 每個非主屬性不能依賴於其他關係中的屬性,因爲這樣的話,這種屬性應該歸到其他關係中去。
    • 但是由於EDW的數據是原子粒度的,數據量比較大,完全規範的3範式在數據的交互的時候效率比較低下,所以通常會根據實際情況在事實表上做一些冗餘,減少過多的數據交互。
  2. 維度建模
    • Kimball提出的總線式的自下而上(DM-DW)的數據倉庫架構。同樣的,操作型或事務型系統的數據源,通過ETL抽取轉換和加載到數據倉庫的ODS層,然後通過ODS的數據,利用維度建模方法建設一致維度的數據集市。通過一致性維度可以將數據集市聯繫在一起,由所有的數據集市組成數據倉庫。優勢:構建迅速,最快的看到投資回報率,敏捷靈活;劣勢:作爲企業資源不太好維護,結構複雜,數據集市集成困難。
    • 星型模型(推薦)和雪花模型

另外在複合式的數據倉庫架構中,操作型或事務型系統的數據源,通過ETL抽取轉換和加載到數據倉庫的ODS層,然後通過ODS的數據,利用範式建模方法,建設原子數據的數據倉庫EDW,然後基於EDW,利用維度建模方法建設數據集市。

 

二、3範式

1.範式(NF)
一張數據表的表結構所符合的某種設計標準的級別。

構造數據庫必須遵循一定的規則。在關係數據庫中,這種規則就是範式。範式是符合某一種級別的關係模式的集合。關係數據庫中的關係必須滿足一定的要求,即滿足不同的範式。目前關係數據庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、第四範式(4NF)、第五範式(5NF)和第六範式(6NF)。

第一範式(1NF)

1NF的定義爲:符合1NF的關係中的每個屬性都不可再分。

表一


表二

表一不符合第一範式的屬性,並且在第一範式要求下,每列不可以有重複的數值。

第二範式(2NF)

2NF的定義爲:消除了非主屬性對碼的部分函數依賴。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關係。爲實現區分通常需要爲表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二範式就是屬性完全依賴於主鍵。

主屬性的概念是可以由主屬性決定餘下其他屬性的值爲主屬性,剩下的其他就爲非主屬性。


這裏表的主屬性爲學號和課程,學號和課程可以決定剩下三個屬性的值,而剩下的三個屬性就爲非主屬性。

第三範式(3NF)
3NF在2NF的基礎之上,消除了非主屬性對於碼的傳遞函數依賴。


在關係模式R(U)中,設X,Y,Z是U的不同的屬性子集,如果X確定Y、Y確定Z,且有X不包含Y,Y不確定X,(X∪Y)∩Z=空集合,則稱Z傳遞函數依賴(transitive functional dependency) 於X。

第一個表知道了系名之後就可以知道宿舍樓,宿舍樓傳遞依賴於主屬性學號。

結論:
由此可見,符合3NF要求的數據庫設計,基本上解決了數據冗餘過大,插入異常,修改異常,刪除異常的問題。

數據倉庫中的3NF與OLTP系統中的3NF區別
。數據倉庫中的 3NF 與 OLTP 系統中的 3NF 的區別在於:
它是站在企業角度面向主題的抽象,而不是針對某個具體 業務流程的實體對象關係的抽象。
其具有以下幾個特點: ·

  1. 需要全面瞭解企業業務和數據。
  2. 實施週期非常長。
  3. 對建模人員的能力要求非常高。

寫一個第一範式表
Create CREATE TABLE test
(
id int not null
PRIMARY KEY,
name VARCHAR
(
50
)
,
age INT
);

反例
CREATE TABLE test
(
id int not null
PRIMARY KEY,
name-sex VARCHAR
(
50
)
,
age INT
);

 

三、維度建模

維度模型主要應用於OLAP系統中,因爲關係模型雖然冗餘少,但是在大規模數據,跨表分析統計查詢過程中,會造成多表關聯,這會大大降低執行效率。

所以把相關各種表整理成兩種:事實表和維度表兩種。所有維度表圍繞着事實表進行解釋。

 雪花模型、星型模型和星座模型

在維度建模的基礎上又分爲三種模型:星型模型、雪花模型、星座模型。

 


 

 

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