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