1. 程式人生 > >第一、第二、第三正規化之間的理解和比較

第一、第二、第三正規化之間的理解和比較

第一第二第三正規化總結:

第一正規化

屬性不可分割(無重複的列)

第二正規化

非主屬性依賴主屬性

第三正規化

非主屬性不存在傳遞依賴

舉例說明:

例項講解:

第一正規化

如果一個關係模式R的所有屬性都是不可分的基本資料項,則R∈1NF(即R符合第一正規化)。

兩點:

一、每個欄位都只能存放單一值

\

課程有兩個值,不符合第一正規化,可改為如下

\

二、每筆記錄都要能利用一個惟一的主鍵來加以識別

\

這裡出現了重複組,同樣不滿足第一正規化,因為缺乏唯一標識碼,可改為

\

第二正規化 

若關係模式R∈1NF(即R符合第一正規化),並且每一個非主屬性都完全依賴於R的碼,則R∈2NF(即R符合第二正規化)。

\

這裡表的碼為(學號,課程), 即知道這兩項可以確定系名、宿舍、分數,或者是這三項依賴於前兩項,可知

分數完全依賴(學號,課程)系名部分依賴(學號,課程),即知道學號或者課程就能確定系名.宿舍樓部分依賴(學號,課程),即知道學號或者課程就能確定宿舍樓.

由於非主屬性系名,宿舍樓不完全依賴與碼,不符合第二正規化,可改為

表1

\

第三正規化

若關係模式R∈3NF(即R符合第三正規化),則每一個非主屬性既不部分依賴於碼也不傳遞依賴於碼。

\

上面的表2不符合第三正規化,這是因為你知道了系名,同樣也就知道了宿舍樓,稱宿舍樓傳遞依賴於碼(學號),可分解為

\