數據倉庫的基本理論


1.數倉建模的目標

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

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

2.關系模式范式

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

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

 

第一范式(1NF)
域都應該是原子性的,即數據庫表的每一列都是不可分割的原子數據項

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

第三范式(3NF)
在2NF的基礎上,任何非主屬性不依賴於其它非主屬性

 3.數據倉庫建模基本理論

ER實體模型
維度建模
dataVault模型
Anchor


ER實體模型
在信息系統中,將事物抽象為“實體”、“屬性”、“關系”來表示數據關聯和事物描述;實體:Entity,關系:Relationship,這種對數據的抽象 建模通常被稱為ER實體關系模型
實體:通常為參與到過程中的主體,客觀存在的,比如商品、倉庫、貨位、汽車, 此實體非數據庫的實體表
屬性:對主體的描述、修飾即為屬性,比如商品的屬性有商品名稱、顏色、尺寸、重量、產地等

關系:現實的物理事件是依附於實體的,比如商品入庫事件,依附實體商品、貨位,就會有“庫存”的屬性產生;用戶購買商品,依附實體用戶、商品,就會有“購買數量”、“金額”的屬性產品。

實體之間建立關系時,存在對照關系:
1:1 ,即1對1的關系,比如實體人、身份證,一個人有且僅有一個身份證號
1:n,即1對多的關系,比如實體學生、班級,對於某1個學生,僅屬於1個班級,而在1個班級中,可以有多個學生
n:m,即多對多的關系,比如實體學生、課程,每個學生可以選修多門課程, 同樣每個課程也可以被多門學生選修


在日常建模過程中
“實體”用矩形表示:
“關系”用菱形表示:
“屬性”用橢圓形表示:
所以ER實體關系模型也稱作E-R關系圖

針對商品入庫,ER圖構建
1.抽象出實體
2.梳理實體間的關系
3.梳理實體屬性、關系屬性構建ER圖
4.商品、貨位
5.一個貨位能存儲多個商品,一個商品僅能放置在一個貨位
6.商品:ID、名稱、顏色、品類。。。貨位:位置、容量、存儲條件。。。入庫關系:庫存

?案例
場景:課程管理系統
該系統主要用來管理某校教師、學生、課程,其中包括課程選修、考試、教師授課、學生班級管理功能,現需要完成數據庫邏輯模型設計
1,抽象出主體
2,梳理主體之間的關系
3,梳理主體的屬性
4,畫出E-R關系圖
應用場景
ER模型是數據庫設計的理論基礎,當前幾乎所有的OLTP系統設計都采用ER模型建模的方式
Bill Inom提出的數倉理論,推薦采用ER關系模型進行建模
BI架構提出分層架構,數倉底層ods、dwd也多采用ER關系模型就行設計


維度模型
Ralph Kimball推崇數據集市的集合為數據倉庫,同時也提出了對數據集市的維度建模,將數據倉庫中的表划分為事實表、維度表兩種類型。


事實表
在ER模型中抽象出了有實體、關系、屬性三種類別,在現實世界中,每一個操作型事件,基本都是發生在實體之間的,伴隨着這種操作事件的發生,
會產生可度量的值,而這個過程就產生了一個事實表,存儲了每一個可度量的事件。數據倉庫建模理論

  電商場景:一次購買事件,涉及主體包括客戶、商品、商家,產生的可度量值包括商品數量、金額、件數等


免責聲明!

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



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