IBM® Informix® 12.10

Chiavi esterne (colonne di unione)

Una chiave esterna è una colonna o un gruppo di colonne di una tabella che contiene valori corrispondenti alla chiave primaria in un'altra tabella. Le chiavi esterne vengono utilizzate per le unire le tabelle. La seguente figura mostra le chiavi primaria ed esterna delle tabelle customer e orders dal database di dimostrazione.
Figura 1. Le chiavi primaria ed esterna nelle relazioni customer-order
Porzioni di due tabelle di database vengono mostrate graficamente come raccolte di celle rettangolari come una tabella o una matrice. Alcune delle colonne sono etichettate con i nomi della colonna rappresentata nella tabella di database. Nella tabella denominata "customer", è etichettata solo la colonna customer_num. La colonna customer_num è ombreggiata e contrassegnata come chiave primaria della tabella. Per la tabella chiamata "orders", sono etichettate due colonne: order_num e customer_num. La colonna customer_num è ombreggiata e contrassegnata come chiave esterna. Una freccia grigia punta da una delle celle nella colonna customer_num della tabella orders a una delle celle nella colonna customer_num nella tabella customer. Questo mostra che il valore nella colonna della chiave esterna fa riferimento a un valore esistente nella colonna della chiave primaria.
Suggerimento: Per semplificare la manutenzione e l'utilizzo delle tabelle, è importante utilizzare dei nomi per le chiavi primaria ed esterna che esprimano chiaramente la relazione tra le due. In Figura 1, sia la colonna della chiave primaria che quella della chiave esterna hanno lo stesso nome, customer_num. In alternativa, è possibile denominare le colonne in Figura 1 customer_custnum e orders_custnum, in modo che ogni colonna abbia un nome distinto.

Le chiavi esterne vengono segnalate quando appaiono nel modello poiché la loro presenza può limitare la capacità di eliminare righe dalle tabelle. Prima di poter eliminare in modo sicuro una riga, è necessario eliminare tutte le righe che fanno riferimento ad essa tramite le chiavi esterne oppure è necessario definire la relazione con una sintassi speciale che consenta di eliminare le righe dalle colonne della chiave primaria e della chiave esterna con un unico comando di eliminazione. Il server di database non consente eliminazioni che violino l'integrità referenziale.

Per preservare l'integrità referenziale, eliminare tutte le righe della chiave esterna prima di eliminare la chiave primaria alla quale fanno riferimento. Se sono stati imposti vincoli referenziali al database, il server di database non consentirà di eliminare le chiavi primarie con chiavi esterne corrispondenti. Inoltre, non consentirà di aggiungere un valore di chiave esterna che non faccia riferimento a un valore esistente di chiave primaria. Per ulteriori informazioni sull'integrità referenziale, consultare IBM Informix Guide to SQL: Tutorial.


Invia feedback | Scambio di esempi | Risoluzione dei problemi

Per trovare il PDF, consultare Publications for the IBM Informix 12.10 family of products.
Per le note su release, documentazione e/o macchina, consultare la pagina sulle Note sulla release.
data/ora Data della release: marzo 2013