第二正規化

第二正規化（2NF）是資料庫正規化所使用的正規形式。規則是要求資料表裡的所有資料都要和該資料表的鍵（主键与候选键）有完全依赖关系：每个非键属性必须独立于任意一个候选键的任意一部分属性。如果有哪些資料只和一个鍵的一部份有關的話，就得把它們獨立出來變成另一個資料表。如果一個資料表的键只有單個欄位的話，它就一定符合第二正規化。

一個資料表符合第二正規化若且唯若
 它符合第一正規化
 所有非键字段都不能是候选键非全体字段的函数

範例
有一個資料表記錄了設備元件的資訊，如下所示：

+ 元件來源 元件 ID （主键） 價格 供應商ID （主键） 供應商名稱 供應商住址 65 59.99 1 Stylized Parts VA 73 20.00 1 Stylized Parts VA 65 69.99 2 ACME Industries CA

這個資料表的每個值都是單一值，所以它符合第一正規化。因為同一個元件有可能由不同的供應商提供，所以得把元件 ID 和供應商 ID 合在一起組成一個主键。

元件（关键词）和價格之間的關係很正確：同一個元件在不同供應商有可能會有不同的報價，所以價格確實和主鍵完全相關（完全依赖）。

另一方面，供應商的名稱和住址就只和供應商 ID 有關（部分依赖），這不符合第二正規化的原則。仔細看就會發現 "Stylized Parts" 這個名稱和 "VA" 這個住址重複出現了兩次；要是它改名了或是被其他公司併購了怎麼辦？這時候最好把這些資料獨立出新的資料表：

+ 供應商 供應商 ID （主键） 名稱 住址 1 Stylized Parts VA 2 ACME Industries CA

這麼一來，原本的 "元件來源" 資料表就得要做相對應的改動：

+ 元件來源 元件 ID （主键） 價格 供應商 ID（主键、非关键词） 65 59.99 1 73 20.00 1 65 69.99 2

檢查資料表裡的每個欄位，確認它們是不是都和关键词完全相關，
這樣才能知道這個資料表是不是符合第二正規化；
如果不是的話，就把那些不完全相關的欄位獨立出一個資料表。
接下來的步驟是要確保所有不是鍵的欄位都和彼此沒有相依關係，這就叫做第三正規化。

 参考文献 

 Litt's Tips: Normalization 
 Rules Of Data Normalization
 Date, C. J., & Lorentzos, N., & Darwen, H. （2002）. Temporal Data & the Relational Model  （1st ed.）. Morgan Kaufmann. ISBN 1-55860-855-9.
 Date, C. J. （1999）,  An Introduction to Database Systems （8th ed.）. Addison-Wesley Longman. ISBN 0-321-19784-4.
 Kent, W. （1983） A Simple Guide to Five Normal Forms in Relational Database Theory , Communications of the ACM, vol. 26, pp. 120-125
 Date, C.J., & Darwen, H., & Pascal, F. Database Debunkings 
 H.-J. Schek, P.Pistor Data Structures for an Integrated Data Base Management and Information Retrieval System

外部連結
Database Nomalization Basics  by Mike Chapple （About.com）
An Introduction to Database Normalization by Mike Hillyer.
Normalization by ITS, University of Texas.
A tutorial on the first 3 normal forms by Fred Coulson
Free PDF poster available by Marc Rettig
Description of the database normalization basics  by Microsoft

2NF

de:Normalisierung (Datenbank)#Zweite Normalform (2NF)