Oracle
 sql >> Base de données >  >> RDS >> Oracle

Superclé, clé candidate et clé primaire

Puisque vous ne voulez pas de définitions de manuels, en gros, une super clé est un ensemble de colonnes qui définit de manière unique une ligne.

Cet ensemble peut avoir un ou plusieurs éléments, et il peut y avoir plus d'une super clé pour une table. Vous le faites généralement par le biais de dépendances fonctionnelles.

Dans votre exemple, je suppose :

StudentNumber    unique
FamilyName     not unique
Degree     not unique
Major      not unique
Grade      not unique
PhoneNumber    not unique

Dans ce cas, une super-clé est toute combinaison contenant le numéro d'étudiant.

Donc, ce qui suit sont des super-clés

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

Supposons maintenant que si PhoneNumber est unique (qui partage les téléphones de nos jours), les éléments suivants sont également des super-clés (en plus de ce que j'ai énuméré ci-dessus).

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

Une clé candidate est simplement la super clé "la plus courte". Pour en revenir à la 1ère liste de super-clés (c'est-à-dire que le numéro de téléphone n'est pas unique), la super-clé la plus courte est StudentNumber.

La clé primaire n'est généralement que la clé candidate.