Vì bạn không muốn các định nghĩa trong sách giáo khoa, nói một cách lỏng lẻo, siêu khóa là một tập hợp các cột xác định duy nhất một hàng.
Tập hợp này có thể có một hoặc nhiều phần tử và có thể có nhiều hơn một siêu khóa cho một bảng. Bạn thường làm điều này thông qua các phụ thuộc hàm.
Trong ví dụ của bạn, tôi giả sử:
StudentNumber unique
FamilyName not unique
Degree not unique
Major not unique
Grade not unique
PhoneNumber not unique
Trong trường hợp này, superkey là bất kỳ kết hợp nào có chứa số sinh viên.
Vì vậy, sau đây là các siêu khóa
StudentNumber
StudentNumber, FamilyName
StudentNumber, FamilyName, Degree
StudentNumber, FamilyName, Degree, Major
StudentNumber, FamilyName, Degree, Major, Grade
StudentNumber, FamilyName, Degree, Major, Grade, PhoneNumber
StudentNumber, Degree
StudentNumber, Degree, Major
StudentNumber, Degree, Major, Grade
StudentNumber, Degree, Major, Grade, PhoneNumber
StudentNumber, Major
StudentNumber, Major, Grade
StudentNumber, Major, Grade, PhoneNumber
StudentNumber, Grade
StudentNumber, Grade, PhoneNumber
StudentNumber, PhoneNumber
Bây giờ, giả sử, nếu PhoneNumber là duy nhất (những người dùng chung điện thoại ngày nay), thì những thứ sau cũng là siêu khóa (ngoài những gì tôi đã liệt kê ở trên).
PhoneNumber
PhoneNumber, Grade,
PhoneNumber, Major, Grade
PhoneNumber, Degree, Major, Grade
PhoneNumber, FamilyName, Degree, Major, Grade
PhoneNumber, Major
PhoneNumber, Degree, Major
PhoneNumber, FamilyName, Degree, Major
PhoneNumber, StudentNumber, FamilyName, Degree, Major
PhoneNumber, Degree
PhoneNumber, FamilyName, Degree
PhoneNumber, StudentNumber, FamilyName, Degree
PhoneNumber, FamilyName
PhoneNumber, StudentNumber, FamilyName
Khoá ứng cử viên chỉ đơn giản là siêu khoá "ngắn nhất". Quay trở lại danh sách superkey đầu tiên (tức là số điện thoại không phải là duy nhất), superkey ngắn nhất là StudentNumber.
Khóa chính thường chỉ là khóa ứng viên.