維度建模步驟
數據模型是指用實體、屬性、實體之間的關系對業務概念和邏輯規則進行統一的定義,命名和編碼,主要描述企業的信息需求和業務規則,是業務人員和開發人員溝通的語言,是數據倉庫架構設計工作開始的第一步。正確的數據模型是用戶需求的集中體現,是商業智能項目成功與否最重要的因素之一。數據模型可以分為概念模型、邏輯模型、物理模型,本節進行詳細的介紹。
3.6.1 概念模型
從定義上來說,概念模型是最高層次的數據模型,反映了數據倉庫的主要主題和重要業務之間的關系。一般來說,在進行數據倉庫系統設計和開發之前,設計開發人員和業務人員已經對概念模型達成了共識,因為概念模型反映的是核心的業務問題。
概念模型的設計步驟如下:
1)從業務需求中提取重要的業務數據主題,包括對業務數據主題的詳細解釋,見表3-1。
表3-1 數據主題及其解釋
2)在業務數據主題的基礎上進行數據主題域的划分,包括對數據主題域的詳細解釋,如圖3-15所示。
圖3-15 人員與組織主題域包括的信息及解釋
a) 人員與組織主題域包括的信息 b) 對人員與組織主題域的詳細解釋
3)划分主題域概念模型:根據數據主題域的划分,細化內部的組織結構和業務關系,如圖3-16所示。
總結:概念模型建模的流程大致可以分成如下幾個部分:通過對業務系統的詳細說明,進行數據的梳理,列出數據主題詳細的清單,並對每個數據主題都作出詳細的解釋,然后經過歸納、分類,整理成各個數據主題域,列出每個數據主題域包含哪些部分,並對每個數據主題域作出詳細解釋,最后划分成主題域概念模型,如圖3-17所示。
圖3-16 划分主題域概念模型
圖3-17 概念模型設計流程圖
3.6.2 邏輯模型
從定義上講,邏輯模型是以概念模型為基礎,對概念模型的進一步細化、分解。邏輯模型通過實體和實體之間的關系描述業務的需求和系統實現的技術領域,是業務需求人員和技術人員溝通的橋梁和平台。概念模型和邏輯模型的關系如圖3-18所示。
(1)邏輯模型的設計
邏輯模型的設計是數據倉庫實施中最重要的一步,因為它直接反映了業務部門的實際需求和業務規則,同時對物理模型的設計和實現具有指導作用。它的特點就是通過實體和實體之間的關系勾勒出整個企業的數據藍圖和規划。邏輯模型一般遵循第三范式,與概念模型不同,它主要關注細節性的業務規則,同時需要解決每個主題域包含哪些概念范疇和跨主題域的繼承和共享的問題。
圖3-18 概念模型和邏輯模型的關系
(2)邏輯模型設計的一般步驟
概念模型的主題域一般是從企業現有的信息系統和行業自身業務活動匯總得來的業務模型主題域。而邏輯模型除了在概念模型的基礎上豐富和細化主題域,並且確定每個主題域包含哪些主題外,還需要以下幾個步驟。
1)分析需求,列出需要分析的主題,需求目標、維度指標、維度層次、分析的指標、分析的方法、數據的來源、關注的對象等。例如,所要分析的主題是電力營銷業務分析處理情況,見表3-2。
表3-2 電力營銷業務分析處理情況
2)選擇用戶感興趣的數據,通過業務需求將需要分析的指標分離抽取出來,轉化成邏輯模型需要的實體。例如,從用戶數量、用電儲存容量等分析指標中分離出用戶實體和用電量實體。
3)在實體中需要增加時間戳屬性,因為實體中需要保存各個階段的歷史數據。通常情況下,如果實體為統一編碼,則不需要增加時間戳屬性。
4)需要考慮粒度層次的划分。數據倉庫的粒度層次划分直接影響了數據倉庫模型的設計,通常細粒度的數據模型直接從企業模型選取實體作為邏輯模型的實體,而粗粒度的數據模型需要經過匯總計算得到相應的實體。粒度決定了企業數據倉庫的實現方式、性能、靈活性和數據倉庫的數據量。
5)在粒度層次划分的基礎上,還需要進行關系模式的定義。關系模式一般采取第三范式的特點進行定義,對當前的主題進行關系模式的划分,形成各個實體、實體屬性、實體之間的關系等內容。同時在邏輯模型框架的基礎上對實體的中英文名稱、屬性、屬性的值域進行明確、完善和細化,真實反映業務邏輯關系和業務規則。
邏輯模型的設計流程圖如圖3-19所示。
圖3-19 邏輯模型的設計流程圖
3.6.3 物理模型
(1)物理模型設計階段
在邏輯模型的基礎上,為應用生產環境選取一個合適的物理結構的過程,包括合適的存儲結構和存儲方法,稱作物理模型的設計過程。
邏輯模型轉變為物理模型包括以下幾個步驟:
1)實體名(Entity)轉變為表名(Table)。
2)屬性名(Attribute)轉換為列名(Column),確定列的屬性(Property)。
(2)實現業務規則
物理模型必須對列的屬性進行明確的定義,包括:列名、數據類型(與特定數據庫管理系統有關)、長度、能否為空值、有效性規則、默認值等,如圖3-20所示。
圖3-20 數據倉庫的物理模型
物理模型確定以后,可以進一步確定數據的存放位置和存儲空間的分配,最后生成定義數據庫的SQL命令。
概念模型、邏輯模型和物理模型的區別如圖3-21所示。
圖3-21 概念模型、邏輯模型和物理模型的區別