規範化理論-函數依賴-範式-簡單粗暴

一.爲什麼要設計範式?
避免插入,刪除,更新,冗餘異常

二、基本概念
實體:一張數據庫表,比如:學生表,學生就是一個實體
屬性:一張表(實體)會有很多屬性,比如一個學生實體會有學號,班級等屬性
候選碼:可以決定其他屬性的集合,比如A->B ,A->C,C->D
那麼A,B,C就是候選碼
主碼(主關鍵字):候選碼中的一個,例如學生的學號就可以作爲一個主碼,因爲這個學號可以決定班級,等等其他屬性
元組:表的一行數據的集合就是一個元組
全碼:如果一個屬性可以確定所有的其他屬性,則這個就是全碼
外碼:一個屬性(不是主碼),它是其他表的主碼,則稱它爲這個表的外碼

三、函數依賴
1.完全函數依賴:非主屬性依賴所有的關鍵字(候選碼)
例如:R實體有A,B,C,D,E,F的屬性,其中A,B是候選碼,A->C,B->C等等
這就滿足完全函數的依賴了

2.部分函數依賴:與上大同小異,非主屬性部分依賴關鍵字
比如:A->C,這個C沒有依賴B,就說明是部分部分函數依賴

3.傳遞函數依賴:X Y Z是R的不同屬性子集,就是說XYZ是不同列的
如果X->Y , Y->Z並且X不包含Y,Y不確定X(Y!->X),這樣就是傳遞函數依賴

4.平凡函數依賴:U包含XY,X->Y,並且X包含Y

這裏寫圖片描述

四、範式
1.第一範式(1NF)
這裏寫圖片描述

就是說,一個屬性下面不能再分了,有人看到這裏會感到奇怪,這個1NF我要注意什麼,感覺現在的數據庫系統也沒法設計成這樣的,對,現在設計不出這樣的了,因爲現在的系統就可以自動的滿足第一範式了

2.第二範式(2NF)
第二範式就是不允許有部分函數依賴
例如:A,B是候選碼,A->C,C沒有依賴B,這就是部分函數依賴了,所以這種就不是2NF,那麼怎麼解決呢
分成兩個表 T1 A,C
T2 A,B
這樣A->C這就是完全函數依賴

3.第三範式(3NF)
不允許非關鍵字對關鍵字的傳遞函數依賴
比如:A是關鍵字 A->B B->C
這裏就存在c(非關鍵字)對A(關鍵字)的傳遞函數依賴

以上是自己在複習數據庫期間整理總結的,適合應付考試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章