Le chiavi esterne consentono valori chiave tutti NULL, anche se non esistono chiavi PRIMARY o UNIQUE corrispondenti
Nessun vincolo sulla chiave esterna
Quando non sono definiti altri vincoli sulla chiave esterna, qualsiasi numero di righe nella tabella figlio può fare riferimento allo stesso valore della chiave principale. Questo modello consente null nella chiave esterna. ...
Vincolo NOT NULL sulla chiave esterna
Quando i valori null non sono consentiti in una chiave esterna, ogni riga nella tabella figlio deve fare esplicito riferimento a un valore nella chiave principale poiché i valori null non sono consentiti nella chiave esterna.
Qualsiasi numero di righe nella tabella figlio può fare riferimento allo stesso valore della chiave principale, quindi questo modello stabilisce una relazione uno-a-molti tra la chiave principale e quella esterna. Tuttavia, ogni riga nella tabella figlio deve avere un riferimento a un valore chiave principale; l'assenza di un valore (un null) nella chiave esterna non è consentita. Lo stesso esempio nella sezione precedente può essere usato per illustrare tale relazione. Tuttavia, in questo caso, i dipendenti devono avere un riferimento a un reparto specifico.
Vincolo UNICO sulla chiave esterna
Quando viene definito un vincolo UNIQUE sulla chiave esterna, solo una riga nella tabella figlio può fare riferimento a un determinato valore di chiave padre. Questo modello consente null nella chiave esterna.
Questo modello stabilisce una relazione uno a uno tra la chiave principale e quella esterna che consente valori indeterminati (null) nella chiave esterna. Ad esempio, supponiamo che la tabella dei dipendenti contenga una colonna denominata MEMBERNO, che fa riferimento a un numero di iscrizione dei dipendenti nel piano assicurativo aziendale. Inoltre, una tabella denominata INSURANCE ha una chiave primaria denominata MEMBERNO e altre colonne della tabella conservano le rispettive informazioni relative a una polizza assicurativa per i dipendenti. MEMBERNO nella tabella dei dipendenti deve essere sia una chiave esterna che una chiave univoca:
Per applicare le regole di integrità referenziale tra le tabelle EMP_TAB e INSURANCE (il vincolo FOREIGN KEY)
Per garantire che ogni dipendente abbia un numero di abbonamento univoco (il vincolo chiave UNICO)
Vincoli UNICI e NON NULL sulla chiave esterna
Quando sulla chiave esterna sono definiti sia i vincoli UNIQUE che NOT NULL, solo una riga nella tabella figlio può fare riferimento a un determinato valore della chiave padre e poiché i valori NULL non sono consentiti nella chiave esterna, ogni riga nella tabella figlio deve fare esplicito riferimento un valore nella chiave principale.