? ? 傳統的關系數據庫一般采用二維數表的形式來表示數據,一個維是行,另一個維是列,行和列的交叉處就是數據元素。關系數據的基礎是關系數據庫模型,通過標準的SQL語言來加以實現。
? ? 數據倉庫是多維數據庫,它擴展了關系數據庫模型,以星形架構為主要結構方式的,并在它的基礎上,擴展出理論雪花形架構和數據星座等方式,但不管是哪一種架構,維度表、事實表和事實表中的量度都是必不可少的組成要素。
- 維度:是多維數據集的結構性特性。它們是事實數據表中用來描述數據的分類的有組織層次結構(級別)。這些分類和級別分別描述了一些相似的成員集合,用戶將基于這些成員集合進行分析。
- 度量值:在多維數據集中,度量值是一組值,這些值基于多維數據集的事實數據表中的一列,而且通常為數字。此外,度量值是所分析的多維數據集的中心值。即,度量值是最終用戶瀏覽多維數據集時重點查看的數字數據(如銷售、毛利、成本)。所選擇的度量值取決于最終用戶所請求的信息類型。一些常見的度量值有sales、cost、expenditures和production count等
- 事實表:是數據聚合后依據某個維度生成的結果表。
1) 星型模型
星形模型是最常用的數據倉庫設計結構的實現模式,它使數據倉庫形成了一個集成系統,為最終用戶提供報表服務,為用戶提供分析服務對象。星形模式通過使用一個包含主題的事實表和多個包含事實的非正規化描述的維度表來支持各種決策查詢。星形模型可以采用關系型數據庫結構,模型的核心是事實表,圍繞事實表的是維度表。通過事實表將各種不同的維度表連接起來,各個維度表都連接到中央事實表。維度表中的對象通過事實表與另一維度表中的對象相關聯這樣就能建立各個維度表對象之間的聯系。每一個維度表通過一個主鍵與事實表進行連接。
事實表主要包含了描述特定商業事件的數據,即某些特定商業事件的度量值。一般情況下,事實表中的數據不允許修改,新的數據只是簡單地添加進事實表中,維度表主要包含了存儲在事實表中數據的特征數據。每一個維度表利用維度關鍵字通過事實表中的外鍵約束于事實表中的某一行,實現與事實表的關聯,這就要求事實表中的外鍵不能為空,這與一般數據庫中外鍵允許為空是不同的。這種結構使用戶能夠很容易地從維度表中的數據分析開始,獲得維度關鍵字,以便連接到中心的事實表,進行查詢,這樣就可以減少在事實表中掃描的數據量,以提高查詢性能。
使用星形模式主要有兩方面的原因:提高查詢的效率。采用星形模式設計的數據倉庫的優點是由于數據的組織已經過預處理,主要數據都在龐大的事實表中,所以只要掃描事實表就可以進行查詢,而不必把多個龐大的表聯接起來,查詢訪問效率較高,同時由于維表一般都很小,甚至可以放在高速緩存中,與事實表進行連接時其速度較快,便于用戶理解;對于非計算機專業的用戶而言,星形模式比較直觀,通過分析星形模式,很容易組合出各種查詢。
2) 雪花模型
雪花模型是對星形模型的擴展,每一個維度都可以向外連接多個詳細類別表。在這種模式中,維度表除了具有星形模型中維度表的功能外,還連接對事實表進行詳細描述的詳細類別表,詳細類別表通過對事實表在有關維上的詳細描述達到了縮小事實表和提高查詢效率的目的。
雪花模型對星形模型的維度表進一步標準化,對星形模型中的維度表進行了規范化處理。雪花模型的維度表中存儲了正規化的數據,這種結構通過把多個較小的標準化表(而不是星形模型中的大的非標準化表)聯合在一起來改善查詢性能。由于采取了標準化及維的低粒度,雪花模型提高了數據倉庫應用的靈活性。
這些連接需要花費相當多的時間。一般來說,一個雪花形圖表要比一個星形圖表效率低。
3) 星座模式
一個復雜的商業智能應用往往會在數據倉庫中存放多個事實表,這時就會出現多個事實表共享某一個或多個維表的情況,這就是事實星座,也稱為星系模式(galaxy schema)。
4) 數據集市
數據集市是在構建數據倉庫的時候經常用到的一個詞匯。如果說數據倉庫是企業范圍的,收集的是關于整個組織的主題,如顧客、商品、銷售、資產和人員等方面的信息,那么數據集市則是包含企業范圍數據的一個子集,例如只包含銷售主題的信息,這樣數據集市只對特定的用戶是有用的,其范圍限于選定的主題。
數據集市面向企業中的某個部門(或某個主題)是從數據倉庫中劃分出來的,這種劃分可以是邏輯上的,也可以是物理上的。
數據倉庫中存放了企業的整體信息,而數據集市只存放了某個主題需要的信息,其目的是減少數據處理量,使信息的利用更加快捷和靈活。
數據倉庫由于是企業范圍的,能對多個相關的主題建模,所以在設計其數據構成時一般采用星系模式。