維度表(dimension)存放着一些維度屬性,例如時間維度:年月日時;地域維度:省份,城市;年齡維度:老年,中年,青年;職稱維度:高,中,低。它定義了可以從哪些角度分析事實表。
事實表(fact)存放着一些業務產生的數據,例如:商品訂購產生的訂單信息,銀行的流水信息,erp系統的辦公信息。但它不僅存放着上述事實信息,而且存放在事實信息與維度信息關聯的鍵值,例如訂單信息里面有日期字段可以和時間維度關聯,可以通過銀行中的個稅流水與收入維度關聯量化各個收入群體,erp流水中的員工號可以同職稱維度表關聯統計公司運行狀態。
其實,在設計事實表與維度表的關聯關系時,要引入兩個模型結構:星型表(star)和雪花表(snow)。
顧名思義,星型表模型是事實表與每個維度表分別關聯,事實表位於中央,維度表圍繞事實表周圍。這種模型結構市一中反范式的設計方式。優點是設計簡單,減少了關聯事實表和維度表的關聯層級,查詢效率會高一些,缺點是數據的冗余。例如:事實表student(學號,年齡,姓名,國家,省份,地市,專業。。。),維度表:country(國家編碼,國家名稱),province(省份編碼,省份名稱),city(國家編碼,省份編碼,城市編碼,城市名稱);則在存儲來至同一省份不同地市的學生時,國家和省份就重復存放了。
雪花表模型則是一種規范的范式結構,它的數據組織方式是消除冗余的,能有效減少數據量;優點是減少了冗余並且在關聯查詢中不容易出現數據重復計算的情況,因為它引入了數據完整性,缺點是維護復雜,增加了關聯層級,執行效率較低。例如:事實表student(學號,年齡,姓名,地域,專業。。。),維度表:area(地域編碼,國家編碼,省份編碼,城市編碼)country(國家編碼,國家名稱),province(省份編碼,省份名稱),city(國家編碼,省份編碼,城市編碼,城市名稱)。
接着,有上述星型表和雪花表組成的數據集合就是一個數據集市(datamart),其面向於部門級應用,存放少量的歷史數據,數據來源於數據倉庫。
在數據集市的底層則為數據倉庫(data warehouse),它的數據來源於ODS,存放着大量歷史數據,它是ods數據的視圖反映。數據存儲符合第三范式,面向企業級應用。
另外,ODS(Operational Data Store):是業務產生的數據,是不斷變化的數據,例如業務產生的流水數據。