Oggi parliamo di un altro argomento che ci permette di inquadrare in un contesto
teorico più corretto alcuni argomenti già trattati in ordine sparso
nelle precedenti lezioni: le regole di integrità.
Si parla di due tipi di regole d’integrità: generali e specifiche
del database.
Per quanto riguarda le regole generali sono l’integrità
dell’entità e l’integrità referenziale. L’integrità
dell’entità è molto semplice e prevede che il campo di chiave
primaria non sia nullo (vuoto). La ragione di essere di questa
regola è evidente: non si può identificare univocamente una riga
se la chiave primaria può essere nulla. Questo è valido anche
per le chiavi primarie composte (in questo caso nessuno dei campi
che formano la chiave primaria può essere nullo). Questa regola
viene applicata automaticamente da Access che non accetta chiavi
primarie nulle.
La regola d’integrità referenziale prevede che un database
non deve contenere nessuna chiave esterna senza un valore corrispondente.
Questo significa che, fra due tabelle in relazione fra loro:
non può essere aggiunta una riga che fa riferimento ad un’altra
riga nell’altra tabella, senza che questa esista realmente;
non si può cancellare una riga di una tabella la quale è collegata
(tramite chiavi esterne) ad una o più righe dell’altra tabella.
In questo caso Access permette di impostare due scelte: o la cancellazione
è respinta completamente o la cancellazione viene estesa a catena
a tutte le righe dipendenti.
Ma andiamo a vedere in concreto come si impostano le relazioni.
Ipotizziamo di avere due tabelle, prodotti e ordini; le due tabelle
saranno messe in relazione dal campo cod. art. (codice articolo)
che è chiave primaria nella tabella prodotti e chiave esterna
nella tabella ordini.
Con il pulsante relazioni si apre una finestra in cui, tramite
tasto destro del muose e mostra tabella, verranno inserite le
due tabelle.
Quindi si clicca sulla chiave primaria della tabella prodotti
(cod art) e si trascina sulla corrispondente chiave esterna della
tabella ordini. Si apre a questo punto una nuova finestra come
indicato nella figura sottostante.

La relazione viene creata. Nella finestra modifica relazioni, oltre a vedere
le tabelle collegate, la chiave interna e la chiave esterna, si imposta l’integrità
referenziale. Nell’esempio mostrato gli aggiornamenti del campo cod art nella
tabella articoli saranno aggiornati a catena anche nella tabella ordini. La
cancellazione invece non sarà permessa fino a quando non sarà selezionata
la voce Elimina record correlati a catena.
Le regole d’integrità specifiche del database sono quelle definite dal creatore
del database stesso. Riguardano i dati che verranno inseriti nelle tabelle
e hanno lo scopo di assicurare che questi dati siano corretti, in modo da
avere un database che contiene informazioni logiche. Esempi di alcune regole
possono essere: la data e l’ora dell’ordine non possono essere precedenti
all’ora corrente, l’ora e la data di consegna devono essere successive alla
data dell’ordine, la quantità ordinata non può essere inferiore a 1 ecc.
Si tratta delle regole più svariate che dipendono dal tipo di dati che si
vogliono immagazzinare nel database.
Come creare queste regole è già stato spiegato nelle lezioni 3 e 4 quando
si è parlato della definizione dei campi nelle tabelle.
In particolare questi criteri di validazione dei dati inseriti vengono specificati
con la proprietà ‘valido se’ della maschera di costruzione della tabella.
Con la proprietà ‘messaggio errore’ è possibile mostrare un messaggio personalizzato
qualora l’utente inserisca dei dati al di fuori del range specificato.
Con questa lezione si conclude l’esame delle tabelle del database. Dalla prossima
cominceremo a vedere come estrarre e manipolare i dati contenuti nelle tabelle.
Torna all'indice Generale del corso di Corso di Microsoft Access di Software Planet