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:
- 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.
- 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 aRESTRICTnel controllo standard, ma può differire in fase di esecuzione.
- 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 aRESTRICTnel 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.