Eftersom du inte vill ha läroboksdefinitioner, löst sett, är en supernyckel en uppsättning kolumner som unikt definierar en rad.
Denna uppsättning kan ha ett eller flera element, och det kan finnas mer än en supernyckel för ett bord. Du brukar göra detta genom funktionella beroenden.
I ditt exempel antar jag:
StudentNumber unique
FamilyName not unique
Degree not unique
Major not unique
Grade not unique
PhoneNumber not unique
I det här fallet är en supernyckel vilken kombination som helst som innehåller studentnumret.
Så följande är supernycklar
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
Anta nu att om Telefonnummer är unikt (som delar telefoner nu för tiden), så är följande också supernycklar (utöver det jag har listat ovan).
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
En kandidatnyckel är helt enkelt den "kortaste" supernyckeln. Om du går tillbaka till den första listan över supernycklar (dvs. telefonnumret är inte unikt), är den kortaste supernyckeln StudentNumber.
Den primära nyckeln är vanligtvis bara kandidatnyckeln.