UN CASO PARTICOLARE MOLTI A MOLTI
In fase di progettazione, quando si definisce lo schema della base di dati,
si incontrano tabelle con la relazione di tipo molti a molti. Ma, questo tipo di
relazioni non possono essere create né con Access, né con altri RDBMS, esistono
solo nella seconda fase.
Quando si incontrano relazioni molti a molti, queste devono essere trasformate.
Si deve usare il seguente metodo: considerare la relazione molti a molti come
l’unione di due relazioni, uno a molti e molti a uno (come affermato nel
paragrafo MOLTI A MOLTI). È necessario aggiungere una tabella in più
all’archivio, che memorizzi la relazione in questione. Infine si devono creare
due relazioni tra le tabelle iniziali e quella nuova. Anche questa volta
conviene vedere il tutto con un esempio.
ESEMPIO. Trasformazione
relazione molti a molti.
Si vuole rappresentare la relazione tra studenti e corsi, intesi come materie
seguite dagli studenti. Uno studente può seguire più corsi, un corso può essere
seguito da più studenti: la relazione è molti a molti. In fase di progettazione
questo non è un problema, anzi è la definizione corretta.
La figura 5.06 rappresenta le tabelle Studenti e Corsi, senza la relazione.
FIG. 5.06
È necessario creare la
relazione per rispondere a domande del tipo: “quali corsi segue lo studente
Rossi?” “Quali studenti seguono il corso Analisi I?”.
Per creare una relazione si deve aggiungere un campo nella tabella lato molti
(chiave esterna), il problema è che entrambe le tabelle in questione sono il
lato molti della relazione.
Proviamo ad aggiungere la chiave esterna nella tabella studenti. ERRORE:
il campo Materia, in questo modo, verrebbe a contenere più valori (vedremo nel
prossimo capitolo che non deve succedere), figura 5.07.
FIG. 5.07
Proviamo ad aggiungere la
chiave esterna nella tabella corsi. ERRORE: il campo Matricola contiene
più valori, figura 5.08.
FIG. 5.08
Per risolvere questa
situazione si deve creare una terza tabella che memorizzi la relazione. Questa
tabella deve contenere le chiavi esterne delle due relazioni uno a molti (che
insieme compongono la relazione molti a molti). Sarà inoltre in relazione con
ognuna delle tabelle di partenza, rappresenterà sempre il lato molti. Quindi si
crea una nuova tabella con due campi, che sono le chiavi esterne delle tabelle
iniziali.
La chiave primaria della tabella relazione sono le due chiavi esterne insieme,
contemporaneamente. Questo serve per evitare ripetizioni nei record della
relazione.
La figura 5.09 visualizza la tabella relazione, con alcuni record.
FIG. 5.09
Dopo aver creato la nuova
tabella, si devono definire due relazioni uno a molti tra le tabelle iniziali
(lato uno) e quella nuova (lato molti). La figura 5.10 visualizza il risultato
finale della trasformazione.
FIG. 5.10