數據倉庫技術(Data Warehouse Technologien) 第三章節 多維數據模型(3)

32. 雪花模式 (Snowflake Schema)

  1. 分類映射:每個分類級別一張表(比如,商品,產品組,等)
  2. 維度表包含:
    • 分類節點的ID
    • 描述的屬性(比如:市場,生產者,名稱/標誌)
    • 直屬的更高分類層次的外鍵
  3. 事實表包括(除了變量):
    • 每個最低分類級別的外鍵
    • 外鍵構成事實表的複合主鍵

33. 星形模式 (Star Schema)

  1. 雪花模式是範化的:避免更新異常 → 3.NF
    • 但是,需要Join更多的表格
  2. 星形模式
    • 對屬於一個維度的表格非規範化 → 1.NF
    • 對於一個維度剛好一個維度表
    • 維度表中的冗餘可以較快查詢處理
    • 比如:商品,產品,產品組等作爲產品表的列

34. 星形模式 形式

  1. n維多維度模式
    • 維度表\small D^{1}, ... , D^{n}的形式\small D^{i}(Dim_{1}\_Key,A_{i,1}, ... , A_{i,k_{i}})
    • 帶m個事實的事實表\small F(Dim_{1}\_Key, ... , Dim_{n}\_Key,f_{1}, ... , f_{m})
  2. 事實表的組合主鍵的每個部分都是對應維度主鍵屬性外鍵
  3. Oracle中CREATE DIMENSION 語句
    • 在SQL中外鍵約束是可表達的
    • 但是:維度內的屬性之間的函數關係無法詳細說明
    • Oracle拓展:CREATE DIMENSION
      • 保證”信息性“
      • DBS不會檢測正確性
      • 對物化視圖使用查詢重寫
  4. 關鍵字
    • LEVEL
      • 定義分類級別
    • HIERARCHZY
      • 確定分類級別的依賴性
    • ATTRIBUTE ... DETERMINTS
      • 定義分類屬性和維度屬性之間的依賴性
  5. CREATE DIMENSION示例
CREATE DIMENSION ProduktDimension
    LEVEL Artikel IS (Produkt.P_ID)
    LEVEL Produktgruppe IS (Produkt.P_PGruppe_ID)
    LEVEL Produktkategorie IS
        (Produkt.P_Produktkategorie)
HIERARCHY ProduktHierarchie (
    Artikel CHILD OF
    Produktgruppe CHILD OF
    Produktkategorie)
ATTRIBUTE Artikel DETERMINES (P_Bezeichnung,
    P_Verkaufspreis, P_Einkaufspreis,
    P_Rabatt, P_Steuern)
ATTRIBUTE Produktgruppe DETERMINES
    (P_Produktgruppe)

35. Snowflake with CREATE DIMENSION

CREATE DIMENSION ProduktDimension
    LEVEL Artikel IS (Produkt.P_ID)
    LEVEL Produktgruppe IS (Produktgruppe.PG_ID)
HIERARCHY ProduktHierarchie (
    Artikel CHILD OF Produktgruppe)
JOIN KEY (Produkt.P_PGruppe_ID)
    REFERENCES Produktgruppe

36. Star with CREATE DIMENSION

CREATE DIMENSION ZeitDimension
    LEVEL Tag IS (Zeit.Z_Tag_ID)
    LEVEL Monat IS (Zeit.Z_Monat_ID)
    LEVEL Jahr IS (Zeit.Z_Jahr_ID)
HIERARCHY ZeitHierarchie (
    Tag CHILD OF Monat CHILD OF Jahr)
ATTRIBUTE Tag DETERMINES (Z_Tag)
ATTRIBUTE Monat DETERMINES (Z_Monat)
ATTRIBUTE Jahr DETERMINES (Z_Jahr)

37. 對比星形模式和雪花模式

  1. 數據倉庫應用的特性
    • 在查詢更高粒度等級上典型的限制(Join操作)
    • 相較於事實表,維度表少量的數據量
    • 分類極少更改(更新異常的危險)
  2. 星形模式的優點
    • 簡單的結構(簡化查詢公式/語句)
    • 分類層次結構的簡單和靈活的表達(維度表的列)
    • 一個維度內的有效的查詢處理(沒有Join操作的必要性)

