目錄
- 前言
- 使用情景
- 如何來范式建模
- 使用的效果
- 小結
前言
上篇講述了一些抽象的概念模型和邏輯模型設計的東西,接下來就該講述如何來一步一步的利用Inmon和Kimball數據倉庫的理論來建設數據倉庫的模型,主要分幾塊吧,一個是范式建模,然后是維度建模(分幾篇總結),最后是因地制宜,按照自己的平台來考慮如何綜合的考慮Inmon和Kimball數據倉庫的理論的應用。
Inmon最初的建模理論是通過構建一個符合三范式的集中式的數據中心DW層,此層次的表一般不對BI和應用開放,而是基於DW的數據構建數據集市DM層來對外服務。DM層的數據一般也采用范式建模,不過隨后融入了維度建模的思想,把DM層建設成星型模型。但是並未提出使用一致性維度。
本篇將會講述范式建模部分。當然3范式的概念也不再贅述,度娘全都有。
使用情景
提起數據倉庫建模,誰都會知道Inmon的以范式建模為理論基礎的集線器式建模,以及Kimball的以維度建模為理論基礎的總線式建模,關於這兩者這更好的爭論就不在這里陳述了。實際上,隨着數據倉庫的發展,現在兩種模型都在原來的基礎上再往同一個方向發展,最終大家都比較相似了,甚至出現的復合式的數據倉庫理論,將這兩種架構整合在了一起,充分利用了兩者的優點。
我個人的看法是,范式建模,有着維護數據的一致性,穩定性,可擴展性,減少冗余,同時也有着規范化但是不利於分析理解數據等的特點,這樣子完全可以把范式建模利用在ODS和DW層之間的中間層數據模型,因為這一層數據承載着DW層的數據,但又不會對用戶開放,放式建模完美的匹配上了。
如何來范式建模
范式建模采用的是3范式,而大多數的線上業務數據庫也遵循着3范式的規范,所以范式建模是推薦貼源(ODS)的,甚至簡單的業務情況下不需要中間層,直接使用ODS層即可。
當然對於如下情況我們還是建議通過范式建模來重新組織數據
- 業務數據庫的表沒有遵循3范式
- 有復雜的字段(比如json字段)需要解析
- 業務維度比較復雜,很難直接關聯取出所需的數據,比如業務X營銷體系=n
使用的效果
通過范式建模,可以
- 保證數據的一致性(因為采用完全不冗余的方式,避免了數據的不一致,比如出現 廣東 廈門的這樣不一致的記錄)
- 解耦方便維護,也提高了運行效率
- 針對復雜字段的解析和復雜業務的分解,有利於DW層的直接使用
小結
范式建模不僅在線上業務數據庫中展現了強勁的風采,也在數據倉庫側發揮着重要的作用。范式建模的難度在於如何抽象業務,來進行DW建設前夕的准備工作。建好了這一層的數據模型,對於DW層數據的建設,將是大大的提高了效率和大大降低了復雜性。
