Dopo aver derivato tutte le entità e tutti gli attributi, si può passare alla derivazione delle associazioni (che sono i rombi dello schema E-R); il tipo più semplice da derivare è quello «uno a molti» (1:N).
La comparsa della chiave esterna tra gli attributi, permette di realizzare un collegamento tra le due relazioni. Si adotterà la convenzione di sopralineare la chiave esterna
Esempio 3.6. Derivazione dell'associazione appartenenza
Si applicheranno tutte le regole di derivazione note al seguente schema E-R.
Applicando le prime tre regole di derivazione alle due entità si ottengono le seguenti due relazioni:
alunni ( matricola, nome, cognome )
;
classi ( codice, anno, sezione, indirizzo )
A questo punto le due relazioni sono ancora indipendenti l'una dall'altra, quindi si possono scrivere anche affiancate.
La regola di lettura dice che «ad ogni classe possono appartenere uno o più alunni», quindi è necessario aggiungere alla relazione «alunni» (a molteplicità N) un nuovo attributo, a cui si darà il nome codice-classe
che sarà collegato all'attributo codice della relazione «classi».
classi ( codice, anno, sezione, indirizzo )
;
alunni ( matricola, nome, cognome, codice-classe
)
Come si sarà notato, questa volta la relazione «classi» precede «alunni», questo perchè, a causa del legame instaurato dalla chiave esterna, è necessario riempire prima la tabella «classi» e successivamente quella di «alunni».
Tabella 3.6. alunni
matricola | cognome | nome | codice-classe |
---|---|---|---|
025221 | Rossi | Mario | 41 |
025223 | Bianchi | Anna | 41 |
025101 | Verdi | Giuseppe | 42 |
Il collegamento tra una chiave esterna e una primaria, fa in modo che la prima possa assumere solo i valori stabiliti dalla seconda. Questo legame logico tra le relazioni (e tra le tabelle che le rappresentano) viene chiamato tecnicamente «vincolo di integrità referenziale», e verrà studiato più avanti.
Sebbene la chiave esterna
sia collegata alla chiave primaria vi sono profonde differenze tra i due tipi di attributi: la «chiave esterna» può essere non unica (nella chiave esterna si possono ripetere più volte gli stessi valori) e può essere non obbligatoria (questo accade solo quando le regole di lettura dell'associazione lo permettono, per esempio se ci potessero essere alunni senza una classe). Come esercizio, verificare alcune delle proprietà appena esposte nella tabella alunni del precedente esempio.
Nel caso in cui anche l'associazione uno a molti avesse attributi, la regola continua così: