面試——什麼是關係型數據庫,表設計原則的三大範式

一、關係的概念

關係模型能這麼成功,一個重要原因就是有非常堅實的數學基礎。



例如“關係”這個概念,在數學上就是笛卡爾積的一個子集。 


例如 S1 = (a,b,c)  , S2 = (1,2,3) 
那S1和S2的笛卡爾積就是 :
S = S1 * S2 = ((a,1),(a,2),(a,3), (b,1),(b,2) , (b,3) , (c,1),(c,2),(c,3) )


那麼S 的任意一個子集都是關係:
((a,1),(a,2),(b,3) , (c,1),(c,2),(c,3) ) 是一個“關係”
((a,3), (b,1),(b,2) , (b,3) , (c,1),(c,2),(c,3) ) 是另外一個“關係”
((c,3)) 也是關係
......


通俗來說,如果把S1看做列x能取值的集合, S2看做列y 能取值的集合, 那(x, y) 就就是一張表了。

二、三大範式

 第一範式保證每列的原子性,第二範式,每列都必須依賴於主鍵,第三範式,不允許數據傳遞,每列與主鍵都必須是直接關係。第二範式和第三範式的區別是,第二範式要把包含多個實體的不同屬性分成多張表,而第三範式是分表之後,每張表中都只能含有另一張表的id,不能包含另一張表的其他屬性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章