Che cos'è una chiave esterna in un database relazionale?
Un semplice esempio
Un semplice esempio di una chiave esterna in un database è una tabella primaria "Studente" (Studente) con Student_ID come chiave primaria. Nella tabella secondaria correlata "Course_Enrollment" (Course_Matriculation) con Course_ID come chiave primaria, per ogni corso in cui uno studente si è iscritto, appare la chiave esterna Student_ID della tabella "Studente".
Regola dell'integrità referenziale
La regola di integrità referenziale afferma che qualsiasi valore di chiave esterna non nullo in una tabella secondaria deve fare riferimento a un valore di chiave primaria nella sua tabella primaria nel database. Nell'esempio della Fase 1 non avrebbe senso, nel database, avere uno studente iscritto a un corso quando non ci sono informazioni sullo studente nella tabella "Studente". Questa regola impone la coerenza in un database.
Eliminazioni a cascata
Ogni record secondario in una relazione di chiave esterna deve avere un record primario corrispondente in base alla regola dell'integrità referenziale. Una cancellazione a cascata deve verificarsi ogni volta che viene cancellato un record in una tabella primaria, che rimuove anche tutti i record corrispondenti dal database. Nell'esempio del passaggio 1, la rimozione di uno studente dalla tabella Studente nel database rimuoverà anche tutte le occorrenze dei record di iscrizione dello studente nella tabella Course_Enrollment.