第一正規化(1NF)
指在資料表中的所有記錄之屬性內含值都是基元值(Atomic (Atomic Value)。亦即無重覆項目群。
1.每一個欄位只能有一個基元值(Atomic) (Atomic)即單一值。 例如:課程名稱欄位中不能存入兩科或兩科以上的課程名稱。
2. 沒有任何兩筆以上的資料是完全重覆。 3.資料表中有主鍵, 而其他所有的欄位都相依於「主鍵」。 例如1:姓名與性別欄位都相依於「學號」欄位。
在完成了第一正規化之後,是否發現在資料表中產生許多重複的資
料。如此, 不但浪費儲存的空間, 更容易造成新增、修改及刪除資料時的
異常狀況,說明如下。
(1) 新增異常檢查(Insert Anomaly) (Insert Anomaly)無法先新增課程資料,如「課程代碼」及「課程名稱」,要等選課之後,才能新增。 原因:以上的新增動作違反「實體完整性規則」,因為,主鍵或複合主鍵不可以為空值 NULL。
(2)修改異常檢查(Update Anomaly) (Update Anomaly)
第二正規化的規則
如果資料表符合以下的條件, 我們說這個資料表符合第二階正規化的形 式 (Second Normal Form, (Second Normal Form, 簡稱 2NF):
符合1NF 每一非鍵屬性(如:姓名、性別…)必須「完全相依」於主鍵(學號);即 不可「部分功能相依」於主鍵。 換言之,「部分功能相依」只有當「主鍵」是由「多個欄位」組成 時才會發生(亦即複合主鍵),也就是當某些欄位只與「主鍵中的部分欄 位」有「相依性」, 而與另一部分的欄位沒有相依性。
第三正規化的規則
如果資料表符合以下條件, 我們就說這個資料表符合第三階正規化的形 式 (Third Normal Form, (Third Normal Form, 簡稱 3NF):
符合2NF 各欄位與「主鍵」之間沒有「遞移相依」的關係。 【如何找遞移相依呢? 】 若要找出資料表中各欄位與「主鍵」之間的遞移相依性, 最簡單的方法 就是從左到右掃瞄資料表中各欄位有沒有『與主鍵無關的相依性』存 在。
可能的情況如下:
1.如果有存在時,則代表有「遞移相依」的關係
2. 如果有不存在時,則代表沒有「遞移相依」的關係
BCNF正規化
是由Boyce和Codd於1974年所提出來的3NF的改良式。其條件比 3NF更加嚴苛。因此每一個符合BCNF的關聯一定也是3NF。 對於大部分資料庫來說, 通常只需要執行到第三階段的正規化就足夠了。 【適用時機】 如果資料表的「主鍵」是由「多個欄位」組成的, 則必須再執行 BoyceCodd 正規化。