Apri il menu principale

Una chiave esterna (in inglese foreign key), nel contesto dei database relazionali, è un vincolo di integrità referenziale tra due o più tabelle. Essa identifica una o più colonne di una tabella, detta tabella referenziante, che referenzia una o più colonne di un'altra tabella, detta referenziata.

DescrizioneModifica

I valori di un record delle colonne referenzianti devono essere presenti in un unico record della tabella referenziata. Ciò implica che un record nella tabella referenziante non può contenere valori che non esistono nella tabella referenziata, eccetto nel caso particolare di valori NULL se la colonna referenziante non è obbligatoria. Più record della tabella referenziante possono puntare allo stesso record della tabella referenziata. Nella maggior parte dei casi, ciò corrisponde alla relazione "uno a molti" tra una tabella padre ed una tabella figlio. La tabella referenziante e quella referenziata possono essere la stessa tabella. Una chiave esterna di questo tipo è anche chiamata auto-referenziante o ricorsiva. Una tabella può avere molte chiavi esterne e ogni chiave esterna può referenziare una tabella diversa.

DescrizioneModifica

AzioniModifica

Quando nella tabella referenziata si verifica un cambiamento che interessa la chiave esterna, un'azione può essere eseguita automaticamente dal DBMS per garantire l'integrità. L'azione specifica da eseguire può essere scelta dall'utente, chiave per chiave. Gli eventi che interessano la chiave primaria sono due: ON DELETE si verifica quando viene chiesta la cancellazione di un record nella tabella referenziata; ON UPDATE si verifica quando si tenta di modificare uno o più campi referenziati dalla chiave esterna.

Tipi di corrispondenzaModifica

Gli standard SQL prevedono tre diverse modalità per trovare le corrispondenze tra i record, ognuna delle quali implica un modo diverso di trattare i valori NULL. I tre tipi sono:

  • MATCH FULL: se la chiave esterna è composta da più colonne, non è possibile inserire un valore NULL in una colonna a meno che tutte le colonne non siano NULL. Se la chiave esterna è composta da una sola colonna, è possibile inserire valori NULL.
  • MATCH PARTIAL: Permette di inserire valori NULL. Se la chiave esterna è composta da più colonne, è possibile inserire valori NULL in tutte le colonne o in alcune di esse.
  • MATCH SIMPLE: i valori NULL non sono ammessi.

Voci correlateModifica

Collegamenti esterniModifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica