Data Base Relazionale Access.
By Fausto Marinsalta
3.1 Banche dati e query languages.
Le banche dati
gerarchiche o relazionali ed i linguaggi di tipo procedurale sono gli strumenti
per la realizzazione dei Sistemi Informativi a livello operativo, caratterizzati
da grandi volumi di dati e da operazioni ripetitive.
Per i livelli
direzionale e strategico sono necessari strumenti più flessibili, in grado di
ricavare dalle banche dati le informazioni in risposta a problemi estemporanei,
in breve tempo e senza il supporto di personale con elevate competenze
informatiche.
Per la
registrazione dei dati la struttura del data base relazionale, grazie alla sua
flessibilità di accesso, costituisce la base indispensabile. Tale banca dati
può essere generata in modo specifico per rispondere ad esigenze del singolo
utente o di un gruppo di utenti (banca dati settoriale), o può essere ricavata
dalle banche dati operative (banche dati aziendali), con processi che
consentono di estrarre esclusivamente i dati interessanti per i processi
elaborativi previsti. In ogni caso, alla base della costituzione di questi data
base è necessario un processo di progettazione, in grado di definire i dati
necessari e la loro struttura nell'ambito della banca dati.
Per quanto
riguarda i processi elaborativi, sono necessari linguaggi particolari,
orientati all'estrazione dei dati, ad elaborazioni semplici ed alla
presentazione dei risultati in formato di report o di grafici. Tali linguaggi
(query languages) devono essere di facile apprendimento, in quanto ne è
previsto l'utilizzo diretto da parte degli utenti finali, ai quali non vengono
richieste competenze informatiche particolari.
Per questi livelli
del Sistema Informativo, sono perciò a carico dell'utente finale sia la
progettazione e realizzazione delle banche dati, sia l'automazione dei processi
di estrazione e presentazione delle informazioni.
3.2 La progettazione.
Il processo di
progettazione è alla base della realizzazione di un data base efficiente, in
termini di velocità di risposta, ed efficace, ossia in grado di fornire le
informazioni richieste.
Le fasi di
progettazione di un data base relazionale possono essere così sintetizzate:
§
Definizione degli obiettivi del data base,
in base ai quali vengono individuati i dati che devono essere memorizzati nel
data base.
§
Definizione delle tabelle, ossia
suddivisione dei dati per "argomenti", che costituiranno le tabelle
del data base.
§
Definizione dei campi, ossia dei singoli
dati da inserire nelle tabelle e delle relative caratteristiche (tipologia,
dimensioni, metodo di rappresentazione, …).
§
Definizione delle relazioni, ossia dei
legami tra le tabelle, legami che consentono la costruzione di record logici
mediante record fisici diversi.
§
Verifica della struttura ed eventuali
correzioni.
La progettazione
ha come obiettivo la definizione dell'architettura generale del data base, che
dovrà rimanere inalterata nel tempo. Nuovi dati potranno essere aggiunti anche
successivamente, ampliando la struttura delle tabelle o aggiungendo nuove
tabelle. Perché questo non comporti una revisione di quanto già realizzato, è
indispensabile che rimanga invariata l'architettura generale.
3.3 Strumenti di supporto.
Nel caso di
software di gestione del data base orientato verso la realizzazione di banche
dati settoriali, e quindi destinato direttamente agli utenti finali, è
necessario che siano resi disponibili strumenti di facile utilizzo, per
realizzare tutte le fasi di definizione della struttura, dell'inserimento dei
dati, dell'estrazione di informazioni e della presentazione dei risultati.
In figura è
riportata la mappa delle macrofunzioni disponibili in Access, il data base
relazionale più diffuso per l'informatica individuale.

