Oracle
 sql >> Database >  >> RDS >> Oracle

Superchiave, chiave candidata e chiave primaria

Dal momento che non vuoi le definizioni dei libri di testo, in parole povere, una super chiave è un insieme di colonne che definisce in modo univoco una riga.

Questo set può avere uno o più elementi e può esserci più di una super chiave per una tabella. Di solito lo fai attraverso dipendenze funzionali.

Nel tuo esempio, presumo:

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

In questo caso, un supertasto è una qualsiasi combinazione che contiene il numero dello studente.

Quindi i seguenti sono i supertasti

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

Ora supponiamo che se PhoneNumber è univoco (chi condivide i telefoni in questi giorni), anche i seguenti sono supertasti (oltre a quelli che ho elencato sopra).

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

Una chiave candidata è semplicemente la superchiave "più corta". Tornando al 1° elenco di supertasti (ovvero il numero di telefono non è univoco), il supertasto più breve è StudentNumber.

La chiave primaria è solitamente solo la chiave candidata.