八大規則精通程序空間建模
程序空間建模的八大規則將向你呈現的是一些自然規律,那么我們如何掌握和運用好呢?首先我們來看他們各自的特點:
程序空間建模規則一:向空間結構中加載詳細原數據
空間模型中應該加入原數據的細節以支持不可預測的過濾和商業用戶查詢時的分組要求。用戶一般不需要一次看到單個記錄,但是你不能預測他們希望顯示的方式然后顯示出細節信息。如果只能獲取摘要數據,那么你已經對數據的使用模式作出了推測,而這些推測將在永固想深挖細節的時候導致他們碰壁。當然,原數據可以被簡要的空間模型來補充,這些模型提供了匯總數據中共同查詢的優勢,但是商業用戶不能僅僅依賴于這些簡要數據,他們還需要數據細節來回答不斷變化的問題。
程序空間建模規則二:機構化空間模型和業務流程
業務流程是你所在的機構所執行的活動;他們代表了測量活動,如采取命令。業務流程通常會捕獲(如何處理SSIS 2008中的變更數據捕獲)或生成與每個事件相關的獨特數據。每個業務流程都由一個單獨的原事實表格代表。除了單一處理事實表格,合并的事實表格有時候也會從多流程到某一事實表格的過程中產生。同樣,合并的事實表格是對詳細單一進程事實表格的補充,而不是要取代他們。
程序空間建模規則三:確保每個事實表格都具備相關數據維度表
規則二中介紹的測量事件通常擁有一個與其相關的變量日期標記。每個事實表格都至少應該具備一個與日期維度表相關的外關鍵字(三個關鍵字實現JAVA類的隱藏),其粒度是單獨的一天,具有日歷屬性和測量事件日期的非標準特性,如財政月和企業假日指示等。有時候多個日期外關鍵字會在事實表中有所表現。
程序空間建模規則四:解決事實表中多對多的關系
由于事實表保存了業務進程活動的結果,那么其外關鍵字之間就固然會存在多對多的關系,如多個產品在若干日的時間里在多個商店出售。這些外關鍵字的域不應該為空值。有時候維度可以為單個測量事件獲取多個值,如與衛生保健相關的多項診斷或是銀行賬號的多個用戶。在這些舉例中,要在事實表中直接解決有多值層面是不合理的,因為這樣會違背測量事件的自然粒度。因此,我們要使用多對多,將雙鍵橋表和事實表結合使用。
程序空間建模規則五:解決維度表中多對一的關系
屬性之間層次化,固定深度的多對一關系通常是非正規化的維度表。如果你已經花了大量時間用于設計交易處理系統的實體關系模型,你就需要抵制本能的傾向,然后將多對一的關系轉為更小的層級,層級非規格化是空間建模中的一個名詞。
在單個維度表中存在多對一關系是常見現象。一對一的關系,如與某產品代碼相關的產品描述,也可以在維度表中進行處理。偶爾,多對一關系會在事實表中解決,如當詳細維度表中有上百萬的行數時,由此而產生的屬性會頻繁發生改變。但是,使用事實表來解決多對一的關系應該有節制的使用。
程序空間建模規則六:在維度表中保存報告標簽并過濾域值
代碼,更重要的是用于標記和查詢過濾的相關解碼和描述符應該在維度表中被捕捉到。要避免在事實表中保存隱蔽代碼域或冗繁的描述域,同樣,不要只是在維度表中保存代碼并假設用戶不需要描述型解碼或這些解碼應該在BI應用中得到處理。如果是一個 行/列 標簽或下拉菜單過濾器,那么它應該作為維度屬性來處理。
雖然,我們在規則五中已經講過事實表的外關鍵字不應該為空值,但是我們也建議大家可以用“NA”(not applicable)或另一默認值來替代“Null”以避免在維度表的屬性域中出現空值。
程序空間建模規則七:弄清楚維度表使用的是代理鍵
按順序分配的替代鍵帶來了一系列的好處,包括更小的鍵,這意味著更小的事實表,更小的指示以及改進的性能。如果 你正追蹤隨著每個配置文件的更改而變化的維度屬性,那么你肯定需要代理鍵。即便你的商業用戶沒有在最初發現追蹤屬性變更的價值,代理鍵的使用會使下游策略的改變更寬松。代理鍵還可以讓你把多個操作鍵映射到公用參數文件中,再加上從意料之外的操作中進行緩沖等。
程序空間建模規則八:創建認可層級以便在企業中整合數據
認可層級(也稱為通用,標準或參照層級)對于企業數據庫很有必要。只需在ETL系統中管理一次,就可以在多個事實表中重復使用。認可層級在維度模型方面與描述型屬性一致,可以支持多個業務流程中的數據整合。企業數據庫總線矩陣(EDWBM)是代表了該企業核心業務路程和相關維度的關鍵架構藍圖。重復使用認可層級最終可以消除冗繁的設計和開發過程,從而縮短產品上市時間。但是認可層級要求在數據管理和治理上給予承諾和投資。
程序空間建模的八大規則向你介紹完了,是不是對程序空間建模有更深入的理解呢?趕緊動手實踐吧。
【編輯推薦】