文章專區

網頁程式技術探討

資料庫正規化

資料庫正規化:


 

正規化的目的就是要減少資料庫中重複的資料,以便快速的找到所需的資料,提高資料庫的效能。重複的資料會浪費磁碟空間,並產生維護方面的問題。


 

正規化型式:
資料庫正規化有一些規則。每條規則都稱為「正規化形式」。如果遵守第一條規則,資料庫就稱為屬於「第一正規化形式」
 

(1NF)。如果遵守前三條規則,資料庫就被視為屬於「第三正規化形式」(3NF)。

 


 

正規化型式有:
‧第一正規化型式 (First Normal Form, 1NF)。
目的是讓每個資料表都會有一個主鍵 (Primary Key, PK),而且在資料表中,每一列的每一欄所存放的值必需是單一值。


 

‧第二正規化型式 (Second Normal Form, 2NF)。
目的在去除僅與部分 PK 相依的欄位,也就是說,非 PK 的欄位不能只與 PK 中的部分欄位有關係。


 

‧第三正規化型式 (Third Normal Form, 3NF)。
目的在除去所有非 PK 的欄位間的相依性,亦即所有非 PK 的欄位之間不能有從屬關係。


 

‧其他正規化形式:
第四正規形式,也稱為「Boyce Codd 正規形式」(BCNF);而第五正規形式雖然存在,但實際設計時則很少考慮此形式。忽略這些規則可能無法設計出完美的資料庫,但不會影響資料庫功能。


 

正規化的步驟:
第一正規化型式:
  ‧刪除各個資料表中的重複群組。
  ‧為每一組關聯的資料建立不同的資料表。
  ‧使用 PK 識別每一組關聯的資料。


 

第二正規化型式:
  ‧為可套用於多筆記錄的多組值建立不同的資料表。
  ‧使用 FK (Foreign Key),讓這些資料表產生關聯。

第三正規化型式:
  ‧刪除不依賴索引鍵的欄位。
 


 

Posted by 程式設計師 / wyvern