我對維度建模和正規化建模的一點理解

2021-10-23 16:16:02 字數 2809 閱讀 8807

概念模型   將業務劃分成幾個主題

邏輯模型   定義各種實體、屬性、關係

物理模型   設計資料物件的物理實現,比如表的命名規範、欄位的命名規範、字段型別等

我先來介紹一下正規化。。。

域都應該是原子性。即資料不可分割    特殊:

json

在1nf

的基礎上,實體的屬性完全依賴主關鍵字,不能存在僅依賴主關鍵字一部分的屬性。即不能存在部分函式依賴

2nf的基礎上,任何非主屬性不依賴於其它非主屬性。即消除傳遞依賴

看了這些概念後,一定看的很懵吧。。。

第一正規化

第二正規化

我先來說說 函式依賴是什麼吧。。。

部分函式依賴:

ab一起可以得到

c,單獨通過a或

b都可以得到

c,那麼說

c部分依賴於ab

完全函式依賴:

ab一起可以得到

c,單獨通過a或

b不能得到

c,那麼說c完全

依賴於ab

id和所修課程 可以得到 分數,單獨 學生

id得不到分數 學

生id和所修課程可以得到系名稱,單獨學生

id也可以得到系名稱

第三正規化

那傳遞依賴又是啥啊。。

比如:a=>b    b=>c  但c

得不到a

,我們就說

c傳遞依賴於a

我們總結一下:

式越高,冗餘越

少,資料越規範

正規化越高,越靈活,擴充套件性越強,使用成本越高

說完了正規化。那正規化建模是什麼呢

正規化建模將事物抽象為 實體(

entity

)、屬性、關係

(relationship)

來表示資料關聯和事物描述。

以**購物為例,理解實體、屬性、關係:

實體:買家、賣家、商品   

關係:買家和賣家發生交易,買家和商品發生購買

,賣家和商品發生銷售

屬性:實體屬性

(買家屬性、賣家屬性、商品屬性

)和關係屬性(購

買金額,下單時間)

體之間建立關係,存在對照關係:

1:1  

人和身份證號 

1:n  

班級和學生      實體之間通過外來鍵聯絡

n:m 

學生和課程

我們實戰一下。。。

學生選課,

構建er

圖1、抽象實體 2

、梳理實體間關係 3

、梳理實體屬性和關係屬性 4

、er圖

模型是資料庫設計的理論基礎,

bill inmon

提出使用

er模型構建數

倉。對於

er模型,我們需要梳理清楚企業各個業務系統的實體,實體間的關係,實體的屬性,它的實

施周期長

,而網際網路行業是不斷探索,不斷迭代的過程,當你還沒有梳理清楚的時候,

業務就已經發生了改

變,甚至當你的數倉還沒建好的時候,有可能這個企業已經黃了。所以就有了我接下來講的維度建模

維度建模是面向分析場景而生

,針對分析場景構建數倉模型。

它重點關注

快速、靈活的解決分析需求,同時能夠提供大規模資料的快速響應效能

。不需要完整的梳理企業業務流程和數

據,實施週期根據主題邊界而定,容易快速實

現,這也符合網際網路行業的特點。

星型模型:由乙個事實表和一組維度表組成,每個維表都有乙個維度作為主鍵,事實表居中,多個維表呈輻射狀分布於四周,並與事實表連線,形成乙個星型結構

雪花模型:在星型模型的基礎上,基於正規化理論進一步層次化,將某些維表擴充套件成事實表,最終形成雪花狀結構

我們發現:星型模型還是雪花模型的

主要區別在於維度表的拆分

,對於雪花模型,維度表的設計更加規範

於星型模型,採用降維的操作,利用

空間換時間的方式提高易用和分析效率

星座模型是基於多個事實表的,只跟你的資料和需求有關係,跟設計沒有半毛錢關係,不用選擇

關於維度建模的一點總結

公司的資料都有一定的複雜性,處理時很容易被其影響,只有總結並掌握乙個好的設計原則,才能應對紛繁複雜的業務細節。先總結一下資料倉儲工具箱中的提到的維度建模的4步過程 第一步 選擇業務過程 業務過程的公共特徵 1 業務過程通常表示業務執行的活動,用行為動詞表示 2 業務過程通常由某一操作型系統來支撐,如...

我對stl和GP的一點理解

什麼是stl?什麼是template?其實之所以要有stl,要有gp,那是因為對於一些不同型別的資料,他們常常有一些相同的操作,比如同一型別的兩個資料之間相加,相減。而我們常常對不同型別的資料又會有一些相同的操作的過程,或者我喜歡稱為有順序的一組操作集合,這個過程中,除了物件的型別不一樣,其他的都一...

我對類和結構的一點理解

1 首先說明一下到目前為止我掌握的一點點的知識。a 類是引用型別。可以自動以預設的構造的函式。b 結構是值型別,所有的值型別都是基於結構型別的,不可以自動以預設的建構函式。c 類和結構進行比較的時候都是比較他們的引用,但是為什麼值型別進行比較的時候會認為他們是相同的,或者是不相同的那,這是因為值型別...