資料庫正規化

2021-09-23 19:31:45 字數 1312 閱讀 1840

對錶進行第一正規化(1nf)

如果乙個關係模式r的所有屬性都是不可分的基本資料項,則r∈1nf。

簡單的說,第一正規化就是每乙個屬性都不可再分。不符合第一正規化則不能稱為關聯式資料庫。對於上表,不難看出address是可以再分的,比如」北京市xx路xx小區xx號」,著顯然不符合第一正規化,對其應用第一正規化則需要將此屬性分解到另乙個表,如下:

對錶進行第二正規化(2nf)

若關係模式r∈1nf,並且每乙個非主屬性都

完全函式依賴

於r的碼,則r∈2nf

簡單的說,是表中的屬性必須完全依賴於全部主鍵,而不是部分主鍵.所以只有乙個主鍵的表如果符合第一正規化,那一定是第二正規化。這樣做的目的是進一步減少插入異常和更新異常。在上表中,departmentdescription是由主鍵departmentname所決定,但卻不是由主鍵employeeid決定,所以departmentdescription只依賴於兩個主鍵中的乙個,故要departmentdescription對主鍵是部分依賴,對其應用第二正規化如下表:

對錶進行第三正規化(3nf)

關係模式

r中若不存在這樣的碼x、屬性組y及非主屬性z(z  y), 使得x→y,y→z,成立,則稱r∈ 3nf。

簡單的說,第三正規化是為了消除資料庫中關鍵字之間的依賴關係,在上面經過第二正規化化的表中,可以看出jobdescription(崗位職責)是由job(崗位)所決定,則jobdescription依賴於job,可以看出這不符合第三正規化,對錶進行第三正規化後的關係圖為:

上表中,已經不存在資料庫屬性互相依賴的問題,所以符合第三正規化

下面以《資料庫正規化那些事》中的例子進行比較。

可以看到第二正規化和第三正規化的共同點是:表中的屬性必須完全依賴於全部主鍵。

異同點:第二正規化要求表中的屬性必須完全依賴於全部主鍵,而不是部分主鍵

第三正規化要求是表中的屬性必須完全依賴於全部主鍵,不能依賴於部分主鍵,更不能依賴部分屬性

所以,第三正規化是對第二正規化的進一步規範化。

出處:

資料庫 資料庫正規化

關聯式資料庫的設計規範。不同的規範要求被稱為不同的正規化,越高的正規化資料庫冗餘越小。減少資料庫中資料冗餘的過程 1 第一正規化 1nf 在關係模式r中,當且僅當所有屬性只包含原子值,即每個分量都是不可再分的資料項,則稱r滿足1nf。例如表所示的教師職稱情況關係就不滿足1nf。原因在於,該關係模式中...

資料庫正規化 三正規化

所謂第一正規化 1nf 是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化 1nf 表中的每個域值只能是實體的乙個屬性或乙個屬性的...

資料庫正規化

注 表在定義中被稱為關係,記作r 欄位在定義中被稱作屬性 模式 資料庫中有三種模式,外模式,內模式,模式 粗體是關鍵字的意思 斜體為外來鍵 以前寫下來的,但是用了多年的帳號已經忘了,唯有把文章轉到這裡來了 真暈哦 http blog.csdn.net fantasylu archive 2004 0...