資料庫基礎
員工表格(員工編號, 姓名, 部門代碼, 部門名稱)的主鍵為員工編號,每個欄位都只有一個值。函數相依為 員工編號 → 姓名、員工編號 → 部門代碼、部門代碼 → 部門名稱。此表格的正規化形式,下列何者正確?
- A屬於第二正規化,但不屬於第三正規化
- B屬於第一正規化,但不屬於第二正規化
- C屬於第三正規化
查看答案與解析
正確答案:A. 屬於第二正規化,但不屬於第三正規化
每個欄位都只有一個不重複的值,因此屬於第一正規化。主鍵只有員工編號一個欄位,不可能出現只相依於主鍵一部分的部分函數相依,因此也屬於第二正規化。然而,部門名稱是像 員工編號 → 部門代碼 → 部門名稱 這樣,經由不是主鍵的部門代碼而決定的遞移函數相依,因此不屬於第三正規化。照這樣下去,同一部門每位員工的資料列都會重複記錄部門名稱,變更部門名稱時就必須改寫多筆資料列。把部門表格(部門代碼, 部門名稱)分出,員工表格只保留部門代碼,就成為第三正規化。此時員工表格的部門代碼,成為參照部門表格的外鍵。
- A. 正確。存在 部門代碼 → 部門名稱 的遞移函數相依,因此不屬於第三正規化。
- B. 主鍵只有一個欄位,沒有部分函數相依,滿足第二正規化的條件。
- C. 部門名稱經由不是主鍵的部門代碼而決定,存在遞移函數相依,因此不屬於第三正規化。