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.