Risultano disponibili le seguenti funzioni:
§
Tabelle: per la generazione della struttura,
la registrazione dei dati, la loro visualizzazione e correzione.
§
Query: per l'estrazione ed eventuale
modifica di informazioni con interrogazioni di tipo condizionato.
§
Maschere: per la realizzazione di intefacce
a tutto schermo, per la visualizzazione o l'introduzione di dati.
§
Report: per la produzione di tabulati a
stampa.
§
Macro: per l'automazione di operazioni
ripetitive, che prevedono l'utilizzo in sequenza di più funzioni base.
§
Moduli: per la realizzazione di funzioni nel
linguaggio Access Basic.
3.4 Realizzazione di una tabella.

Per la creazione di una nuova tabella è necessario innanzitutto
definirne la struttura, ossia definire i campi che la compongono ed i loro
attributi.
Per ogni dato
occorre definire il nome del campo, il tipo dei dati, ed una serie di
caratteristiche, in parte comuni ed in parte collegate al tipo dei dati.

Nell'esempio in
figura viene inserito il campo Cognome, di tipo testo, con dimensione di 50
caratteri. I tipi dati disponibili sono visibili mediante una tendina che si
può aprire nella cella testo, come evidenziato nella figura che segue.
Sono
caratteristica del tipo del dato attributi quali:
§
La dimensione, che permette di definire
l'ampiezza del campo.
§
Il formato, che permette di visualizzare nel
modo desiderato valori numerici, date, valute, …
§
La presenza di cifre decimali, per i campi
numerici.
Altri attributi
sono validi per tutti i tipi:
§
La "maschera di input" permette di
visualizzare dei caratteri di definizione del formato di un campo, per
garantire che i dati immessi rispettino tale formato.
§
L' "etichetta" permette di
assegnare un nome diverso al campo nelle maschere di input ed output.
§
Il "valore predefinito" fa sì che
venga inserito automaticamente tale valore in tutti i nuovi record, per cui è
necessario immettere il valore corretto solo nel caso sia diverso dal valore
predefinito.
§
"Valido se …" consente di
immettere degli intervalli di validità per i dati immessi.
§
"Messaggio di errore" è
l'avvertimento che compare nel caso non sia rispettato l'intervallo di
validità.
§
"Consenti lunghezza zero" permette
di avere stringhe senza caratteri nel caso di campi di tipo testo o memo.
L'ultimo attributo
riguarda l'eventuale associazione del dato ad un indice, che ne permette la
ricerca random. Per i campi non associati ad indice è possibile solo la ricerca
di tipo sequenziale, che allunga i tempi di risposta del sistema.
L'associazione ad indice complica la struttura del data base, per cui è
necessario valutare campo per campo quali associare ad indice e quali invece
no.
Oltre
all'associazione ad indice, viene definito se il campo può avere valori
ripetuti o no. Questo è fondamentale per l'utilizzo del campo come chiave
primaria di ricerca, ossia come dato in grado di identificare in modo univoco
il record.
Perché un campo
possa essere utilizzato come chiave di ricerca primaria è necessario che sia
associato ad indice e che non siano ammessi duplicati.

Nella tabella che
segue si ha un esempio di campo numerico.
Viene, inoltre,
impostato come chiave di ricerca primaria il cognome; questo è possibile in
quanto si ipotizza che non possano esserci, nella tabella, cognomi uguali.

Nel caso non sia
possibile utilizzare un solo campo come chiave di ricerca primaria, in quanto
non è garantita la condizione di non duplicazione, la chiave di ricerca
primaria può essere costituita da più campi associati. E' garantita in questo
caso la non duplicazione della coppia di dati.
Nell'esempio che
segue, la chiave di ricerca primaria è data dalla coppia di dati Cognome e
Nome.
Nel caso ciò non
sia possibile, o perché non è esclusa la replicabilità della coppia (o anche di
associazioni di ulteriori altri campi) o perché si preferisce avere una chiave
di ricerca più sintetica, e quindi data da un solo campo, è possibile creare ad
hoc un codice identificativo; nell'esempio questo è dato da un codice
personale, dato aggiunto appositamente per creare un riferimento univoco al
record.

