Sobes.tech
Junior

Come influisce la chiave esterna sull'integrità dei dati nel database?

sobes.tech AI

Risposta dell'AI

La chiave esterna (foreign key) garantisce l'integrità referenziale dei dati, assicurando che i valori nella colonna di una tabella (tabella figlia) corrispondano ai valori nella colonna di un'altra tabella (tabella genitore).

Impatto sull'integrità dei dati:

  1. Impedisce l'aggiunta di record nella tabella figlia con un valore che non esiste nella colonna corrispondente della tabella genitore. Tentare di inserire una riga che fa riferimento a un record genitore inesistente genererà un errore.
  2. Limita l'eliminazione di record nella tabella genitore che sono referenziati da record nella tabella figlia. Il comportamento al tentativo di eliminare dipende dall'azione configurata (ON DELETE):
    • RESTRICT (predefinito): Impedisce l'eliminazione.
    • CASCADE: Elimina i record dipendenti nella tabella figlia.
    • SET NULL: Imposta il valore NULL nella colonna corrispondente della tabella figlia (se la colonna permette NULL).
    • NO ACTION: Simile a RESTRICT nel controllo standard, ma può differire in fase di esecuzione.
  3. Limita l'aggiornamento dei record nella tabella genitore. Il comportamento al tentativo di aggiornamento dipende anche dall'azione configurata (ON UPDATE):
    • RESTRICT (predefinito): Impedisce l'aggiornamento.
    • CASCADE: Aggiorna il valore corrispondente nei record dipendenti della tabella figlia.
    • SET NULL: Imposta il valore NULL nella colonna corrispondente della tabella figlia (se la colonna permette NULL).
    • NO ACTION: Simile a RESTRICT nel controllo standard, ma può differire in fase di esecuzione.

La chiave esterna aiuta a prevenire la comparsa di "record orfani" e garantisce che le relazioni tra le tabelle rimangano corrette.