二、數倉建模理論


1、數倉建模的目標

  • 訪問性能:能夠快速查詢所需的數據,減少數據I/O
  • 數據成本:減少不必要的數據冗余,實現計算結果數據復用,降低大數據系統中的存儲成本和計算成本
  • 使用效率:改善用戶應用體驗,提高使用數據的效率
  • 數據質量:改善數據統計口徑的不一致性,減少數據計算錯誤的可能性,提供高質量的、一直的數據訪問平台

大數據的數倉建模:需要通過建模的方法更好的組織、存儲數據,以便於在性能、成本、效率和數據質量之間找到最佳平衡點

 

關系模式范式

關系型數據庫設計時,遵照一定的規范要求,目的在於降低數據的冗余性和數據的一致性,目前業界范式有:

  • 第一范式(1NF)
  • 第二范式(2NF)
  • 第三范式(3NF)
  • 巴斯-科德范式(BCNF)
  • 第四范式(4NF)
  • 第五范式(5NF)

第一范式(1NF)

  域都應該是原子性的,即數據庫的每一列都是不可分割的原子數據項

 

 

 第二范式(2NF)

  在1NF的基礎上,實體的屬性完全依賴於主關鍵字,不能存在僅依賴主關鍵字的一部分的屬性

 

 

 第三范式(3NF)

  在2NF的基礎上,任何非主屬性不依賴於其他非主屬性

 

 

 

數據倉庫建模基本理論

  1. ER實體模型
  2. 維度建模
  3. dataVault模型
  4. Anchor

1、ER實體模型

  在信息系統中,將事物抽象為“實體”、“屬性”、“關系”來表示數據關聯和事物描述;實體:Entity,關系:“Relationship”,這種對數據的抽象建模通常被稱為ER實體關系模型。

  • 實體:通常為參與到過程中的主題,客觀存在的,比如商品、倉庫、貨位、汽車,此實體非數據庫的實體表。
  • 屬性:對主體的描述、修飾即為屬性,比如商品的屬性有商品名稱、顏色、尺寸、重量、產地等
  • 關系:現實的物理事件是依附於實體的,比如商品入庫事件,依附於實體商品、貨位,就會有“庫存”的屬性產生;用戶購買商品,依附實體“用戶”、“商品”,就會有“購買數量”、“金額”的屬性產生。

實體之間建立關系時,存在對照關系:

  1:1,即1對1的關系,比如實體人--身份證,一個人僅有一個身份證號

  1:n,即1對多的關系,比如實體班級--學生,一個班級中有多個學生,一個學生屬於一個班級。

  n:m,即多對多的關系,比如實體學生--課程,每個學生可以選修多門課程,同樣每個課程也可以被多門學生選修。

 

在日常建模過程中

  “實體”用矩形表示:

 

 

  “關系”用菱形表示: 

 

 

   “屬性”用橢圓形表示:

 

 

 所以ER實體關系模型,也稱作E-R關系圖。

 

針對商品入庫,ER圖構建

抽象出實體 商品、貨位
梳理實體間的關系 一個貨位能存儲多個商品,一個商品僅能放置在一個貨位
梳理實體屬性、關系屬性

商品:ID、名稱、顏色、品類。。。

貨位:位置、容量、存儲條件。。。

入庫關系:庫存

 

案例

  場景: 課程管理系統

  該系統主要用來管理某校教師、學生、課程,其中包括課程選修、考試、教師授課、學生班級管理功能,現需要完成數據庫邏輯模型設計。

  1. 抽象出主體
  2. 梳理主體之間的關系
  3. 梳理主體的屬性
  4. 畫出E-R關系圖

 

 

 

IDEF1X

 

 

 

應用場景

  •  ER模型是數據庫設計的理論基礎,當前幾乎所有的OLTP系統設計都采用ER模型建模的方式
  • Bill Inom提出的數倉理論,推薦采用ER關系模型進行建模
  • BI架構提出分層架構,數倉底層ods、dwd也多采用ER關系模型進行設計

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM