Che cosa è un database relazionale chiave esterna?

March 20

Che cosa è un database relazionale chiave esterna?


Una chiave esterna in un database relazionale è una chiave utilizzata in una tabella figlio che corrisponde alla chiave primaria in una tabella padre correlata. Le chiavi esterne possono avere valori duplicati (molteplicità) nella tabella figlio, mentre le chiavi primarie non può. Utilizzando le chiavi esterne correttamente può applicare l'integrità referenziale.

Un semplice esempio

Un semplice esempio di una chiave esterna database è un "Student" tabella padre database con student_id come la sua chiave primaria. In Relativi tabella "Course_Enrollment" con Course_ID come chiave primaria, per ogni corso, in cui uno studente si è iscritto, appare la chiave esterna, student_id dalla tabella Student.

Regola integrità referenziale

La regola di integrità referenziale afferma che qualsiasi valore chiave esterna Null in una tabella figlio deve fare riferimento a un valore della chiave primaria della sua tabella padre nel database. Nell'esempio nella fase 1, non avrebbe alcun senso nel database di avere uno studente iscritto ad un corso in cui non ci sono informazioni su quello studente nella tabella Student. Questa regola impone coerenza in un database.

Cascade Elimina

Ogni record figlio in una relazione di chiave esterna deve avere un record corrispondente genitore in base alla regola di integrità referenziale. Una cascata eliminazione deve avvenire ogni volta che un record da una tabella padre viene rimosso, che rimuove anche tutti i record corrispondenti dal database bambino. Nell'esempio Fase 1, la rimozione di uno studente dal database Student anche rimuoverà tutte le occorrenze di iscrizione dello studente nella tabella Course_Enrollment.