資料庫的正規化學習筆記

keeking發表於2009-08-10

資料的正規化分析

何謂正規化:正規化就是讓資料庫中重復的資料減少到最少,讓我們能夠快速地找到所要的資料,以提高關聯式資料庫的效能.

資料庫的正規化共分為:第一正規化(1st Normarl Form,1NF),第二正規化,第三正規化,BCNF(Boyce-Codd Normal Form),第四正規化,第五正規化等多個階段.
不過對於一個資料庫設計來說,通常只要執行到BCNF即可.其他的更高的正規化只有在特殊的情況下才會用的到.


正規化的過程是循序漸進的,資料表必須滿足第一正規化的條件下,才能進行第二正規化.也就是說第二正規化必須建立在符合第一正規化的資料表上,
依次類推,因此,第一正規化是所有正規化的基礎.

第一正規化:
1.資料表中必須有PRIMARY KEY,而其他所有的欄位都相依與PRIMARY KEY.相依是指一個資料表中,欄位B的值必須搭配欄位A才有意義.
2,每個欄位中只儲存單一值,例如同一筆記錄的姓名欄位中不能放2個人的姓名
3.資料表中沒有意義相同的多個欄位.

反之,若資料表不符合以上規則,則成為非正規化的資料表.

不符合1NF的缺點

1.欄位長度無法確定
2.降低存取資料的效率

第二正規化:
1.符合第一正規化
2.各欄位與PRIMARY KEY 沒有部分相依的關系.(部分相依只有在primary key由多個欄位組成時才會產生,它是由某些欄位只有主鍵中
部分欄位有相依性,而另一部分的欄位沒有相依性)

部分相依會造成以下問題:
1 .新增資料可能無法錄入
2.更改資料時沒有效率
3.刪除資料時可能會同時刪除仍有用的資料.

第三正規化:

1.符合第二正規化
2.個欄位與主鍵間沒有間接相依的關系


對於大多數資料庫來說,通常只需要執行到3NF就足夠了.但如果資料表的主鍵由多個欄位組成,既可以Boyece-Codd正規化來繼續檢查
也成為廣義的3NF

1.符合2NF
2.各欄位與主鍵沒有間接相依的關系
3.主鍵中的各欄位不可以相依與其他非主鍵的欄位.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7899089/viewspace-611721/,如需轉載,請註明出處,否則將追究法律責任。

相關文章