一.為什么要設(shè)計(jì)范式?
避免插入寓辱,刪除艘绍,更新,冗余異常
二秫筏、基本概念
實(shí)體:一張數(shù)據(jù)庫表诱鞠,比如:學(xué)生表,學(xué)生就是一個(gè)實(shí)體
屬性:一張表(實(shí)體)會(huì)有很多屬性这敬,比如一個(gè)學(xué)生實(shí)體會(huì)有學(xué)號航夺,班級等屬性
候選碼:可以決定其他屬性的集合,比如A->B ,A->C,C->D
那么A,B,C就是候選碼
主碼(主關(guān)鍵字):候選碼中的一個(gè)崔涂,例如學(xué)生的學(xué)號就可以作為一個(gè)主碼阳掐,因?yàn)檫@個(gè)學(xué)號可以決定班級,等等其他屬性
元組:表的一行數(shù)據(jù)的集合就是一個(gè)元組
全碼:如果一個(gè)屬性可以確定所有的其他屬性冷蚂,則這個(gè)就是全碼
外碼:一個(gè)屬性(不是主碼)缭保,它是其他表的主碼,則稱它為這個(gè)表的外碼
三帝雇、函數(shù)依賴
1.完全函數(shù)依賴:非主屬性依賴所有的關(guān)鍵字(候選碼)
例如:R實(shí)體有A,B,C,D,E,F的屬性涮俄,其中A,B是候選碼蛉拙,A->C,B->C等等
這就滿足完全函數(shù)的依賴了
2.部分函數(shù)依賴:與上大同小異尸闸,非主屬性部分依賴關(guān)鍵字
比如:A->C,這個(gè)C沒有依賴B,就說明是部分部分函數(shù)依賴
3.傳遞函數(shù)依賴:X Y Z是R的不同屬性子集,就是說XYZ是不同列的
如果X->Y , Y->Z并且X不包含Y吮廉,Y不確定X(Y!->X)苞尝,這樣就是傳遞函數(shù)依賴
4.平凡函數(shù)依賴:U包含XY,X->Y宦芦,并且X包含Y
四宙址、范式
1.第一范式(1NF)
就是說,一個(gè)屬性下面不能再分了调卑,有人看到這里會(huì)感到奇怪抡砂,這個(gè)1NF我要注意什么,感覺現(xiàn)在的數(shù)據(jù)庫系統(tǒng)也沒法設(shè)計(jì)成這樣的恬涧,對注益,現(xiàn)在設(shè)計(jì)不出這樣的了,因?yàn)楝F(xiàn)在的系統(tǒng)就可以自動(dòng)的滿足第一范式了
2.第二范式(2NF)
第二范式就是不允許有部分函數(shù)依賴
例如:A,B是候選碼溯捆,A->C,C沒有依賴B丑搔,這就是部分函數(shù)依賴了,所以這種就不是2NF提揍,那么怎么解決呢
分成兩個(gè)表 T1 A,C
T2 A,B
這樣A->C這就是完全函數(shù)依賴
3.第三范式(3NF)
不允許非關(guān)鍵字對關(guān)鍵字的傳遞函數(shù)依賴
比如:A是關(guān)鍵字 A->B B->C
這里就存在c(非關(guān)鍵字)對A(關(guān)鍵字)的傳遞函數(shù)依賴
以上是自己在復(fù)習(xí)數(shù)據(jù)庫期間整理總結(jié)的啤月,適合應(yīng)付考試