38. 假設考慮成本

  1. n維(\small D^{n}),每第K分類級別加上Top
  2. 每個分類節點有三個孩子
    • 級別 \small i=K: 1= 3^{0} 個節點(Top)
    • 級別 \small i=K-1: 3= 3^{1} 個節點
    • 級別 \small i=K-2: 9= 3^{2} 個節點
    • ...
    • 級別 i = 0 :最高的粒度,\small 3^{K}個節點
    • \tiny N_{D}=\sum_{i=0...K}每個維度的節點
      • N_{D}=\sum_{i=0...K} 3^{i}
  3. M個事實,在維度中均勻分佈
  4. 屬性:b Bytes: 節點只有ID: m 事實屬性

39. 完整的分類層次結構

  • 對於每個節點都有一樣多的事實

40. 星形模式與雪花模式查詢開銷的對比

  • 雪花模式的存儲空間:(((n+m)*M)+n*N_{D})*b
    •  n 事實表中外鍵的數量
    •  m 事實屬性的數量
    •  n*N_{D} 每個分類節點一個元組
  • 星形模式的存儲空間:(((n+m)*M)+n*3^{K}*K)*b
    • n*3^{K} 每個分類節點Level 0 一個元組
    • K 每個分類級別一個屬性
(圖片內容來自源PPT文件, 版權歸原作者所有)

41. 星形模式和雪花模式的查詢

  • 查詢:對於產品組”紅酒“每個城市和年份下的銷售情況
  • 雪花模式
    • SELECT S_Name, YEAR(Z_Datum), SUM(V_Anzahl)
      FROM Verkauf, Filiale, Stadt, Produkt, Produktgruppe, Zeit
      WHERE V_Produkt_ID = P_ID AND
          P_PGruppe_ID = PG_ID AND
          V_Filial_ID = F_ID AND
          F_Stadt_ID = S_ID AND
          V_Zeit_ID = Z_ID AND
          PG_Bezeichnung = ’Wein’
      GROUP BY S_Name, YEAR(Z_Datum)

       

    • Joins的數量: 5(隨着聚合路徑的數量線性增長)
  • 星形模式
    • SELECT O_Stadt, YEAR(Z_Datum), SUM(V_Anzahl)
      FROM Verkauf, Ort, Produkt, Zeit
      WHERE V_Produkt_ID = P_ID AND
          V_Zeit_ID = Z_ID AND
          V_Ort_ID = O_ID AND
          P_Produktgruppe = ’Wein’
      GROUP BY O_Stadt, YEAR(Z_Datum)

       

    • Joins的數量:3(與聚和路徑的長度無關)

42. 混合形式

  • 單個維度的構成類似於雪花模式或者星形模式
  • 選擇標準:
    1. 維度的更改頻率
      • 通過範式化減少維護的工作量(雪花模式)
    2. 一個維度中分類級別的數量
      • 越多分類級別 → 星形模式中越多的冗餘
    3. 維度元素的數量
      • 通過對處於較低分類級別的維度上的大量元素範式化節省資源
    4. 聚合物化
      • 通過對一個分類級別上的物化聚合進行範式化提高執行效率

43. 銀河模式(Galaxie-Schema)

  • 星形-和雪花模式
    • 一個事實表
    • 只可能在同樣的維度上有多個特徵值
  • 銀河模式
    • 多個事實表
    • 部分關聯到相同的維度表
    • 也:多事實表模式,多立方體,超級立方體
  • 銀河模式:模型
(圖片內容來自源PPT文件, 版權歸原作者所有)

示例:

(圖片內容來自源PPT文件, 版權歸原作者所有)

44. 分類層次結構的介紹

  • 水平:將分類層次結構的級別建模爲非範式化維度表的列
    • 優點:
      • 不含有Join的較高粒度的約束
    • 缺點
      • 查詢某些級別時消除重複(比如:一個類別之內的產品組)
      • 添加新級別的時候更改模式
