Поскольку вам не нужны определения из учебников, в общем, суперключ - это набор столбцов, однозначно определяющий строку.
Этот набор может содержать один или несколько элементов, и их может быть больше, чемодин супер ключ для стола.Обычно вы делаете это через функциональные зависимости.
В вашем примере я предполагаю:
StudentNumber unique
FamilyName not unique
Degree not unique
Major not unique
Grade not unique
PhoneNumber not unique
В этом случае суперключ - это любая комбинация, которая содержит номер студента.
Таким образом, следующие суперключи
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
Теперь предположим, что если PhoneNumber уникален (кто использует телефоны в эти дни), то следующие также являются суперключами (в дополнение к тому, что я перечислил выше).
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
Ключ-кандидат - это просто «самый короткий» суперключ.Возвращаясь к первому списку суперключей (т. Е. Номер телефона не является уникальным), самый короткий суперключ - это StudentNumber.
Первичным ключом обычно является только ключ-кандидат.