根據事實表與維度表的關係,可將常見的模型分爲星型模型和雪花型模型。數據庫
當全部的維度表直接鏈接到事實表上時,整個圖就像星星同樣,故得名星型模型,以下圖:架構
星型架構是一種非正規化的結構,多維數據集的每個緯度都直接與事實表相鏈接,不存在漸變緯度,因此會產生數據冗餘。如在地域維度表中,存在國家 A 省 B 的城市 city1 以及國家 A 省 B 的城市 city2 兩條記錄,那麼國家 A 和省 B 的信息分別存儲了兩次,即存在冗餘。性能
當有一個或多個維度表沒有直接鏈接到事實表上,而是經過其餘維度錶鏈接到事實表上,其圖解就像多個雪花鏈接到一塊兒,故得名雪花型模型。雪花型模型是對星型模型的擴展,它對星型模型的維度表進一步層次化,原有的維度表可能被擴展爲小的事實表,造成一些局部的層次區域,這些被分解的表都被鏈接到主維度表而不是事實表,以下圖:spa
如圖中,又將地域維度表分爲國家維,省份維,城市維。其優勢是:經過最大限度的減小數據存儲量以及聯合較小的維度表來改善查詢性能。雪花型模型去除了數據冗餘。設計
沒有對比就沒有傷害:ci
星型模型由於數據的冗餘因此不少統計查詢不須要作外部的鏈接,所以通常狀況下效率會比雪花型模型較高,星型結構不用考慮不少正規化的因素,設計與實現都比較簡單。雪花型模型因爲去除了冗餘,有些統計就須要經過表的聯接才能產生,因此效率不必定有星型模型高。正規化也是一種比較複雜的過程,相應的數據庫結構設計、數據的 ETL、以及後期的維護都要複雜一些。所以在冗餘能夠接受的前提下,實際運用中星型模型使用更多,也更有效率。it