原住民族考試四等考試-電子工程類科計算機概要114 年第 12 題單選題
下列是某個學校選課系統的資料庫,其中一個表格如下:Enrollment(StudentID, ClassID, Classroom)。這個表格有以下規範:(1)StudentID 是主鍵(Primary Key)(2)ClassID 屬性和 Classroom 屬性有相依性。這個表格有違反那一種正規化(Normalization)?
A第一正規化(1NF)
B第二正規化(2NF)
C第三正規化(3NF)正確答案
DBCNF 正規化
C正確答案
表格主鍵為單一屬性故符合2NF,但非主鍵屬性間存在相依性導致遞移相依,違反了第三正規化(3NF)。
為什麼答案是 C
第三正規化(3NF)要求在符合2NF的前提下,消除「遞移相依」。題目指出ClassID與Classroom有相依性(ClassID -> Classroom),導致非主鍵屬性依賴另一個非主鍵屬性,形成 StudentID -> ClassID -> Classroom 的遞移相依,因此違反3NF。
載入中…
完整詳解
Pro · 無限重點 表格主鍵為單一屬性故符合2NF,但非主鍵屬性間存在相依性導致遞移相依,違反了第三正規化(3NF)。
看到題目描述「非主鍵屬性(ClassID)和非主鍵屬性(Classroom)之間有相依性」,即可秒判斷為遞移相依,違反3NF。
逐選項分析
A✕
第一正規化(1NF)要求資料表中的每個欄位值都是基元值(不可再分,無多值屬性)。題目未提及多值屬性的情況,預設已符合1NF。
B✕ 陷阱
第二正規化(2NF)要求在符合1NF的前提下,消除「部分相依」。因為本題的主鍵只有單一屬性(StudentID),不可能發生部分相依,故必定符合2NF。
C✓ 正確
第三正規化(3NF)要求在符合2NF的前提下,消除「遞移相依」。題目指出ClassID與Classroom有相依性(ClassID -> Classroom),導致非主鍵屬性依賴另一個非主鍵屬性,形成 StudentID -> ClassID -> Classroom 的遞移相依,因此違反3NF。
D✕
BCNF要求所有的決定因子都必須是候選鍵。雖然本表也違反BCNF,但在正規化的檢驗順序中,它在3NF的階段就已經不符合了,因此最直接且標準的答案是違反3NF。
資料庫正規化(Normalization)核心原則
| 正規化層級 | 消除目標 | 達成條件 |
|---|
| 1NF (第一正規化) | 多值屬性、重複群 | 所有屬性值皆為不可再分的基元值 (Atomic) |
| 2NF (第二正規化) | 部分相依 (Partial Dependency) | 符合1NF,且非主鍵屬性「完全相依」於整個主鍵 (複合主鍵才需檢查) |
| 3NF (第三正規化) | 遞移相依 (Transitive Dependency) | 符合2NF,且非主鍵屬性之間「不可互相相依」 |
| BCNF (Boyce-Codd) | 主鍵屬性對非主鍵屬性的相依 | 符合3NF,且所有的決定因子 (Determinant) 皆為候選鍵 |
實務上的選課系統主鍵通常是複合鍵 (StudentID, ClassID),但解題時【必須完全依照題目給定的假設】。題目明示主鍵只有 StudentID 單一屬性,因此絕對不會有「部分相依」的問題(直接符合2NF)。考生若帶入現實經驗去思考複合主鍵,就容易誤選2NF。