數據倉庫中常見的模型有:范式建模,雪花模型,星型建模,事實星座模型.
星型模型
星型模型是數據集市維度建模中推薦的建模方法。星型模型是以事實表為中心,所有的維度表直接連接在事實表上,像星星一樣。星型模型的特點是數據組織直觀,執行效率高。因為在數據集市的建設過程中,數據經過了預處理,比如按照維度進行了匯總,排序等等,數據量減少,執行的效率就比較高。
雪花模型
雪花模型也是維度建模中的一種選擇。雪花模型的維度表可以擁有其他維度表的,雖然這種模型相比星型模型更規范一些,但是由於這種模型不太容易理解,維護成本比較高,而且性能方面需要關聯多層維表,性能也比星型模型要低。所以一般不是很常用。
范式建模
第三范式建模是在數據庫建模中使用的建模方法,特點是體系化,擴展性好,避免冗余,避免更新異常。所以,在數據倉庫的EDW層建模中,我們也提倡使用第三范式建模。但是數據倉庫的集成和反映歷史變化的特征意味着數據量非常之大,表和表之間的關聯效率比較低,所以有些時候完全規范的范式建模並不是最好的選擇,通常我們會選擇非規范化處理,增加一些冗余的字段來避免表之間關聯的次數,這樣會節約大量的時間。
雪花模型是介於星型模型和范式建模之間的。個人理解,范式建模和雪花模型的區別在於雪花模型在維度上也是有冗余的。例如雪花模型例圖的地域維度不符合第三范式,因為地域維度中存在傳遞依賴,城市-省級-國家-地域。
星座模型
星座模型是星型模型延伸而來,星型模型是基於一張事實表的,而星座模型是基於多張事實表的,而且共享維度信息。 通過構建一致性維度,來建設星座模型,也是很好的選擇。比如同一主題的細節表和匯總表共享維度,不同主題的事實表,可以通過在維度上互相補充來生成可以共享的維度。