La struttura della
tabella viene completata, con la descrizione di tutti i campi e dei relativi
attributi.
Si noti come
nell'esempio un campo composte esclusivamente di cifre, quale il numero
telefonico, venga definito come testo. Questo è possibile in quanto non si
prevede di utilizzare tale dato in elaborazioni matematiche, ed è opportuno in
quanto si evita di avere delle trasformazioni non richieste del dato originale,
quali ad esempio la soppressione degli zeri non significativi. Inoltre le
possibilità di ricerca associate ad un campo di tipo testo sono più articolate
di quelle possibili con un campo di tipo numerico.

Una volta
completata la struttura, questa può essere inserita in modo definitivo nel data
base, e la tabella potrà essere richiamata per l'inserimento dei dati e per i
successivi aggiornamenti. In questa fase viene assegnato il nome della tabella:
Dipendenti, nel caso utilizzato come esempio.

3.5 Registrazione della tabella.
Al momento
dell'apertura, la tabella si presenta come un modulo, nel quale nelle colonne
sono indicati i campi, ed ogni riga costituisce un record. Al completamento
della registrazione della singola riga, il relativo record viene memorizzato in
modo definitivo nel data base.

Nel caso di
tabelle di grandi dimensioni, lo schermo visualizza una parte della tabella. E'
comunque sempre possibile scorrere la tabella usando i cursori per spostare la
finestra, per visionare ulteriori campi, ed usando i comandi ai piedi della
finestra per visionare altri record.
Si noti come, nei
campi costituiti esclusivamente da cifre, sia possibile riconoscere il tipo di
dati dall'allineamento: sulla destra per il tipo numerico (esempio anni di
servizio), sulla sinistra il tipo testo (esempio reparto).
Nella fase di
immissione dei dati, vengono attivate automaticamente le verifiche di
compatibilità, sia quelle legate al tipo dei dati (esempio numerico, data, …)
sia quelle definite dall'utente con l'attributo "valido se ..".
In qualsiasi momento i dati possono essere
modificati e si possono aggiungere nuovi record. Ad ogni riapertura della
tabella i record vengono riordinati in ordine crescente di chiave di ricerca.

In qualsiasi
momento si può passare dalla tabella dati alla struttura selezionando la
relativa icona, e dalla struttura alla tabella selezionando l'icona foglio
dati.
3.6 L'utilizzo della maschera come interfaccia di
input/output.
L'utilizzo di una
scheda, o maschera, permette di creare un'interfaccia verso la tabella,
dedicando ad esempio l'intera schermata alla rappresentazione di un record.
Questo consente di avere un colloquio più orientato all'utente, i dati possono
essere meglio visualizzati e possono essere inserite ulteriori scritte di
commento.
Per generare una
maschera è sufficiente selezionare la funzione nel menù principale, richiedere
l'autocomposizione, scegliere il tipo di maschera voluto, associare la tabella
che deve essere gestita, selezionare i campi che devono essere inseriti nella
maschera.
Le maschere
generate in autocomposizione possono essere modificate, lavorando
successivamente sulla loro struttura.

3.7 Tabelle correlate.
Regola
fondamentale per i data base è che debbono essere evitate ridondanze inutili
dei dati. Infatti la ripetizione dello stesso dato rappresenta un costo di
gestione, maggiori difficoltà di aggiornamento e possibilità di errore.
Inoltre, tabelle
con un numero elevato di campi sono di più difficile comprensione e gestione,
per cui è sempre preferibile limitare la loro dimensione.
Entrambi i
problemi si risolvono con l'utilizzo di più tabelle messe in relazione tra di
loro.
L'aggancio tra due
tabelle consente di comporre un record logico, del quale fanno parte campi di
record fisici diversi, in quanto appartenenti a tabelle diverse.
La relazione si
attiva nel momento in cui i due campi delle due tabelle, che vengono correlati,
hanno lo stesso contenuto.
Nell'esempio che
segue una tabella libri è correlata ad una tabella utenti, in una applicazione
di gestione prestiti. In figura sono rappresentati i campi ed i dati riferiti a
due record correlati. In grassetto sono indicate le due chiavi di ricerca
primarie. La relazione correla il campo ID Utente di entrambe le tabelle.