正規化的出現,是為了消除不一致性,以及新增、修改、刪除上面的問題
正規化中比較常用的是:
- 第一正規化(1NF)
- 第二正規化(2NF)
- 第三正規化(3NF)
- Boyce-Codd正規化(BCNF)
第一正規化
必須要消除重複的值組,從實際的table來看,就是在一個row的某個欄位當中,只能有一個值,如果有超過一個值的話,有N個值就必須拆成N個row
第二正規化
符合第一正規化並且
除了主鍵之外的屬性,都必須完全相依於主鍵,也就是主鍵可以決定所有除了主鍵之外的屬性
第三正規化
符合第二正規化並且
消除功能相依中的\遞移相依,也就是主鍵以外的屬性不能夠是以遞移相依的方式相依於主鍵
Boyce-Codd正規化(BCNF)
符合第三正規化並且
當主鍵為複合式的鍵,也就是主鍵為超過一個屬性組成的,就要檢查主鍵內的單一屬性是否與其他欄位有相依的關係,若有,就必須拆開
沒有留言:
張貼留言