I vizi nascosti delle relazioni

Stabilire una relazione tra due tabelle è abbastanza facile. Far sì che la relazione resista bene anche in occasione di eventi critici è un po’ più difficile.

Per evento critico in una relazione tra tabelle si intende, ad esempio, ciò che succede quando in una tabella viene eliminato un valore unico in un campo cui fa riferimento il campo di un’altra tabella. In un caso come questo, come si deve comportare il database con tutti i valori cui da un momento all’altro fanno riferimento a qualcosa che non c’è più?

Il comportamento del database in occasione di eventi critici è regolato da opzioni predefinite, che tuttavia possono essere modificate per ogni singola relazione: basta fare doppio clic sulla linea di connessione di una relazione e aprire così la finestra riportata nella figura sottostante.
La finestra Relazioni
Nella finestra sono indicate le due tabelle in relazione e i due campi che costituiscono la relazione stessa. Nella sezione Opzioni di aggiornamento si trovano le opzioni che determinano il comportamento del database in caso di modifica della chiave primaria (cioè del campo che contiene valori unici e rappresenta l’estremità “uno” della relazione), mentre nella sezione Opzioni di eliminazione si trovano le corrispondenti opzioni in caso di eliminazione della chiave primaria. Le opzioni riguardano ovviamente ciò che succede alle chiavi esterne, cioè ai valori dei campi collegati che rappresentano l’estremità “a molti” della relazione.