INTRODUZIONE
In questo capitolo saranno create le relazioni nell’archivio
libreria. Per proseguire è necessario aprire il file “libreria.mdb”
creato seguendo i capitoli precedenti, oppure scaricarlo nel seguente
link: libreria.mdb.
RELAZIONI
Dopo aver aperto il file libreria.mdb, eseguire il comando STRUMENTI
– RELAZIONI, si apre la finestra di dialogo mostra tabella, visualizzata
nella figura seguente.

Fig. 16.01
Selezionare tutte le tabelle, utilizzando il tasto CTRL oppure il tasto
SHIFT, come mostrato nella figura seguente.

Fig. 16.02
Fare un clic sul pulsante AGGIUNGI e un clic sul pulsante CHIUDI. Viene
visualizzata la finestra RELAZIONI, con all’interno le quattro tabelle
selezionate.

Fig. 16.03
Conviene disporre le tabelle in modo che la lettura e la visualizzazione
delle relazioni sia più semplice e immediata. Per spostare una
tabella si deve posizionare il puntatore del mouse sopra la barra del
titolo, dove è visualizzato il nome della tabella stessa, e si
deve trascinare la figura tenendo premuto il pulsante del mouse. Il
sistema è lo stesso che si adotta per spostare le finestre di
Windows. È anche possibile allargare o ridurre le dimensioni
delle figure, posizionandosi sui bordi delle finestre, sempre utilizzando
il metodo standard di Windows.
Disporre le tabelle come mostrato nella figura seguente.

Fig. 16.04
Selezionare il campo IdAutore della tabella TAutori e trascinarlo sopra
il campo IdAutore della tabella TLibri. Si apre la finestra “Modifica
relazioni”, visualizzata nella figura seguente.

Fig. 16.05
Automaticamente il programma ha definito il tipo di relazione: Uno
a molti. Non sarebbe propriamente corretta, infatti, potremmo disporre
di testi scritti contemporaneamente da più autori, perciò
la relazione dovrebbe essere molti a molti, con tutto ciò che
ne segue. Ma, come spiegato più volte nel manuale, questo esempio
non è una reale progettazione di archivio, ma una semplificazione
per imparare a conoscere tutti gli strumenti necessari a progettare
e creare un database reale.
La domanda più importante che ci pone la finestra di dialogo
è la seguente: si vuole applicare l’integrità referenziale
alla relazione? In caso affermativo si dovrà anche scegliere
se utilizzare le opzioni successive (Aggiorna campi correlati a catena,
Elimina record correlati a catena), spiegate nel capitolo 15.
Questa scelta è molto difficile, poiché determina il comportamento
dell’archivio in situazioni particolari, di solito non di uso quotidiano:
ci si potrebbe accorgere di aver sbagliato dopo un anno di utilizzo
dell’applicazione creata, per esempio quando si rende necessario cancellare
alcuni dati.
Proviamo a ragionare sopra queste scelte, pensando alle conseguenze.
INTEGRITA’ REFERENZIALE: se non selezioniamo questa opzione significa
che è possibile inserire un libro di un autore inesistente (non
presente nel nostro archivio) oppure non valido, per esempio inserisco
l’autore 101 (si tratta di un identificativo), quando nei dati sono
presenti solo 10 autori. Selezionando l’integrità referenziale,
invece, ogni volta che inserisco un libro nell’archivio, deve essere
presente il relativo autore nella tabella autori. Devo, cioè,
inserire prima l’autore, poi il libro.
AGGIORNA CAMPI CORRELATI A CATENA: utilizzando questa opzione,
se modifico il valore della chiave primaria nella tabella TAutori, automaticamente
la modifica, se necessaria, viene riportata anche nella tabella TLibri.
ELIMINA RECORD CORRELATI A CATENA: se attiva, quando elimino
un autore, automaticamente vengono cancellati tutti i libri corrispondenti
all’autore stesso.Se non attiva, quando elimino un autore restano nei
dati alcuni libri senza autore o con un identificativo dell’autore non
più valido.
La scelta tra le opzioni dipende dallo scopo dell’archivio, comunque,
non fa parte di questa fase, ma della precedente: la progettazione.
L’analisi dei requisiti deve stabilire esattamente cosa succede di tutti
i dati, anche durante la vita dell’archivio. La progettazione deve definire
come realizzare la struttura, rispondendo anche alle domande che ci
sono state poste in questo momento da Access. Come spiegato nei capitoli
precedenti, la fase di analisi dei requisiti e quella di progettazione
possono essere eseguite solo da persone che hanno un’idea generale di
tutto ciò che serve per creare l’intero archivio. Nella fase
di creazione, cioè in questo momento, non ci si pone il problema,
si guarda la progettazione e ci si comporta di conseguenza. Se nella
progettazione manca la risposta, si deve tornare indietro, integrare
l’analisi, integrare la progettazione e, solo in seguito, proseguire
con la creazione.
Conviene rileggere l’analisi dei requisiti, che si trova nel capitolo
7. Come spiegato più volte, le fasi di analisi e progettazione
non sono complete nei nostri esempi, al fine di rendere più semplice
l’apprendimento. È riportato quanto segue, a proposito delle
relazioni:
Quando eliminiamo (o aggiorniamo) una casa editrice, tutti i libri
corrispondenti devono essere eliminati.
Quando eliminiamo (o aggiorniamo) un autore, tutti i libri corrispondenti
devono essere eliminati.
Nulla è detto a proposito delle categorie, per cui, si dovrebbe
ripartire dall’analisi dei requisiti e ripercorrere tutte le fasi precedenti
a questa. Si ricorda che una modifica che potrebbe sembrare semplicissima,
come quella di selezionare o meno una di queste opzioni, potrebbe imporre
la modifica dell’intera struttura della base di dati.
In generale, si può affermare che una relazione in Access ha
sempre l’integrità referenziale. Sono rare le relazioni senza
integrità e sono costruite appositamente per scopi particolari.
Nel nostro esempio proseguiremo come indicato nell’analisi dei requisiti
e, dove non definito, sarà lasciata facoltà all’utente
di scegliere le opzioni, previo ragionamento sul risultato.
In questo caso, selezioniamo tutte e tre le opzioni, come mostrato
nella figura seguente.

Fig. 16.06
Fare un clic sul pulsante CREA, si chiude la finestra “Modifica relazioni”
e si ritorna alla finestra “Relazioni”, con la relazione appena creata.

Fig. 16.07
Trascinare il campo IdCasaEditrice della tabella TCaseEditrici sul
campo IdCasaEditrice della tabella TLibri, e selezionare tutte le opzioni
relative all’integrità referenziale, infine fare un clic sul
pulsante CREA.
Trascinare il campo IdCategoria della tabella TCategorie sul campo IdCategoria
della tabella TLibri, selezionare l’opzione integrità referenziale
e fare un clic sul pulsante CREA. Per le altre opzioni, come spiegato
prima, si lascia libertà all’utente. Il risultato è visibile
nella figura seguente.

Fig. 16.08
Per visualizzare le opzioni o per modificare una relazione si deve
fare un doppio clic sopra la linea, si apre la finestra “Modifica relazioni”.
Chiudere la finestra delle relazioni, appare la finestra di dialogo
seguente.

Fig. 16.09
È necessario salvare le relazioni ogni volta che vengono modificate,
quindi si deve fare un clic nel pulsante SI. Si ritorna alla finestra
principale della base di dati.
Per proseguire correttamente con la costruzione dell’archivio, si dovrebbero
creare gli strumenti successivi, per esempio query e maschere, prima
di inserire i dati. Invece, nei nostri esempi, sempre al fine di comprendere
al meglio le funzioni di Access, procederemo con i dati già inseriti
nelle tabelle, anche per tutte le fasi successive. Per cui, anche se
non sarebbe corretto, procediamo ora all’inserimento dei dati. Come
spiegato nei capitoli precedenti, prendiamo comunque la precauzione
di fare una copia del file.mdb creato e lavoriamo nella copia del file.
L’inserimento dei dati è lasciato all’utente come esercizio,
nel nostro esempio ci preoccupiamo solo di vedere alcune caratteristiche
utili per l’apprendimento di quanto fatto fin’ora.
Aprire la tabella TLibri, in “Visualizzazione foglio dati”, e provare
ad inserire un libro, come mostrato nella figura seguente.

Fig. 16.10
Provare a confermare l’inserimento, passando al record successivo,
appare la finestra di errore visualizzata nella figura seguente.

Fig. 16.11
Come spiegato nel capitolo precedente, questo messaggio è dato
dall’integrità referenziale che controlla se l’autore inserito
nella tabella libri è presente nella tabella autori. È
necessario, quindi, per inserire i dati, partire dalle tabelle che sono
sul lato uno delle relazioni: TAutori, TCategorie e TCaseEditrici.
Inserire i dati nelle tabelle, a piacere, e verificare le integrità
referenziali di tutte le relazioni.
Nel link relazioni.mdb
è possibile scaricare l’archivio con le relazioni correttamente
inserite, nel link dati.mdb
è possibile scaricare il file con i dati di prova inseriti e
che saranno utilizzati nei capitoli seguenti.