Omdat je geen tekstboekdefinities wilt, losjes gesproken, is een supertoets een reeks kolommen die op unieke wijze een rij definieert.
Deze set kan een of meer elementen bevatten en er kan meer dan één supersleutel voor een tafel zijn. Meestal doe je dit door middel van functionele afhankelijkheden.
In uw voorbeeld neem ik aan:
StudentNumber unique
FamilyName not unique
Degree not unique
Major not unique
Grade not unique
PhoneNumber not unique
In dit geval is een superkey elke combinatie die het studentnummer bevat.
Dus de volgende zijn supertoetsen
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
Neem nu aan dat als PhoneNumber uniek is (die tegenwoordig telefoons deelt), de volgende ook supertoetsen zijn (naast wat ik hierboven heb vermeld).
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
Een kandidaatsleutel is gewoon de "kortste" supersleutel. Teruggaand naar de eerste lijst met supersleutels (d.w.z. het telefoonnummer is niet uniek), de kortste supersleutel is StudentNumber.
De primaire sleutel is meestal alleen de kandidaatsleutel.