Che cos'è una chiave esterna in un database relazionale?

Le chiavi esterne in una tabella in un database relazionale localizzano le informazioni in una tabella correlata.

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.