superkey 就是能唯一指出一列的欄位組合

「鍵」這組詞聽起來抽象,但判斷方法是一個猜謎遊戲:我給你某幾個欄位的值,你能不能在表裡唯一指出「就是這一列」?

拿一張排課表來玩(每位老師只教一門課):

學生課程老師
①小明資料庫張老師
②小華資料庫張老師
③小美資料庫李老師
④小明網路王老師
我給你指得出唯一一列嗎
老師 = 張老師①② 兩列❌
課程 = 資料庫①②③ 三列❌
學生 = 小明①④ 兩列❌
課程 = 資料庫, 老師 = 張老師①② 兩列❌
學生 = 小明, 課程 = 資料庫只有 ①✅
學生 = 小明, 老師 = 張老師只有 ①✅

三個詞就此定義完畢:

詞意思這張表的例子
superkey能唯一指出一列的欄位組合(學生,課程)、(學生,老師)、(學生,課程,老師)
候選鍵最小的 superkey(再拿掉任一欄就不行)(學生,課程)、(學生,老師)
鍵值欄位(prime attribute)出現在任何一個候選鍵裡的欄位學生、課程、老師 — 三個全是

兩個常被跳過的點:

(學生, 老師) 為什麼也是候選鍵:因為老師只教一門課,說出「小明 + 張老師」就等於說出了課程,三欄全湊齊。候選鍵取決於領域規則,不是看資料長相猜的。