關(guān)系數(shù)據(jù)庫(kù)六種范式:
第一范式(1NF)等孵、
第二范式(2NF)考杉、
第三范式(3NF)影兽、
巴斯-科德范式(BCNF)揭斧、
第四范式(4NF)
和第五范式(5NF,又稱完美范式)
1NF的定義為:符合1NF的關(guān)系中的每個(gè)屬性都不可再分,1NF是所有關(guān)系型數(shù)據(jù)庫(kù)的最基本要求讹开。簡(jiǎn)而言之盅视,第一范式就是無(wú)重復(fù)的域。
但是僅僅符合1NF的設(shè)計(jì)旦万,仍然會(huì)存在數(shù)據(jù)冗余過(guò)大闹击,插入異常,刪除異常成艘,修改異常的問(wèn)題赏半。
2NF 在 1NF的基礎(chǔ)之上,消除了非主屬性對(duì)于碼的部分函數(shù)依賴
- 函數(shù)依賴:若字一張表中淆两,在屬性(或?qū)傩越M)X的值確定的情況下断箫,必定能確定屬性Y的值,那么就可以說(shuō)Y函數(shù)依賴于X秋冰,寫作 X—>Y
1仲义、完全函數(shù)依賴? ? ? 在一張表中,若 X → Y丹莲,且對(duì)于 X 的任何一個(gè)真子集(假如屬性組 X 包含超過(guò)一個(gè)屬性的 話)光坝,X ' → Y 不成立,那么我們稱 Y 對(duì)于 X 完全函數(shù)依賴甥材,記作 X F→ Y盯另。
2、部分函數(shù)依賴? ? ? 假如 Y 函數(shù)依賴于 X洲赵,但同時(shí) Y 并不完全函數(shù)依賴于 X鸳惯,那么我們就稱 Y 部分函數(shù)依賴于 X,記作 X? P→ Y
3叠萍、傳遞函數(shù)依賴 假如 Z 函數(shù)依賴于 Y芝发,且 Y 函數(shù)依賴于 X (『Y 不包含于 X,且 X 不函數(shù)依賴于 Y』這個(gè) 前提)苛谷,那么我們就稱 Z 傳遞函數(shù)依賴于 X 辅鲸,記作 X T→ Z
- 碼:設(shè)K為某表中的一個(gè)屬性或?qū)傩越M,若除K之外的所有屬性都完全函數(shù)依賴于K腹殿,那么我們稱K為候選碼《簡(jiǎn)稱為碼独悴。 假如當(dāng)K確定的情況下,該表除K之外的所有屬性的值也就隨之確定锣尉,那么K就是碼刻炒。
- 非主屬性: 包含在任何一個(gè)碼中的屬性成為主屬性。
整那么多理解起來(lái)挺麻煩自沧,? 簡(jiǎn)而言之坟奥,第二范式就是在第一范式的基礎(chǔ)上屬性完全依賴于主鍵。
3NF在2NF的基礎(chǔ)之上,消除了非主屬性對(duì)于碼的傳遞函數(shù)依賴爱谁。第三范式就是屬性不依賴于其它非主屬性晒喷,也就是在滿足2NF的基礎(chǔ)上,任何非主屬性不得傳遞依賴于主屬性管行。
基本解決了數(shù)據(jù)冗余過(guò)大厨埋,插入異常,修改異常捐顷,刪除異常的問(wèn)題荡陷。
暫時(shí)就到這了,有時(shí)候某些單個(gè)的概念還好迅涮,組合到一塊就有點(diǎn)天書的味道了废赞,簡(jiǎn)單的總結(jié)下,方便理解:
一范式就是屬性不可分割叮姑,屬性是是什么唉地?就是表中的字段。
二范式就是要有主鍵传透,要求其他字段都依賴于主鍵耘沼。
三范式就是要消除傳遞依賴,方便理解朱盐,可以看做是“消除冗余”群嗤。
(消除冗余 就是各種信息只在一個(gè)地方存儲(chǔ),不出現(xiàn)在多張表中)