




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)倉庫模型建設規(guī)范1 .概述數(shù)據(jù)倉庫不同于日常的信息系統(tǒng)開發(fā),除了遵循其他系統(tǒng)開發(fā)的需求、分析、設計、測試等通常的軟件生命周期之外,它還涉及到企業(yè)信息數(shù)據(jù)的集成,大容量數(shù)據(jù)的階段處理和分層存儲,數(shù)據(jù)倉庫的模式選擇等等,因此數(shù)據(jù)倉庫的模型設計異常重要,這也是關系到數(shù)據(jù)倉庫項目成敗的關鍵。物理模型就像大廈的基礎架構,就是通用的業(yè)界標準,無論是一座摩天大廈也好,還是茅草房也好,在架構師的眼里,他只是一所建筑,地基一層層建筑一封頂,這樣的工序一樣也不能少,關系到住戶的安全,房屋的建筑質量也必須得以保證,唯一的區(qū)別是建筑的材料,地基是采用鋼筋水泥還是石頭,墻壁采用木質還是鋼筋水泥或是磚頭;當然材料和建
2、筑細節(jié)還是會有區(qū)別的,視用戶給出的成本而定;還有不可忽視的一點是,數(shù)據(jù)倉庫的數(shù)據(jù)從幾百GE©J幾十TB不等,即使支撐這些數(shù)據(jù)的RDBM優(yōu)論有多么強大,仍不可避免地要考慮數(shù)據(jù)庫的物理設計。數(shù)據(jù)倉庫建模的設計目標是模型的穩(wěn)定性、自適應性和可擴展性。為了做到這一點,必須堅持建模的相對獨立性、業(yè)界先進性原則。2 .數(shù)聚模型架構在數(shù)聚項目實施過程,我們一般將數(shù)據(jù)倉庫系統(tǒng)的數(shù)據(jù)劃分為如下圖所示幾個層次。L1樣話層O客戶產(chǎn)拈費用財翳元數(shù)強管理瀏艮莒芨ETL管理數(shù)據(jù)類型抽取方式轉換方式加載方式表類型變化tew加載過程1 .有時間戳2 .數(shù)據(jù)量巨大3 .交易事務表4 .周期數(shù)據(jù)處理增量變化抽取落地TM
3、P區(qū)清洗轉換標識增刪改落地DCI區(qū)增量變化加載維表新增新增代理鍵。插入記錄修改如果須保留歷史,新增代理鍵。插入記錄如果無須保留歷史,根據(jù)代理鍵修改記錄。刪除若為邏輯刪除,可等同修改,或在抽取時過濾。若為物理刪除,則增量抽取無法判斷被刪除。事實表新增根據(jù)流水號刪除目標表數(shù)據(jù),查找代理鍵,然后再加載增量變化數(shù)據(jù).修改刪除一般來說,事實表數(shù)據(jù)不物理刪除,如果物理刪除,增量抽取方式無法判斷出來。1 .無時間戳2 .數(shù)據(jù)量小的表3 .代碼表4 .主數(shù)據(jù)表5 .初始數(shù)據(jù)加載全量抽取落地TMP區(qū)清洗轉換落地DCI區(qū)全量加載維表只適合系統(tǒng)初始化數(shù)據(jù)加載,不區(qū)分增刪改事實表查找對應代理鍵,全部加載,適合數(shù)據(jù)量小
4、的場合,ETL簡單快捷。清洗轉換獲取增量標識增刪改添加時間戳落地DCI區(qū)增量變化加載維表新增新增代理鍵。插入記錄修改如果須保留歷史,新增代理鍵。插入記錄如果無須保留歷史,根據(jù)代理鍵修改記錄刪除維表不處理被刪除的維度記錄。事實表新增根據(jù)事務流水號,刪除目標表。查找代理鍵,直接插入目標表。修改刪除根據(jù)事務流水號,刪除目標表.可以處理物理刪除現(xiàn)象。2.3. 準備層L02.3.1. 主要數(shù)據(jù)結構臨時表:從數(shù)據(jù)源抽取,直接落地到臨時表。臨時表總是保存這次抽取的數(shù)據(jù),不保留歷史數(shù)據(jù)。也就是說,如果是全量抽取的話,就是源系統(tǒng)整個表的數(shù)據(jù),如果是增量抽取的話,就是自從上次修改后的數(shù)據(jù)。接口表:從臨時表,經(jīng)過清
5、洗、轉換到達接口表。接口表保存歷史數(shù)據(jù),也就是說,如果是全量抽取的話,就是源系統(tǒng)整個表的數(shù)據(jù),如果是增量抽取的話。接口表里面也是源系統(tǒng)整個表的數(shù)據(jù)。轉換表:為了進行清洗和轉換建立的中間輔助表。2.3.2. 命名規(guī)范臨時表:L0_TMP源系統(tǒng)_具體業(yè)務或L0_TMP_k務主題_具體業(yè)務(對單一源)舉低J:L0_TMP_POS_SALESORDER接口表:L0DCI業(yè)務主題具體業(yè)務表舉低J:L0_DCI_SALES_SALESORDER轉換表:L0_MAP具體業(yè)務表舉低J:L0_MAP_SALES2.3.3. 開發(fā)工作開發(fā)數(shù)據(jù)抽取接口,落地TMPK開發(fā)數(shù)據(jù)清洗轉換程序,落地DCI區(qū),多源系統(tǒng)進行合
6、并開發(fā)數(shù)據(jù)裝載程序,裝載到L1層2.4. 原子層L12.4.1. 主要數(shù)據(jù)結構維度表:整個數(shù)據(jù)倉庫一致的維度代碼表:維度屬性,非維度代碼等。原子事實表:根據(jù)業(yè)務主題,形成原子事實表匯總事實表:根據(jù)分析主題,業(yè)務主題形成合并或匯總的事實表。2.4.2. 命名規(guī)范維度表:DW_DIM維度。舉例:組織維DW_DIM_ORG日期維DW_DIM_DATE.代碼表:DW_CODEMo舉例:性別DW_CODE_GENDER原子事實表:L1DWFACT_析主題具體分析匯總事實表:L1DMFACT_析主題具體分析2.4.3. 開發(fā)工作維護聚集。衍生計算,二次指標計算。2.5. 應用層L22.5.1. 主要數(shù)據(jù)結
7、構寬表:根據(jù)需求,從L1層抽取成寬表,表現(xiàn)形式為固定報表,儀表盤等等。立方體:根據(jù)分析主題,從L1生成OLAPl方體。視圖:根據(jù)需要,從L1,L0層產(chǎn)生L2層的視圖。前端應用,不僅僅可以利用L2層的數(shù)據(jù)結構,還可以利用L1層的數(shù)據(jù)結構。對于源系統(tǒng),還可以利用L0層的DCI區(qū)數(shù)據(jù),可以做詳單和明細查詢。2.5.2. 命名規(guī)范寬表:L2_FACT_【應用主題】_【分析主題】_應用。舉快J:L2_FACT_FIN_ZCFZB財務->資產(chǎn)負債表)立方體:根據(jù)分析主題,從L1生成OLAP方體。視圖:根據(jù)需要,從L1,L0層產(chǎn)生L2層的視圖。如明細單舉低L2_VIEW_KL1層表。數(shù)據(jù)從L1層經(jīng)過計
8、算,匯總,根據(jù)前端分析需求,形成可以有效支撐前端應用查詢的結構。3 .建模方法要成功地建立一個數(shù)據(jù)倉庫,必須有一個合理的數(shù)據(jù)模型。數(shù)據(jù)倉庫建模在業(yè)務需求分析之后開始,是數(shù)據(jù)倉庫構造的正式開始。在創(chuàng)建數(shù)據(jù)倉庫的數(shù)據(jù)模型時應考慮:滿足不同層次、用戶的需求;兼顧查詢效率與數(shù)據(jù)粒度的需求;支持用戶需求變化;避免業(yè)務運營系統(tǒng)性能影響;提供可擴展性。數(shù)據(jù)模型的可擴展性決定了數(shù)據(jù)倉庫對新的需求的適應能力,建模既要考慮眼前的信息需求,也要考慮未來的需求。目前兩類主流的數(shù)據(jù)倉庫模型分別是由Inmon提出的企業(yè)級數(shù)據(jù)倉庫模型和由Kimball提出的多維模型。Inmon提出的企業(yè)級數(shù)據(jù)倉庫模型采用第三范式(3NF)
9、,先建立企業(yè)級數(shù)據(jù)倉庫,再在其上開發(fā)具體的應用。企業(yè)級數(shù)據(jù)倉庫固然是我們所追求的目標,但在缺乏足夠的技術力量和數(shù)據(jù)倉庫建設經(jīng)驗的情況下,按照這種模型設計的系統(tǒng)建設過程長,周期長,難度大,風險大,容易失敗。這種模型的優(yōu)點是信息全面、系統(tǒng)靈活。由于采用了第三范式,數(shù)據(jù)存儲冗余度低、數(shù)據(jù)組織結構性好、反映的業(yè)務主題能力強以及具有較好的業(yè)務擴展性等,但同時會存在大量的數(shù)據(jù)表,表之間的聯(lián)系比較多,也比較復雜,跨表操作多,查詢效率較低,對數(shù)據(jù)倉庫系統(tǒng)的硬件性能要求高等問題。另一方面,數(shù)據(jù)模式復雜,不容易理解,對于一般計算機用戶來說,增加了理解數(shù)據(jù)表的困難。Kimball提出的多維模型降低了范式化,以分析主
10、題為基本框架來組織數(shù)據(jù)。以維模型開發(fā)分析主題,這樣能夠快速實施,迅速獲得投資回報,在取得實際效果的基礎上,再逐漸增加應用主題,循序漸進,積累經(jīng)驗,逐步建成企業(yè)級數(shù)據(jù)倉庫。這也可以說是采用總線型結構先建立數(shù)據(jù)集市,使所有的數(shù)據(jù)集市具有統(tǒng)一的維定義和一致的業(yè)務事實,這種方法融合了自下而上和自上而下兩種設計方法的思想。這種模型的優(yōu)點是查詢速度快,做報表也快;缺點是由于存在大量的預處理,其建模過程相對來說就比較慢。當業(yè)務問題發(fā)生變化,原來的維不能滿足要求時,需要增加新的維。由于事實表的主碼由所有維表的主碼組成,所以這種維的變動將是非常復雜、非常耗時的。而且信息不夠全面、系統(tǒng)欠靈活、數(shù)據(jù)冗余多。本規(guī)范我
11、們主要針對維度建模的方法來闡述規(guī)范。3.3. 維度建模多維數(shù)據(jù)建模以直觀的方式組織數(shù)據(jù),并支持高性能的數(shù)據(jù)訪問。每一個多維數(shù)據(jù)模型由多個多維數(shù)據(jù)模式表示,每一個多維數(shù)據(jù)模式都是由一個事實表和一組維表組成的。多維模型最常見的是星形模式。在星形模式中,事實表居中,多個維表呈輻射狀分布于其四周,并與事實表連接。位于星形中心的實體是指標實體,是用戶最關心的基本實體和查詢活動的中心,為數(shù)據(jù)倉庫的查詢活動提供定量數(shù)據(jù)。每個指標實體代表一系列相關事實,完成一項指定的功能。位于星形圖星角上的實體是維度實體,其作用是限制用戶的查詢結果,將數(shù)據(jù)過濾使得從指標實體查詢返回較少的行,從而縮小訪問范圍。每個維表有自己的
12、屬性,維表和事實表通過關鍵字相關聯(lián)。使用星形模式主要有兩方面的原因:提高查詢的效率。采用星形模式設計的數(shù)據(jù)倉庫的優(yōu)點是由于數(shù)據(jù)的組織已經(jīng)過預處理,主要數(shù)據(jù)都在龐大的事實表中,所以只要掃描事實表就可以進行查詢,而不必把多個龐大的表聯(lián)接起來,查詢訪問效率較高。同時由于維表一般都很小,甚至可以放在高速緩存中,與事實表作連接時其速度較快;便于用戶理解。對于非計算機專業(yè)的用戶而言,星形模式比較直觀,通過分析星形模式,很容易組合出各種查詢。3.4. 建模步驟第一步:選取建模的業(yè)務過程設計過程的第一步是確定要建模的業(yè)務過程或者度量事件。業(yè)務過程是在業(yè)務需求收集過程明確下來。在很多的生產(chǎn)活動中,存在著很多價值
13、鏈,這些價值鏈就是有一系列的業(yè)務過程來組成的。比如在供應鏈管理中。存在著下面的業(yè)務過程:原材料購買原材料交貨原材料庫存材料賬單生產(chǎn)制造將產(chǎn)品運到倉庫制成品庫存客戶訂單為客戶送貨貨品計價付款退貨第二步:定義模型的粒度業(yè)務過程被確定下來后,就建模師就必須聲明事實表的粒度。清楚地定義事實表的行到底代表什么在提出業(yè)務過程維度模型的過程至關重要。如果沒有在事實表的粒度上達成一致,那么設計過程就不可能成功地向前推進。第三步:選定維度一旦事實表的粒度已經(jīng)穩(wěn)固地確定下來,對維的選擇就相當簡單了。也正是在此時,就可以開始考慮外鍵的問題了。一般來說,粒度本身就能夠確定一個基本或者最小的維度集合,設計過程就是在此基
14、礎上添加其他維。這些維在已經(jīng)聲明的事實表粒度都有一個唯一對應的值。第四步:確定事實四步設計過程的最后一步是仔細選擇適用于業(yè)務過程的事實和指標。事實可以從度量事件中采用物理手段捕捉,或者也可以從這些度量中導出。對于事實表粒度來說,每個事實都是必須設計存在的,不要將那些明確聲明的粒度不相匹配的其他時間段的事實或者其他細節(jié)層次的事實混雜進來。4.維度表設計維度表包含內容:1)代理鍵:整型,不可重復,唯一標識每一條記錄,不包含任何商業(yè)信息。(必選)2)代理鍵有效開始時間和結束時間。(必選)3)當前有效標志。(必選)4)主鍵:傳統(tǒng)意義的業(yè)務鍵,包含相應的商業(yè)信息,如員工編號。(必選)5)名稱:數(shù)據(jù)分析時
15、顯示的內容,如員工名稱等;(必選)6)排序鍵:自定義序列。(可選)7)自定義匯總:利用自定義表達式進行特定的數(shù)據(jù)運算。可選)8)父鍵:父子維度中用來標識主鍵的上級。(可選)9)一元運算符:在父子維度中用來定義上下級的匯總關系。(可選)(詳細)10)屬性:屬性包含有關維度的信息。例如,Customer維度可以包含Name、PhoneNumberGender、City、State等屬性。屬性通過屬性層次結構顯示出來。維度中的屬性層次結構同時包含可選的(All)級別和該屬性的非重復成員。例如,Customer維度可以包含具有兩個級別的Name屬性層次結構:(All)級別以及為每個姓名包含一個成員的級
16、別。父子層次結構的處理方式有所不同。屬性不一定要具有屬性層次結構。如果未創(chuàng)建屬性層次結構,多維數(shù)據(jù)集的空間將與屬性無關。例如,通常不會為PhoneNumber屬性創(chuàng)建屬性層次結構,因為通常不會按電話號碼導航維度。如果沒有為屬性創(chuàng)建屬性層次結構,則該屬性可用作成員屬性,但不能用作用戶層次結構中的級別。屬性可以通過前端展示軟件進行展現(xiàn)。(可選)11)屬性層次結構:屬性層次結構完全定義多維數(shù)據(jù)集的空間。多維數(shù)據(jù)集是由多維數(shù)據(jù)集的屬性層次結構的交集產(chǎn)生的多維空間。(可選)4.1. 時間維度時間維度是必不可少的一個維度,可以參考如下的模板:NameCodeDataTypeLength日期代理鍵DATE_
17、PKINTEGER日期描述DATE_DESCVARCHAR2(8)8日期長描述DATE_LDESCVARCHAR2(20)20日期中文描述DATE_CNDESCVARCHAR2(20)20天DAYNUMBER天中文DAYCNVARCHAR2(10)10月MONTHNUMBER月刊MONTH_DESCVARCHAR2(10)10年YEARNUMBER年中文YEAR_DESCVARCHAR2(10)10年月YEARM_ONTHVARCHAR2(6)6周月WEEKMONTHNUMBER周月中文描述WEEK_MONTH_CNDEVCRCHAR2(20)20年中第幾周WEEK_YEARNUMBER年中第
18、幾周描述WEEK_YEAR_CNVARCHAR2(20)20周幾WEEKNONUMBER周幾中文描述WEEK_CNVARCHAR2(10)10旬XUNNUMBER旬中文XUNCNVARCHAR2(10)10季度QUARTERNUMBER季度中文QUAR_CNVARCHAR2(10)10是否周末IF_WEEKENDVARCHAR2(10)10是否月末IF_MONTHENDVARCHAR2(10)10節(jié)假日名稱HOLIDAYVARCHAR2(10)10上月同一LASTMONTH_DAYVARCHAR2(8)8去年同一天LASTYEAR_DAYVARCHAR2(8)84.2. 層級維度層級維度也是我
19、們模型設計最常遇見的維度,比如組織結構,區(qū)域,產(chǎn)品樹,行業(yè)結構等等。在設計時,可以采用如下模板:針對數(shù)據(jù)存儲時,采用自關聯(lián)的結構:NameCodeDataTypeLength組織代碼ORG_CODE-VARCHAR2(20)20上級組織代碼PORG_COD)E/ARCHAR2(20)20組織名稱ORG_NAME-VARCHAR2(100)100上級組織名稱PORG_NAM1E/ARCHAR2(100)100組織類型ORG_TYPEVARCHAR2(20)20組織層級ORG_LEVELVARCHAR2(20)20組織描述ORG_DESCVARCHAR2(200)200組織簡稱ORG_SNAM1E
20、/ARCHAR2(20)20組織地址ORG_ADDF【VARCHAR2(100)100針對數(shù)據(jù)展現(xiàn)時,將自關聯(lián)的結構展開,以列存儲層次:根據(jù)需要可以把組織層級具體化NameCodeDataTypeLength組織代理鍵ORG_KEYINTEGER組織代碼ORG_CODEVARCHAR2(30)30組織名稱ORG_NAMEVARCHAR2(50)50組織描述ORG_DESCVARCHAR2(100)100組織簡稱ORG_SNAMEVARCHAR2(50)50組織層級ORG_LEVELVARCHAR2(30)30組織類型ORG_TYPEVARCHAR2(20)20上級組織代碼ORG_PCODEVA
21、RCHAR2(30)30上級組織名稱ORG_PNAMEVARCHAR2(50)50組織1級代碼ORG_1_CODEVARCHAR2(50)50組織1級名稱ORG_1_NAMEVARCHAR2(50)50組織2級代碼ORG_2_CODEVARCHAR2(50)50組織2級名稱ORG_2_NAMEVARCHAR2(50)50組織3級代碼ORG_3_CODEVARCHAR2(50)50組織3級名稱ORG_3_NAMEVARCHAR2(50)50組織4級代碼ORG_4_CODEVARCHAR2(50)50組織4級名稱ORG_4_NAMEVARCHAR2(50)50組織5級代碼ORG_5_CODEVAR
22、CHAR2(50)50組織5級名稱ORG_5_NAMEVARCHAR2(50)50組織6級代碼ORG_6_CODEVARCHAR2(50)50組織6級名稱ORG_6_NAMEVARCHAR2(50)50組織7級代碼ORG_7_CODEVARCHAR2(50)50組織7級名稱ORG_7_NAMEVARCHAR2(50)50組織8級代碼ORG_8_CODEVARCHAR2(50)50組織8級名稱ORG_8_NAMEVARCHAR2(50)50代理鍵開始時間KEY_STARTDATE:VARCHAR2(30)30代理鍵結束時間KEY_ENDDATEVARCHAR2(30)30后效標志CURRENT_
23、FLAGINTEGER修改時間KEY_MODIFYDATEARCHAR2(30)304.3. 緩慢變化維緩慢變化維定義數(shù)據(jù)會發(fā)生緩慢變化的維度就叫“緩慢變化維”。舉個例子就清楚了:在一個零售業(yè)數(shù)據(jù)倉庫中,事實表保存著各銷售人員的銷售記錄,某天一個銷售人員從北京分公司調到上海分公司了,那么如何來保存這個變化呢?也就是說銷售人員維度要怎么恰當?shù)奶幚磉@一變化。先來回答一個問題,為什么要處理,或保存這一變化?如果我們要統(tǒng)計北京地區(qū)或上海地區(qū)的總銷售情況的時候,這個銷售人員的銷售記錄應該算在北京還是算在上海?當然是調離前的算在北京,調離后的算在上海,但是如標記這個銷售人員所屬區(qū)域?這里就需要處理一下這個
24、維度的數(shù)據(jù),即我們緩慢變化維需要做的事情。處理緩慢變化維一般按不同情況有以下幾種解決方案:4.3.1, 新數(shù)據(jù)覆蓋舊數(shù)據(jù)此方法必須有前提條件,即你不關心這個數(shù)劇的變化。例如,某個銷售人員的英文名改了,如果你不關心員工的英文名有什么變化則可直接覆蓋(修改)數(shù)據(jù)倉庫中的數(shù)據(jù)。4.3.2, 保存多條記錄,并添加字段加以區(qū)分這種情況下直接新添一條記錄,同時保留原有記錄,并用單獨的專用的字段保存區(qū)別。如:(以下表格中Supplier_State表示上面例子中所屬區(qū)域,為描述清晰,不用代理鍵表示)Supplier_keySupplier_CodeSupplier_NameSupplier_StateDis
25、a001ABCPhlogisticalSupplyCompanyCA002ABCPhlogisticalSupplyCompanyILr或:Supplier_keySupplier_CodeSupplier_NameSupplier_StateVersion001ABCPhlogisticalSupplyCompanyCA0002ABCPhlogisticalSupplyCompanyIL1以上兩種是添加數(shù)據(jù)版本信息或是否可用來標識新舊數(shù)據(jù)。下面一種則是添加記錄的生效日期和失效日期來標識新舊數(shù)據(jù):Supplier_kSupplier_CoSupplier_NaSupplier_StaStart
26、_DatEnd_Dateeydemetee001ABCPhlogisticalSupplyCompanyCA01-Jan-200021-Dec-2004002ABCPhlogisticalSupplyCompanyIL22-Dec-2004空的End_Date表示當前版本數(shù)據(jù),或者你也可一用一個默認的大時間(如:12/31/9999)來代替空值,這樣數(shù)據(jù)還能被索引識別到.4.3.3, 不同字段保存不同值Supplier_keySupplier_NameOriginal_Supplier_StateEffective_DateCurrent_Supplier_State001Phlogistic
27、alSupplyCompanyCA22-Dec-2004IL這種方法用不同的字段保存變化痕跡,但是這種方法不能象第二種方法一樣保存所有變化記錄,它只能保存兩次變化記錄,適用于變化不超過兩次的維度。4.3.4, 另外建表保存歷史記錄即另外建一個歷史表來表存變化的歷史記錄,而維度只保存當前數(shù)據(jù)Supplier:Supplier_keySupplier_NameSupplier_State001PhlogisticalSupplyCompanyILSupplier_History:Supplier_keySupplier_NameSupplier_StateCreate_Date001Phlogis
28、ticalSupplyCompanyCA22-Dec-2004這種方法僅僅記錄一下變化歷史痕跡,其實做起統(tǒng)計運算來還是不方便的4.3.5, 混合模式這種模式是以上幾種模式的混合體,相對而言此種方法更全面,更能應對錯綜復雜且易變化的用戶需求,也是較為常用的。Row_KeySupplier_keySupplier_CodeSupplier_NameSupplier_StateStart_DateEnd_DateCurrentIndicator1001ABC001PhlogisticalSupplyCompanyCA22-Dec-200415-Jan-2007N2001ABC001Phlogisti
29、calSupplyCompanyIL15-Jan-20071-Jan-2099Y此中方法有以下幾條優(yōu)點:1 .能用簡單的過濾條件選出維度當前的值。2 .能較容易的關聯(lián)出歷史任意一時刻事實數(shù)據(jù)的值。3 .如果事實表中有一些時間字段(如:OrderDate,ShippingDate,ConfirmationDate),那么我們很容易選擇哪一條維度數(shù)據(jù)進行關聯(lián)分析。其中Row_Key口CurrentIndicator字段是可有可無的,加上去更方便,畢竟維度表的數(shù)據(jù)都不大,多點冗余字段不占太大空間但能提高查詢效率。這種設計模式下事實表應以Supplier_key為外鍵,雖然這個字段不能唯一標識一條維度
30、數(shù)據(jù),從而形成了事實表與維表多對多的關系,因此在做事實和維度做關聯(lián)時應加上時間戳字段(或Indicator字段)。4.3.6, 非常規(guī)混合模式上面說到第五種實現(xiàn)方式有點弊端,那就是事實表和維表不是多對一關系,而是多對多關系,這種關系不能在建模時解決只能在報表層面,在報表運行時解決,且在BI語意層建模時需要添加時間過濾條件,比較繁瑣。下面這種解決方案可以解決此多對多關系,但是得修改一下事實表:SupplierDimension:Version_NumberSupplier_keySupplier_CodeSupplier_NameSupplier_StateStart_DateEnd_Date1
31、001ABC001PhlogistiCA22-Dec-15-Jan-calSupplyCompany200420070001ABC001PhlogisticalSupplyCompanyIL15-Jan-20071-Jan-2099FactDelivery:(為描述清晰,同樣不使用代理鍵標識維度)Delivery_KeySupplier_keySupplier_version_numberQuantityProductDelivery_DateOrder_Date10010132Bags22-Dec-200615-Oct-200620010324Chairs15-Jan-20071-Jan-2
32、007此方案中向維表中的當前數(shù)據(jù)版本號始終為0,即插入維度數(shù)據(jù)時先將老版本的數(shù)據(jù)的version_number改成1(遞增),然后再插入當前數(shù)據(jù),此時才能保持當前數(shù)據(jù)版本號始終為0。事實表中插入數(shù)據(jù)時所有的維度數(shù)據(jù)版本號始終全部為0o因此此方案完全可解決事實表和維表多對多關系問題,另外還有個優(yōu)點是能保證事實表和維表的參照完整性,而且我們在用ERwin,PowerDesigner等建模工具建模時,Version_Number和Supplier_key可作為復合主鍵在兩實體間建立鏈接。5.事實表設計事實表中一般要包含2部分:一是由主鍵和外鍵所組成的鍵部分,另一部分是用戶希望在數(shù)據(jù)倉庫中所了解的數(shù)值
33、指標,這些指標是為每個派生出來的鍵而定義和計算的,稱為事實或指標。由于事實是一種度量,所以事實表中的這種指標往往需要具有數(shù)值化和可加性的特征。但是在事實表中,只有那些具有完全可加性的事實才能根據(jù)所有的維度進行累加而具有意義。而事實表有一些事實表示的是某種強度,這類事實就不具有完全加法性,而是一種半加法性。例如,賬目余款反映的是某個時間點的數(shù)據(jù),它可以按照地點和商品等大多數(shù)維度進行累加,但是對于時間維度則例外,將一年中每個月的賬目余款進行累加是毫無意義的,而決策者則可能需要了解所有地區(qū)和所有商品賬目余款的累加值。在事實表中還有一些事實是非加法性的,即這些事實具有對事實的描述特性,在這種情況下一般
34、要將這些非加法性事實轉移到維度表中5.1. 事務事實表大多數(shù)基本事實表和公共事實表都是面向事務的,其粒度是每一行對應個一事務,或者一行對應事務中的一個條目。事務粒度是空間和時間的交點,一個事務粒度上的度量必須在那個時刻為真。事務數(shù)據(jù)在其最低層次上一般都有數(shù)目巨大的維與之相關聯(lián)。無論事務事件何時出現(xiàn),都可以捕捉到有關事務的大量上下文,僅當活動發(fā)生時,事務事實表中才會插入一行。一旦事務事實行已經(jīng)存儲,一般不會再次對其進行訪問。如下面的業(yè)務過程,就非常適合用事務事實表來表示:采購下訂單繳費支付購買撥打電話5.2. 快照事實表第二種最常見的事實表類型是周期快照。使用周期快照可以得到一組描述,周期快照能
35、夠按照一個定義良好的時間周期間隔來捕捉業(yè)務過程的執(zhí)行情況,并且將這些描述裝載到事實表中。在預定義好的間隔(如每天、每周或者每月)上,很多描述都是關于相同細節(jié)層次的,它們連續(xù)不斷地進入事實表。如下面的業(yè)務過程,就非常適合用快照事實表來表示:銀行賬戶的余額財務月報表6.1. 數(shù)據(jù)庫表設計規(guī)范數(shù)據(jù)庫對象前綴命名說明表層次_模塊名_具體功能實體名,如產(chǎn)品維表L0_DIM_PRODUCT,附注:在公司模型產(chǎn)品中,我們規(guī)定分如下層次L0»L1»L2維表DIM層次_模塊名_具體功能實體名,如產(chǎn)品維表L0_DIM_PRODUCT,事實表FACT層次_模塊名_具體功能實體名,如銷售事實表L1
36、_FACT_SALE1,列名參見附件中常見屬性命名規(guī)范代理鍵KEY如日期代理鍵DATE_KEY存儲過程SP_前綴層次主題功能如:SP_L2_CUSTOMER_YTD視圖VW_VW層次直接的內容,一般是卅于查詢Query和報表Report兩種情形觸發(fā)器TRG_方涉-:TRGJI名_方法名_之前之后等比如:TRG_USER_INFO_INSERT函數(shù)FN_F_FNM能名稱。主鍵PK_PKJI名或縮寫_列名簡潔的寫法:寫:PK_g名,寫法二:PK3U名,因為列名設計時已經(jīng)包含表的含義外鍵FK_FK_從表名字段_上表名字段。這個推薦索引IDX_IDX表名_字段名(一個或多個)【可以在其后加U或者C,規(guī)則同觸犯器】推薦使用:IDX_字段名1Unique【U】與非1NonUniqueN一是聚集Cluster【C】與非聚集NonCluster
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 3609-2019安全生產(chǎn)責任保險服務基本規(guī)范
- DB32/T 3546-2019血站消毒衛(wèi)生規(guī)范
- DB32/T 3523-2019海濱木槿育苗技術規(guī)程
- DB31/T 596-2012地鐵合理通風技術管理要求
- DB31/T 435-2021分布式供能系統(tǒng)溴化鋰吸收式冷(熱)水機組安全和能效技術要求
- DB31/T 419-2015激光打印機用再制造鼓粉盒組件技術規(guī)范
- DB31/T 1289-2021戶外廣告和招牌設施安全檢測要求
- DB31/T 1257-2020瘧疾疫點處置規(guī)范
- DB31/T 1182-2019特種設備隱患排查治理通則
- DB31/T 1119-2018電力地下管線竣工圖繪制技術要求
- GB/T 13914-2013沖壓件尺寸公差
- 老產(chǎn)品芯片1-gc2145d模組設計指南
- 廣東省中山市20222022學年下學期期末考試八年級英語試卷
- 油脂制取與加工工藝學
- 創(chuàng)新創(chuàng)業(yè)指導把握創(chuàng)業(yè)機會課件
- 第三章工程師的責任 工程倫理學課件
- 2022年湖南省普通高中學業(yè)水平考試語文試卷及參考答案
- 傳統(tǒng)節(jié)日端午節(jié)主題班會PPT模板
- 木材采購合同參考
- 1389國開電大本科《理工英語4》網(wǎng)上形考任務(單元自測1至8)試題及答案(精華版)
- 設備供貨投標實施方案
評論
0/150
提交評論