數(shù)據(jù)倉庫中的ER實(shí)體模型和維度模型

一、數(shù)據(jù)倉庫建模的意義
一個公司中會有多個業(yè)務(wù)業(yè)務(wù)系統(tǒng),比如:OA系統(tǒng)、訂單系統(tǒng)、財務(wù)系統(tǒng)、人事系統(tǒng)、倉儲系統(tǒng)等,因此需要按照一定的組織結(jié)構(gòu)將所有數(shù)據(jù)都整合起來,形成一個倉儲平臺。如果只是通過工具把所有的數(shù)據(jù)同步到同一個平臺,這個過程只是在堆積數(shù)據(jù),不僅會因數(shù)據(jù)冗余造成存儲空間的浪費(fèi),也會因各系統(tǒng)部數(shù)據(jù)的差異導(dǎo)致需求指標(biāo)計算錯誤。

二、ER實(shí)體模型
在數(shù)據(jù)系統(tǒng)中,將事物抽象為實(shí)體(Entity)、關(guān)系(Relationship)、屬性來表示數(shù)據(jù)關(guān)聯(lián)和事物的描述,這種對數(shù)據(jù)的抽象建模通常被稱為ER實(shí)體關(guān)系模型

1、實(shí)體
一般是參與到過程的中主體,客觀存在的,比如商品

2、屬性
對主體的描述,比如商品的名稱、顏色、尺寸等

3、關(guān)系
實(shí)體與實(shí)體之間產(chǎn)生的聯(lián)系,比如商品與倉庫,商品入庫時就會產(chǎn)生庫存

4、實(shí)體與實(shí)體之間的對照關(guān)系:
(1)1:1
1對1的關(guān)系,比如人與身份證之間,每個人只有一個身份證

(2)1:n
1對多的關(guān)系,比如學(xué)生與班級之間的關(guān)系,1個學(xué)生只屬于一個班級,一個班級中可以有多個學(xué)生

(3)n:n
多對多的關(guān)系,比如學(xué)生與課程之間,每個學(xué)生可以選擇多門課程,每門課程會有多個學(xué)生選擇

注:通常在建模過程中,實(shí)體用矩形表示,關(guān)系用菱形表示、屬性用橢圓表示,因此ER實(shí)體關(guān)系模型也稱作E-R關(guān)系圖

5、應(yīng)用場景
ER模型是數(shù)據(jù)庫設(shè)計的理論基礎(chǔ),幾乎應(yīng)用于所有的OLTP系統(tǒng)建模中,此外,在數(shù)據(jù)倉庫的底層ods、dwd也多采用ER關(guān)系模型

三、維度模型
在維度建模過程中,可以將數(shù)據(jù)倉庫中的表劃分為事實(shí)表和維度表兩種類型

1、事實(shí)表
在ER模型中抽象出了實(shí)體、關(guān)系、屬性三種類型,每個操作型事件都會產(chǎn)生一個事實(shí)表,其中涉及到多個實(shí)體,比如:購物下單事件中涉及的主體包括客戶、商品、商家,產(chǎn)生可度量值包括商品數(shù)量、金額、件數(shù)等

2、維表
維度就是看待事物的角度,維表一般為單一主鍵,在ER模型中,實(shí)體會帶有自己描述性的屬性,這些屬性就稱為維度。比如:商品的產(chǎn)生、顏色、單價等

3、模型
維度建模常用的類型有星型模型、雪花模型、星座模型。
(1)星型模型
由一個事實(shí)表和一組維表組成,且所有維表直接與事實(shí)表相連。其特點(diǎn)是不存在漸變維度,有一定數(shù)據(jù)冗余,效率相對較高。在維表設(shè)計方面通常采用降維的方式,通過數(shù)據(jù)冗余來簡化模型,以提高模型易用性和分析效率,標(biāo)準(zhǔn)的星型模型只有一層維度

(2)雪花模型
由一個事實(shí)表和多個維表組成,且有一個或多個維表通過其他維表與事實(shí)表相連。其特點(diǎn)是數(shù)據(jù)冗余較少,但由于表連接的增加,導(dǎo)致效率相對較低。其設(shè)計通常遵循3NF關(guān)系模式,但是往往無法嚴(yán)格遵守,因?yàn)樾韪冻龅男阅艹杀据^高

(3)星座模型
通?;诙鄠€事實(shí)表,且多個事實(shí)表之間共享一些維度表,往往應(yīng)用于數(shù)據(jù)關(guān)系比星型模型和雪花模型更復(fù)雜的場合

4、星型與雪花模型的對比
(1)數(shù)據(jù)冗余
星型模型的維表設(shè)計不遵循3NF關(guān)系模式,維表之間不會直接相連,犧牲了部分存儲空間;雪花模型符合業(yè)務(wù)邏輯設(shè)計,采用3NF關(guān)系模式,有效降低了數(shù)據(jù)冗余

(2)模型性能
星型模型違反3NF關(guān)系模式,采用降維的操作將維度整合,以存儲空間為代價有效降低維度表的連接數(shù)數(shù)量,性能較雪花模型高;雪花模型由于存在維度間的關(guān)聯(lián),采用3NF關(guān)系模式降低冗余,通常在使用過程中,需要連接更多維表,導(dǎo)致性能偏低

(3)ETL難度
星型模型在設(shè)計維度表時違反3NF關(guān)系模式,所以在ETL過程中整合業(yè)務(wù)數(shù)據(jù)維度表有一定的難度,但由于避免附屬維度,可并行化處理;雪花模型符合業(yè)務(wù)ER模型設(shè)計原則,在ETL過程中相對簡單,但是由于附屬模型的限制,ETL任務(wù)并行化較低

5、模型選擇
在工作中常用的設(shè)計模型為星型和雪花模型,在開發(fā)工作中通常會兩者并存,同時保存單層維度和多層維度,從整體而言,星型模型的維度較少,從而減少了多表間的join連接,使得shuffle減少,性能較好
————————————————
版權(quán)聲明:本文為CSDN博主「剁椒魚不要頭」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mcajax/article/details/104343873

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容