COME CREARE UNA RELAZIONE

Tramite il seguente esempio si vuole mostrare come si creano le relazioni.

ESEMPIO.
Si prendono in considerazione le due tabelle Clienti e Ordini, ridotte a pochi campi più interessanti, visualizzate nella figura 5.03.
 

 
FIG. 5.03
 

Per rispondere a domande del tipo “quale cliente ha fatto un certo ordine?, Quanti ordini ha fatto il cliente Rossi?”, si deve definire una relazione tra le due tabelle.
Per prima cosa si deve capire di che tipo di relazione si tratta. Si è già visto, negli esempi precedenti, che si tratta di una relazione uno a molti. La tabella Clienti rappresenta il lato uno, la tabella Ordini rappresenta il lato molti. Le rispettive chiavi primarie sono IdCliente e IdOrdine e le tabelle non hanno campi in comune, che contengono gli stessi valori.
Si deve aggiungere un campo, della tabella del lato uno, nella tabella del lato molti che memorizzi il collegamento (la relazione) con la tabella del lato uno.
Il campo da aggiungere deve essere tale che i suoi valori siano univoci, ossia non vengano mai ripetuti nella tabella del lato uno. Il campo che, per definizione, corrisponde a queste caratteristiche è la chiave primaria, nel nostro caso IdCliente. Questo campo “non serve” nella tabella lato molti, per l’esistenza della tabella stessa, ma deve essere aggiunto per creare la relazione.
Nella tabella lato uno il campo in questione è la chiave primaria, nella tabella lato molti il campo viene chiamato CHIAVE ESTERNA.
I valori della colonna chiave esterna possono essere ripetuti, infatti un cliente può effettuare più ordini.
La figura 5.04 visualizza il risultato della relazione.
 

 
FIG. 5.04
 

Non è sufficiente avere i due campi sulle tabelle per definire le relazioni, i due campi devono essere “uguali”. Per uguali si intendono due campi che hanno le stesse caratteristiche, cioè lo stesso tipo di dati e la stessa dimensione. Nell’esempio i campi chiave primaria e chiave esterna sono entrambi di tipo numerico, più avanti si approfondirà quanto detto.
Non è necessario che i due campi abbiano lo stesso nome, possono avere nomi diversi, ma devono avere lo stesso tipo di dati (p.e. testo) e la stessa dimensione (p.e. 20 caratteri).
Bisogna creare espressamente la relazione con gli strumenti di Access, non è sufficiente avere i due campi. Access non crea automaticamente una relazione ogni volta che trova due campi con le caratteristiche dette sopra. Si possono incontrare dei casi in cui ci siano campi con lo stesso nome, lo stesso tipo di dati, la stessa dimensione, eppure non ci sia una relazione. Per esempio si pensi a due tabelle, una per i clienti e una per i fornitori, la maggior parte dei campi corrispondono, ma non c’è nessuna relazione tra le due tabelle.
Per questo motivo, è necessario creare a mano ogni relazione definita nella fase di progettazione.
La figura 5.05 mostra come Access visualizzerebbe la relazione dell’esempio.
 

 
FIG. 5.05