數(shù)據(jù)倉庫的模型設(shè)計(jì)
數(shù)據(jù)倉庫模型設(shè)計(jì)遵循“自頂向下、逐步求精”的設(shè)計(jì)原則。
模型設(shè)計(jì)分為三個(gè)階段:
1,概念模型
對業(yè)務(wù)的范圍和使用,從高度上進(jìn)行抽象概括,也就是劃分主題域。
一般劃分為8個(gè)主題域:
客戶、服務(wù)、服務(wù)使用、賬務(wù)、結(jié)算、資源、客服、營銷
為什么要?jiǎng)澐种黝}域?
劃分主題域,是根據(jù)業(yè)務(wù)的應(yīng)用和需要來劃分的,是用來達(dá)到數(shù)據(jù)與業(yè)務(wù)緊耦合的目的。
2,邏輯模型
對概念模型中的主題進(jìn)行細(xì)化,定義實(shí)體與實(shí)體之間的關(guān)系,和實(shí)體的屬性。
即定義具體表的作用,表與表的約束,表的字段。形成ER圖。
這些實(shí)體的設(shè)計(jì)都是基于業(yè)務(wù)規(guī)則,可以說,這一階段主要面對的是業(yè)務(wù)。也就是“業(yè)務(wù)驅(qū)動建模”
3,物理模型
依照邏輯模型,在數(shù)據(jù)庫中進(jìn)行建表、索引等。數(shù)據(jù)倉庫,為了滿足高性能的需求,可以增加冗余、隱藏表之間的約束等反第三范式操作。
這一階段,主要針對的是數(shù)據(jù)庫、硬件、性能。
范式:
第一范式:數(shù)據(jù)庫表的字段都是單一屬性,不可再分。
第二范式:數(shù)據(jù)庫表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的部分函數(shù)依賴。
(部分函數(shù)依賴指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況)。即要求所有屬性都依賴于主鍵。
第三范式:數(shù)據(jù)庫表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的傳遞函數(shù)依賴。
范式是向下兼容的。
例如:
1)違反第一范式。因?yàn)椋簩W(xué)生部門可以分解為:學(xué)院,系,班級
2)違反第二范式。因?yàn)椋宏P(guān)鍵字段是學(xué)生ID和課程ID, 但存在“課程ID”決定課程名稱和課程學(xué)分。
3)違反第三范式。因?yàn)椋宏P(guān)鍵字段是學(xué)生ID,但存在可能名稱和學(xué)分依賴“課程ID”。
星型模型和雪花模型
首先,他們都是由一個(gè)事實(shí)表和一組維度表組成。
星型模型,也被稱為維度建模。
區(qū)別在于:
星型模型:維度表直接跟事實(shí)表連接,圖型像星星。
如區(qū)縣和地市做為同一維度都在地市表中。
*維度預(yù)處理,維度會預(yù)先進(jìn)行分類,排序等預(yù)處理。
雪花模型:一些維度表不是直接與事實(shí)表連接,而是通過維度表中轉(zhuǎn),圖形像雪花。
例如:
圖1:星型模型
圖2 雪花模型
從性能來看,星型模型查詢性能好。
為了提高性能,可以允許違反第三范式,適當(dāng)?shù)娜哂?、隱藏表之間的約束。
維度建模
將商業(yè)維度融合到數(shù)據(jù)模型中,由此得名維度建模。
或者說,為了分析方便(商業(yè)應(yīng)用要求),將同一維度的不同層次的維度(如地市ID,區(qū)縣ID)都融合到事實(shí)表中(如用戶寬表)。
維度模型也是星型模型。
它 強(qiáng)調(diào)的是先對維度進(jìn)行預(yù)處理,將多個(gè)維度集合到一個(gè)事實(shí)表,形成一個(gè)寬表,如上面的用戶統(tǒng)一視圖。包含了20多個(gè)維度。這樣可以組合各維度,形成靈活的報(bào)表查詢。
B. 分層設(shè)計(jì)原則
電信行業(yè)的數(shù)據(jù)倉庫都采用了分層設(shè)計(jì)原則。
總的來說,分三層:接口層、中間匯總層和應(yīng)用層。
特別強(qiáng)調(diào)的是:
中間層是數(shù)據(jù)倉庫最重要的一層。直接決定了數(shù)據(jù)倉庫的性能。
一般的做法是:
1)數(shù)據(jù)匯總。將底層數(shù)據(jù)按維度進(jìn)行小顆粒度匯總
2)信息聚合。將多張表的信息聚合在一個(gè)表中。這樣的好處,是避免使用表關(guān)聯(lián),提高查詢性能。
C. 主題域設(shè)計(jì)方法如果說分層設(shè)計(jì),是橫向的設(shè)計(jì)原則,那么主題分域是縱向的處理方法。
具體做法就是從業(yè)務(wù)上,高度的抽象和歸納,將數(shù)據(jù)劃分為不同的主題域。
分域后的好處:業(yè)務(wù)緊耦合、便于數(shù)據(jù)拓展、便于使用。
域是要具有明顯的表命名規(guī)則,如:
用戶信息域—— user
通信行為—— call
數(shù)據(jù)業(yè)務(wù)—— gprs
賬務(wù) —— bill
客戶服務(wù)—— serv
xx經(jīng)分系統(tǒng)的數(shù)據(jù)架構(gòu)圖: