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.