四、下面名為「Register」的表格列舉學生修課的表現,其第一列為表格的欄位名稱,而欄位的意義依序為學號(ID)、姓名(Name) 、課名(Title)、學分數(Credit)、成績(Grade),並假設此表格的主鍵由「ID」和「Title」 兩個屬性所共同組合而成。請說明 BCNF(Boyce-Codd Normal Form)正規化格式的定義,與此表格未符合 BCNF 的原因,以及將此表格經過正規化處理後的結果。
BCNF中,所有非平凡的功能相依 X → Y 中,X 必須為候選鍵。
題目主鍵由「ID」和「Title」 兩個屬性所共同組合而成,為複合鍵,
而表格中ID → Name(一位學生的 ID 可唯一對應一個 Name),ID並非候選鍵,
表格中Title → Credit(每門課的課名可唯一對應一個學分數),Title並非候選鍵,
故本表格未符合BCNF。
可進行正規化如下:
因為ID → Name,所以建表格R1{ ID,Name}
因為Title → Credit,所以建表格R2{ Title,Credit}
再建表格R3 Register{ ID,Title,Grade} ,參考外來鍵FK:R1. ID、R2.Title
上述分解後無遞移相依→符合3NF
所有決定因子皆為候選鍵→符合BCNF