Produkt_ID Artikel Produktgruppe Produktkategorie
1234 IU Hy Ko
1235 Pu Hy Ko
2345 Ro Re Ha
  • 垂直(遞歸):範式化帶屬性的維度表
    • Dimensions_ID :事實表的鍵
    • Eltern_ID:下一更高級別Dimensions_ID的屬性值
    • 優點:
      • 輕鬆的更改分類模式
      • 容易處理預計算聚合
    • 缺點:
      • 爲單個級別查詢Self-Join(比如:一個類別之內的產品組)
Dimensions_ID Eltern_ID
IU Hy
Hy Ko
Pu Hy
  • 合併:關聯兩種策略
    • 使用列代表分類級別(但只適用一般性關係)
    • 存儲所有較高級別的節點作爲元組
    • 附加一類屬性”Stufe“(級別) → 描述特定的分類級別
Dimensions_ID Stufe1_ID Stufe2_ID Stufe
IU Hy Ko 0
Pu Hy Ko 0
Hy Ko Null 1
Ko Null Null 2

45.避免語義丟失

  • 關係映射中的語義丟失
    • 特徵值和維度之間的區別(事實表的屬性)
    • 維度表的屬性(層次結構的描述,搭建)
    • 維度的搭建(Drill-路徑)
  • 方法:
    • 爲多維度應用的元數據拓展系統目錄
    • 示例:Oracle中的CREATE DIMENSION, HIERARCHY 

46. 關係實現的問題

  1. 將多維查詢轉換爲關係表達是有必要的 → 複雜查詢
  2. 使用複雜的查詢工具是有必要的(OLAP-工具)
  3. 語義丟失
  4. 因此:直接多維存儲 

47. 緩慢改變維度

  1. 歷史化:屬性表達,關係和實體隨着時間的改變
  2. 維度中的結構改變
  3. 維度中的模式改變
  4. 對分析的影響
(圖片內容來自源PPT文件, 版權歸原作者所有)

48. 分析要求

  1. 根據現有結構:as is
  2. 根據定義的歷史結構:as of
  3. 根據歷史事實:as posted
  4. 可對比結果
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • 右側事實表,左側產品維度在2010和2011的產品和其對應的產品組
  • 報表要求(根據事實表和維度表獲取的下表)
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • 特別注意:”對比結果“的計算方法是,統計維度表中沒有隨着時間而改變的項目。

49. 實現

  • 將歷史數據資料調整爲新結構的小型數據集,但是舊結構不再可用
  • 歷史數據庫的分離存儲附加在新結構上,爲用戶提供大量數據和複雜性,但是舊結構可以被檢索
  • 建立具有所有結構的並行層次結構,維度結構複雜,可能進行任意報告
  • 有效性標記任何可檢索到的結構,但是會出現性能問題

50. 場景

  • ”As is“場景
    • 容易實現
    • 不存在歷史
    • 只提供給”as is“
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • ”as is“ & quasi ”as of“場景
    • 更高的存儲需求
    • 沒有時間順序的歷史
    • 對應於並行層次結構
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • ”as is“ & ”as of“場景
    • 較高存儲需求
    • 沒有時間順序的歷史
    • 必要的人工維度鍵
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • ”as is“ & ”as of“場景:時間戳
    • 更高的存儲需求
    • 帶時間順序的歷史
    • 必要的人工維度鍵(或者複合鍵)
    • 事實聯結Getraenk_ID
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • ”as posted“場景
    • 更高的存儲需求
    • 事務時間點的歷史
    • 必要的人工維度鍵(或者複合鍵)
    • 事實聯結G_ID_alt
(圖片內容來自源PPT文件, 版權歸原作者所有)
  • ”as is“ & ”as of“ & ”as posted“場景: 快照
    • 維度表和事實表更高的存儲需求
    • 當前分配的標誌
    • 人工加載時間點數據
    • 僅僅爲小維度推薦值
(圖片內容來自源PPT文件, 版權歸原作者所有)

總結

  • 多維度數據模型
    • 立方體,特徵值,維度
    • OLAP操作
  • 概念建模技術
    • 沒有類似ER模型的標準
    • 多維概念的專用結構
  • 多維模型的實現
    • 關係:星形模式和雪花模式
    • 混合模式
    • 避免語義丟失
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章