2013年8月27日 星期二

資料庫正規化基本概念

在資料庫的設計當中,有所謂的正規化(Normal Form)
正規化的出現,是為了消除不一致性,以及新增、修改、刪除上面的問題

正規化中比較常用的是:
  1.   第一正規化(1NF)
  2.   第二正規化(2NF)
  3.   第三正規化(3NF)
  4.   Boyce-Codd正規化(BCNF)


第一正規化
必須要消除重複的值組,從實際的table來看,就是在一個row的某個欄位當中,只能有一個值,如果有超過一個值的話,有N個值就必須拆成N個row

第二正規化
符合第一正規化並且
除了主鍵之外的屬性,都必須完全相依於主鍵,也就是主鍵可以決定所有除了主鍵之外的屬性

第三正規化
符合第二正規化並且
消除功能相依中的\遞移相依,也就是主鍵以外的屬性不能夠是以遞移相依的方式相依於主鍵

Boyce-Codd正規化(BCNF)
符合第三正規化並且
當主鍵為複合式的鍵,也就是主鍵為超過一個屬性組成的,就要檢查主鍵內的單一屬性是否與其他欄位有相依的關係,若有,就必須拆開

沒有留言:

張貼留言