Regola per associazioni uno a molti

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).

Importante

Regola 4: (Prima parte) per ogni associazione binaria di tipo 1:N è necessario aggiungere, alla relazione che partecipa con molteplicità N, un nuovo attributo, detto «chiave esterna», collegato logicamente alla chiave primaria dell'altra relazione (a molteplicità 1).

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.

Figura 3.3. Schema E-R dell'associazione tra alunno e classe

Schema E-R dell'associazione tra alunno e classe

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.5. classi

codice anno sezione indirizzo
41 4 A Mercurio
42 4 A IGEA
43 5 A Mercurio

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.

Suggerimento

Arrivati a questo punto del progetto, non si deve tornare indietro a modificare lo schema E-R per aggiungere qualche attributo alle entità. La chiavi esterne si aggiungono esclusivamente nel livello logico, non nel livello concettuale.

Nel caso in cui anche l'associazione uno a molti avesse attributi, la regola continua così:

Importante

Regola 4: (Seconda parte) Gli eventuali attributi dell'associazione uno a molti vanno messi nella stessa relazione in cui si trova la chiave esterna

Esempio 3.7. Derivazione dell'associazione appartenenza con attributo

Lo schema E-R:

Figura 3.4. Schema E-R di associazione con attributo

Schema E-R di associazione con attributo

Lo schema delle relazioni che si ottiene è:

classi (codice, anno, sezione, indirizzo);

alunni (matricola, cognome, nome, codice-classe, anno_scolastico)

Le tabelle sono lasciate come esercizio al lettore.