了解數據建模之前首先要知道的是什麼是數據模型。數據模型(Data Model)是數據特征的抽象,它從抽象層次上描述了系統的靜态特征、動态行為和約束條件,為數據庫系統的信息表示與操作提供一個抽象的框架。
一、概要:數據建模簡介數據基本用于兩種目的:1、操作型記錄的保存2、分析型決策的制定。簡單地說就是操作型系統保存數據,分析型系統使用數據;前者反映數據的最新狀态,後者反映數據一段時間的狀态變化。操作型系統簡稱為OLTP(On-Line Transaction Processing)聯機事務處理,分析型系統簡稱為OLAP(On-Line Analytical Processing)聯機分析處理。在OLTP場景中,常用的是使用實體關系模型(ER)來存儲,從而在事務處理中解決數據的冗餘和一緻性問題。在OLAP場景中,有多種建模方式有:ER模型、星型模型和多維模型。
數據建模是一種用于定義和分析數據的要求和其需要的相應支持的信息系統的過程。從需求到實際的數據庫,有三種不同的類型。用于信息系統的數據模型作為一個概念數據模型,本質上是一組記錄數據要求的最初的規範技術。數據首先用于讨論适合企業的最初要求,然後被轉變為一個邏輯數據模型,該模型可以在數據庫中的數據結構概念模型中實現。一個概念數據模型的實現可能需要多個邏輯數據模型。數據建模中的最後一步是确定邏輯數據模型到物理數據模型中到對數據訪問性能和存儲的具體要求。數據建模定義的不隻是數據元素,也包括它們的結構和它們之間的關系。
1) 概念數據模型(Conceptual Data Model)
簡稱概念模型 ,主要用來描述世界的概念化結構。概念數據模型是最終用戶對數據存儲的看法,反映了最終用戶綜合性的信息需求,它以數據類的方式描述企業級的數據需求,數據類代表了在業務環境中自然聚集成的幾個主要類别數據。概念數據模型的目标是統一業務概念,作為業務人員和技術人員之間溝通的橋梁,确定不同實體之間的最高層次的關系。
2) 邏輯數據模型(Logical Data Model)
簡稱數據模型,這是用戶從數據庫所看到的模型,是具體的DBMS所支持的數據模型,如網狀數據模型(Network Data Model)、 層次數據模型 (Hierarchical Data Model)等等。 此模型既要面向用戶,又要面向系統 ,主要用于 數據庫管理系統 (DBMS)的實現。邏輯數據模型的内容包括所有的實體和關系,确定每個實體的屬性,定義每個實體的主鍵,指定實體的外鍵,需要進行範式化處理。邏輯數據模型的目标是盡可能詳細的描述數據,但并不考慮數據在物理上如何來實現。邏輯數據建模不僅會影響數據庫設計的方向,還間接影響最終數據庫的性能和管理。
3) 物理數據模型(Physical Data Model)
簡稱物理模型 ,是面向計算機物理表示的模型,描述了數據在儲存介質上的組織結構,它不但與具體的DBMS 有關,而且還與操作系統和硬件有關。每一種邏輯數據模型在實現時都有起對應的物理數據模型。DBMS為了保證其獨立性與可移植性,大部分物理數據模型的實 現工作由系統自動完成,而設計者隻設計索引、聚集等特殊結構。物理結構圖顯示物理數據模型是在邏輯數據模型的基礎上,考慮各種具體的技術實現因素,進行數據庫體系結構設計,真正實現數據在數據庫中的存放。
二、方法:數據建模常用模型1)D-R模型
D-R模型(Entity-relationship model)實體關系模型,E-R模型的構成成分是實體集、屬性和聯系集。其表示方法如下:(1) 實體集用矩形框表示,矩形框内寫上實體名。(2) 實體的屬性用橢圓框表示,框内寫上屬性名,并用無向邊與其實體集相連。(3) 實體間的聯系用菱形框表示,聯系以适當的含義命名,名字寫在菱形框中,用無向連線将參加聯系的實體矩形框分别與菱形框相連,并在連線上标明聯系的類型,即1—1、1—N或M—N。如圖1-1所示。
圖1-1 E-R圖
2)多維模型
它是維度模型的另一種實現。當數據被加載到OLAP多維數據庫時,對這些數據的存儲的索引,采用了為維度數據涉及的格式和技術。性能聚集或預計算彙總表通常由多維數據庫引擎建立并管理。由于采用預計算、索引策略和其他優化方法,多維數據庫可實現高性能查詢。這種模型可以以星型模式,雪花模式,或事實星座模式的形式存在。
3)星型模型
它是維度模型在關系型數據庫上的一種實現。它是多維的數據關系,它由事實表(Fact Table)和維表(Dimension Table)組成。每個維表中都會有一個維作為主鍵,所有這些維的主鍵結合成事實表的主鍵。事實表的非主鍵屬性稱為事實,它們一般都是數值或其他可以進行計算的數據。該模型表示每個業務過程包含事實表,事實表存儲事件的數值化度量,圍繞事實表的多個維度表,維度表包含事件發生時實際存在的文本環境。這種類似于星狀的結構通常稱為'星型連接'。其重點關注用戶如何更快速地完成需求分析,同時具有較好的大規模複雜查詢的響應性能。如圖1-2所示。
圖1-2 星型模型
4)雪花模型
它是當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。雪花模型是對星型模型的擴展。如圖1-3所示。
圖1-3 雪花模型
三、方案:數據建模六步驟數據建模,通俗地說,就是通過建立數據科學模型的手段解決現實問題的過程。數據建模也可以稱為數據科學項目的過程,并且這個過程是周期性循環的。具體可分為六大步驟,如圖2-1所示。
圖2-1 建模步驟
1) 收集業務需求與數據實現:在開始維度建模工作之前,需要理解業務需求,以及作為底層源數據的實際情況。通過與業務方溝通交流、查看現有報表等來發現需求,用于理解他們的基于關鍵性能指标、競争性商業問題、決策制定過程、支持分析需求的目标。同時,數據實際情況可通過與數據庫系統專家交流,了解訪問數據可行性等。
2) 選擇業務過程:業務過程是組織完成的操作型活動。業務過程時間建立或獲取性能度量,并轉換為事實表中的事實。多數事實表關注某一業務過程的結果。過程的選擇非常重要的,因為過程定義了特定的設計目标以及對粒度、維度、事實的定義。
3) 聲明粒度:聲明粒度是維度設計的重要步驟。粒度用于确定某一事實表中的行表示什麼。在選擇維度或事實前必須聲明粒度,因為每個候選維度或事實必須與定義的粒度保持一緻。在從給定的業務過程獲取數據時,原子粒度是最低級别的粒度。強烈建議從關注原子級别粒度數據開始設計,因為原子粒度數據能夠承受無法預期的用戶查詢。
4) 确認維度:維度提供圍繞某一業務過程事件所涉及的'誰、什麼、何處、何時、為什麼、如何'等背景。維度表包含分析應用所需要的用于過濾及分類事實的描述性屬性。牢牢掌握事實表的粒度,就能夠将所有可能存在的維度區分開來。
5) 确認事實:事實,涉及來自業務過程事件的度量,基本上都是以數據值表示。一個事實表行與按照事實表粒度描述的度量事件之間存在一對一關系,因此事實表對應一個物理可觀察的事件。在事實表内,所有事實隻允許與聲明的粒度保持一緻。
6) 部署方式:選擇一種維度模型的落地方式。既可以選擇星型模型,部署在關系數據庫上,通過事實表及通過主外鍵關聯的維度表;也可以選擇多維模型,落地于多維數據庫中。
看了這麼多方法論,你是不是摩拳擦掌躍躍欲試了呢?億信華辰數據工廠(EsDataFactory)不光可以幫你實現數據建模而且還可以更快更方便更高效。億信華辰數據工廠(EsDataFactory)是一款面向數倉實施的自主研發的軟件工具,集數據建模與ETL設計于一體,内置新型的混合計算引擎,在建模的同時同步完成ETL流程設計,提供一站式數據處理服務,彌補傳統ETL工具對模型管控的缺失與不足。想要了解很多功能可私信小編免費試用哦~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!