- 范式是關(guān)系數(shù)據(jù)庫(kù)關(guān)系模式規(guī)范化的標(biāo)準(zhǔn),從規(guī)范化的寬松到嚴(yán)格,分為不同的范式,通常使用的有第一、第二、第三范式及BC范式。范式是建立在函數(shù)依賴基礎(chǔ)上的。
-
1NF
關(guān)系數(shù)據(jù)庫(kù)的每個(gè)屬性具有原子性不可分割 -
2NF
滿足1NF,且每個(gè)非主屬性完全函數(shù)依賴于主鍵,即每個(gè)非主屬性是由整個(gè)主鍵函數(shù)決定,而不能由主鍵的一部分來(lái)決定。 -
3NF
滿足2NF,且任何非主屬性對(duì)主鍵都不存在傳遞依賴。
一般情況下的數(shù)據(jù)庫(kù)只需滿足第三范式即可。 -
4NF
要求把同一表內(nèi)的多對(duì)多關(guān)系刪除 -
5NF
從最終結(jié)構(gòu)重新建立原始結(jié)構(gòu) -
BCNF
符合3NF,且主屬性不依賴于主屬性。若關(guān)系模式R屬于1NF,且每個(gè)屬性都不傳遞依賴于主鍵(主鍵即鍵碼可以有多個(gè)主屬性),則R屬于BCNF。
三大范式只是一般設(shè)計(jì)數(shù)據(jù)庫(kù)的基本理念,可以建立冗余較小、結(jié)構(gòu)合理的數(shù)據(jù)庫(kù)。如果有特殊情況,當(dāng)然要特殊對(duì)待,數(shù)據(jù)庫(kù)設(shè)計(jì)最重要的是看需求跟性能,需求>性能>表結(jié)構(gòu)。所以不能一味的去追求范式建立數(shù)據(jù)庫(kù)。
參考:
1.https://www.cnblogs.com/rosesmall/p/9585655.html
2.https://www.cnblogs.com/knowledgesea/p/3667395.html