2017年10月31日 星期二

【DB】Normalization

記得唸書的時候有寫過文章,但找不到放哪去了。 這篇最重要是要講二階跟三階正規化的差異。

1NF
重劃一列中包含的多列資料(為多列)。 example1: 1keydata

2NF
重劃不相依於鍵的欄(為新表或其他表的欄)。 example2: 1keydata

3NF
重劃彼此有相依的非鍵欄(為新表或其他表的欄)。 example3: 1keydata

2NF 跟 3NF 是比較容易搞混的,因為兩者的結果都是割出新表或搬動欄到他表,差異如example3 所示,書的類型(GenreType)與書是相依的,所以它已符合 2NF;但同時它也與 GenreID 相依,所以不符合 3NF,故要達成 3NF 要嘛就把 GenreID, GenreType 劃出為一個查找表;不然就刪除 GenreID。

沒有留言:

張貼留言