概念模型 將業務劃分成幾個主題
邏輯模型 定義各種實體、屬性、關係
物理模型 設計資料物件的物理實現,比如表的命名規範、欄位的命名規範、字段型別等
我先來介紹一下正規化。。。
域都應該是原子性。即資料不可分割 特殊:
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 類和結構進行比較的時候都是比較他們的引用,但是為什麼值型別進行比較的時候會認為他們是相同的,或者是不相同的那,這是因為值型別...