Capitolo di esempio - Mondadori Informatica

Transcript

Capitolo di esempio - Mondadori Informatica
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 3
Modulo 5
Basi di dati Access
Concetti fondamentali
Il database
5.1.1.1
Il database, o anche base di dati, è un archivio elettronico, dotato di un
programma di interfaccia che facilita:
• la registrazione;
• la ricerca;
• l’aggiornamento;
• l’eliminazione
dei dati, ossia tutte le operazioni utili per la gestione dell’archivio.
Il database relazionale è il tipo di database attualmente più diffuso grazie
alla sua flessibilità e alla maggiore facilità d’uso. A questo tipo di database
faremo riferimento nel resto della trattazione.
5.1.1.2
Anche se dato e informazione sono spesso utilizzati come sinonimi, dal
punto di vista informativo hanno un significato profondamente diverso.
Per dato si intende una rappresentazione originaria e non interpretata di
un evento o di un oggetto. Dato può essere quindi la ragione sociale di un
cliente, il prezzo di un prodotto, il cognome di un dipendente.
L’insieme di uno o più dati, opportunamente correlati e interpretati in un
certo contesto, costituisce un’informazione. Più dati, quindi, vengono trasformati in una o più informazioni mediante un processo elaborativo.
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 4
Patente Europea del computer Modulo 5
In definitiva, i dati costituiscono la materia prima con la quale vengono
costruite le informazioni.
È inoltre importante osservare che un’informazione è tale soltanto in funzione del suo destinatario e del momento e del luogo del suo utilizzo. Per
esempio il totale di una fattura è un’informazione per l’Ufficio Fatturazione,
ma è ancora un dato, anche se di tipo sintetico, per l’Ufficio Marketing interessato a elaborazioni di tipo statistico.
In questo contesto il dato possiede come caratteristica fondamentale quella
dell’oggettività, mentre l’informazione è intrinsecamente soggettiva, in
quanto destinata a un certo utente, in un determinato momento, per un
certo scopo.
5.1.1.3
Un esempio di database di facile comprensione è un’ipotetica rubrica del
telefono. Questa è composta dall’insieme di dati, nome, cognome, numero
di telefono di una serie di persone, organizzati in una struttura, definita
tabella (vedi figura 5.1).
Figura 5.1 La struttura di una tabella.
In tale schema sono indicati i dati registrati; ogni singolo dato costituisce un
campo; nell’esempio proposto i campi utilizzati sono “cognome”, “telefono
personale”, “azienda”, “incarico”. Nella tabella, alla quale è associato lo
schema, questi nomi saranno le etichette delle colonne, mentre sulle varie
righe saranno inseriti il cognome, il telefono personale, l’azienda, l’incarico
di ogni interlocutore presente nella rubrica; l’insieme di questi dati prende il
nome di record.
Di conseguenza l’insieme di record costituisce la tabella.
Come vedremo in seguito un insieme di tabelle opportunamente correlate
forma il database.
4
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 5
Sezione 1: Comprendere i database
Esempi di database
5.1.1.4
Nell’esempio abbiamo visto un database molto semplice e di dimensioni
limitate. Ma il database è la struttura per la realizzazione di archivi elettronici di grandi dimensioni quali:
• INPS, Istituto Nazionale Previdenza Sociale, che registra i dati degli
assistiti a livello nazionale;
• Anagrafe Tributaria, che riporta le posizioni nei vari anni di tutti i contribuenti italiani;
• anagrafi comunali, con i dati dei cittadini;
• cartelle cliniche dei pazienti delle strutture sanitarie;
• sistemi bancari, per la gestione dei conti correnti dei clienti;
• sistemi di prenotazione e gestione dei voli delle compagnie aeree.
Tutte queste banche dati sono caratterizzate dalla presenza di centinaia di
migliaia o di milioni di record.
5
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 6
Patente Europea del computer Modulo 5
Organizzazione di un database
Tabelle
5.1.2.1
5.1.2.2
5.1.2.3
Abbiamo già visto come il database sia costituito da un insieme di tabelle. È
opportuno che ognuna di queste tabelle contenga dati relativi a un unico
argomento. Per esempio, in un database che riguarda una rubrica telefonica
a uso ufficio potrai avere una tabella Interlocutori, con i dati delle persone
con le quali sei in contatto, e una tabella Aziende, che riporta i dati delle
aziende a cui appartengono gli interlocutori.
Nella definizione della struttura di queste tabelle, devi definire quali campi
vuoi inserire. È importante che ogni campo contenga un dato unitario. Un
dato è unitario o no in funzione delle elaborazioni che successivamente vorrai fare. Per esempio il Cognome e Nome di una persona potrebbe essere un
solo campo, se non hai bisogno di separare i due dati (per esempio li utilizzi
esclusivamente per identificare la persona) o due campi distinti, se vuoi
poter effettuare facilmente ricerche separate su nome e cognome. Ricordati
che nel dubbio è meglio utilizzare campi separati che consentono di semplificare, in caso di necessità, le operazioni di elaborazione. Ogni campo che
compone la tabella viene generato con lo scopo di contenere un tipo specifico di dato. Nella creazione di una tabella devi, quindi, non solo attribuire
un’etichetta a ogni campo, cioè un nome che lo identifichi, ma anche indicare le caratteristiche del campo stesso.
La prima caratteristica che devi definire è il tipo di dato:
•
•
•
•
•
•
•
5.1.2.4
testo;
memo (dato testuale di maggiori dimensioni);
numerico;
data/ora;
valuta;
contatore (campo numerico che si incrementa in modo automatico);
sì/no.
A ogni campo devi inoltre associare ulteriori proprietà, che ne completano
le caratteristiche, quali:
• dimensione del campo (numero di caratteri o di cifre che compongono il
campo);
6
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 7
Sezione 1: Comprendere i database
• formato (per esempio per una data se viene usato il formato
gg/mm/aaaa);
• valore predefinito (valore di default, valore che viene inserito automaticamente, e che può essere modificato in caso di necessità);
• valido se;
• messaggio d’errore;
• richiesto;
• consenti lunghezza zero;
• indicizzato, compressione Unicode.
Le differenze fra le diverse tipologie di dati e i loro attributi verranno prese in
esame in seguito, quando vedremo come definire la struttura di una tabella.
Chiave primaria e indici
5.1.2.5
In ogni tabella è opportuno poter distinguere ogni singolo record da qualsiasi altro, avere cioè un valore in uno o più campi che lo identifichi in
modo univoco.
Tale valore prende il nome di chiave primaria e può essere costituito da un
unico campo o dalla combinazione di più campi, nel caso in cui un solo
campo non fosse in grado di garantire la condizione di corrispondenza biunivoca, ossia di non duplicazione.
La chiave primaria, quindi, può essere definita come il campo o l’insieme di
campi che identificano in modo univoco un record.
Esempi di chiave primaria sono il nome di un comune in un database che dà
i prefissi telefonici o l’abbinamento del cognome e nome sul database registro studenti di una scuola.
Se non riesci a risolvere il problema, neanche abbinando più campi, o perché non è esclusa la replicabilità della coppia (o anche di associazioni di
ulteriori altri campi), o perché preferisci avere una chiave di ricerca più sintetica, e quindi data da un solo campo, puoi creare ad hoc un codice identificativo. Un esempio è costituito dal numero di matricola per identificare uno
studente universitario, chiave primaria necessaria in quanto potrebbero
essere iscritti all’università due studenti con lo stesso cognome e nome.
7
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 8
Patente Europea del computer Modulo 5
Questa operazione viene compiuta automaticamente dal sistema nel caso
non venga indicata una chiave primaria nella creazione di una tabella. Il
sistema ti chiede comunque una conferma prima di rendere effettiva l’operazione. In questo caso, il tipo di campo generato è di tipo contatore, un
campo numerico che si incrementa automaticamente a ogni inserimento di
un nuovo record.
5.1.2.6
Caratteristica fondamentale, oltre alla non duplicabilità, affinché un campo
possa svolgere il ruolo di chiave di ricerca primaria, è l’associazione a un
indice.
Tale attributo non riguarda però solo il campo chiave primaria, ma puoi
impostarlo per tutti i campi che presupponi vengano interrogati con un’alta
frequenza. Questa caratteristica, infatti, permette la ricerca random dei dati,
ossia l’individuazione immediata dei dati richiesti. Per i campi non associati
a indice, al contrario, è possibile solo la ricerca di tipo sequenziale, che
allunga i tempi di risposta del sistema. L’indice del database funziona logicamente come l’indice di un libro, che permette di sapere in che pagina si
trova il capitolo che cerchi, senza dover scorrere tutte le pagine. Inoltre l’associazione a un indice di un campo velocizza l’operazione di ordinamento
dei record, secondo tale campo.
L’associazione a indice complica la struttura del database, per cui devi valutare campo per campo quali associare a indice e quali invece no.
Oltre all’associazione a indice, scegli se il campo può avere valori ripetuti o
no. Nel caso di un campo utilizzato come chiave di ricerca primaria, l’opzione che non prevede duplicati viene selezionata automaticamente dal sistema
e non può essere modificata.
8
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 9
Sezione 1: Comprendere i database
Relazioni
Significato delle relazioni
5.1.3.1
Il database relazionale si presenta all’utente come un insieme di tabelle correlate mediante relazioni tra campi (vedi figura 5.2). Negli schemi delle
tabelle sono riportate in grassetto le chiavi di ricerca primarie.
Figura 5.2 Esempio di relazione fra tabelle.
Le relazioni consentono di costruire insiemi di dati (record logici), aggregando campi appartenenti a tabelle diverse. Il database della rubrica telefonica, preso come esempio, può essere ampliato mediante una seconda tabella; a quella già descritta Interlocutori si aggiunge una nuova tabella Aziende.
Tale suddivisione risulta utile nell’ipotesi che possano esserci più interlocutori appartenenti alla stessa azienda. Questa nuova struttura ti permette di
inserire i dati relativi all’azienda una sola volta per tutti gli interlocutori e di
richiamare i dati delle aziende mediante la relazione fra le due tabelle. In
questo modo eviti di ripetere più volte gli stessi dati all’interno del database,
operazione che sarebbe indispensabile se esistesse una sola tabella
Interlocutori. Le ridondanze non solo rappresentano un onere di registrazione aggiuntivo, ma costituiscono anche un problema ulteriore per eventuali aggiornamenti.
In termini generali, sono possibili tre diversi tipi di relazione:
• relazione uno a uno, a un record di una tabella corrisponde, al massimo,
un solo record di un’altra tabella;
• relazione uno a molti, a un record di una tabella corrispondono più
record di un’altra tabella, non è vero il contrario;
• relazione molti a molti, a un record della prima tabella corrispondono
più record della seconda tabella ed è vero il contrario.
9
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 10
Patente Europea del computer Modulo 5
La relazione uno a uno non è strettamente indispensabile, perché i dati della
seconda tabella potrebbero essere inseriti, senza problemi, nella prima
tabella. Questa relazione può risultare però utile, quando devi gestire dati
particolari per un numero limitato di record o dati che hanno una rilevanza
limitata nel tempo.
La relazione uno a molti, invece, come è già stato illustrato nell’esempio precedente, permette di risolvere i problemi di ridondanza di dati.
Sarebbe invece necessaria una relazione molti a molti nel caso un interlocutore fosse consulente per più aziende e che ogni azienda avesse più consulenti.
Per rappresentare una relazione molti a molti è necessario creare una terza
tabella, in genere denominata tabella di collegamento, che serve a suddividere la relazione molti a molti in due relazioni uno a molti. Nella terza tabella viene inserita la chiave primaria di ognuna delle tabelle, registrando così
ogni occorrenza o istanza della relazione.
Le relazioni molti a molti sono trattate nel modulo ECDL Basi di dati
Avanzato.
5.1.3.2
5.1.3.3
10
Come puoi vedere dalle figure precedenti, la relazione viene costruita legando un campo univoco di una tabella (per esempio, la chiave di ricerca primaria Azienda della tabella Aziende della figura 5.2) con un campo di un’altra tabella (nell’esempio il campo Azienda della tabella Interlocutori). Il
record logico viene costruito associando il record della prima tabella con
tutti i record della seconda tabella che hanno lo stesso valore nel campo
Azienda. Per esempio associo i dati del record della tabella Aziende che ha
nel campo Azienda il dato “Mondadori”, con i dati dei record della tabella
Interlocutori, che hanno nel campo Azienda lo stesso dato.
Quando generi delle relazioni è tuo interesse che venga mantenuta l’integrità delle relazioni stesse. Per esempio potresti avere la necessità di impedire che venga registrato un interlocutore di un’azienda che non è ancora stata
inserita in archivio, o che venga cancellata un’azienda con agganciati una
serie di interlocutori. Puoi attivare questa serie di controlli indicando al
sistema di mantenere l’integrità referenziale. Fai comunque attenzione che
questi controlli salvaguardano il tuo database da una serie di inconvenienti,
ma ti impongono dei vincoli che potrebbero mettere in difficoltà la gestione
del sistema. È quindi opportuno progettare attentamente sia le relazioni fra
tabelle, sia i controlli su di esse, al fine di ottenere un database efficiente e
versatile.
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 11
Sezione 1: Comprendere i database
L’integrità referenziale è un sistema di regole utilizzate a tale scopo: controlla che le relazioni tra i record delle tabelle correlate siano valide e impedisce
l’eliminazione o la modifica dei dati coinvolti nella relazione.
Puoi impostare l’integrità referenziale quando vengono soddisfatte tutte le
seguenti condizioni:
• il campo corrispondente della tabella primaria è una chiave primaria o
dispone di un indice univoco;
• i campi correlati contengono lo stesso tipo di dati salvo quando:
• un campo Contatore può essere correlato a un campo Numerico la
cui proprietà Dimensione campo sia impostata a Intero lungo;
• un campo Contatore la cui proprietà Dimensione campo sia impostata a ID replica, può essere correlato a un campo Numerico la cui
proprietà Dimensione campo sia anch’essa impostata a ID replica;
• entrambe le tabelle appartengono allo stesso database di Microsoft
Access.
11
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 12
Patente Europea del computer Modulo 5
Operatività
Progettazione, creazione, gestione
5.1.4.1
Un database Ordini, come quello riportato in figura 5.3, ha una struttura
molto semplice ed è costituito da tre tabelle.
La progettazione, creazione e gestione di questo database non necessitano
di competenze informatiche specifiche, e quindi il tutto è alla portata di un
utente finale.
Figura 5.3 Esempio di database di tre tabelle.
Si è però visto che il database relazionale può essere utilizzato per la realizzazione di grandi banche dati, contenenti anche milioni di record, e formate
da centinaia o anche migliaia di tabelle correlate. In questo caso, la progettazione e creazione del database devono essere affidate a specialisti, con elevate competenze in questo campo. È loro compito:
• definire le specifiche del database:
• i dati da inserire;
• le tabelle in cui inserire i dati;
• le relazioni tra le tabelle;
• le interrogazioni per estrarre informazioni sulla base di specifiche
esigenze;
• creare il database e sottoporlo a test;
• creare le interfacce verso gli utenti, in modo da facilitarne l’utilizzo.
Sono, invece, compito degli utenti del database:
5.1.4.2
12
• l’inserimento dei dati;
• il loro aggiornamento;
• l’estrazione delle informazioni volute.
04_Mod5-Modulo 5
14-07-2009
16:12
Pagina 13
Sezione 1: Comprendere i database
Queste operazioni sono facilitate dalle interfacce realizzate dagli specialisti,
in modo che le operazioni di gestione del database possano essere effettuate
da utenti, anche privi di competente specifiche sui database.
5.1.4.3
Quando si è in presenza di database con strutture complesse e costituite da
un elevato numero di tabelle e di dati, non è necessario che tutti gli utenti
debbano operare su tutto il database. Pensa, per esempio, alla banca dati del
sistema informativo dell’università; i vari uffici amministrativi sono interessati solo a una parte di questi dati:
• le Segreterie Studenti alle carriere degli iscritti all’Università;
• gli Uffici Contabili ai dati relativi alla gestione finanziaria;
• gli Uffici del Personale alla gestione delle carriere dei dipendenti.
Diventa, quindi, opportuno che ogni utente abbia accesso solo ai dati ai
quali è interessato nella sua attività. Inoltre l’accesso può essere con autorizzazione a visionare e aggiornare i dati, o limitato alla loro visione, in relazione all’attività svolta dall’utente.
La gestione delle autorizzazioni a quali dati accedere, e con quale modalità
(aggiornamento o sola lettura) è affidata a una figura professionale con competenze specifiche, l’Amministratore di Sistema (Database Administrator).
5.1.4.4
La banca dati aziendali costituisce un patrimonio importante, la cui integrità
condiziona l’andamento di tutta l’azienda. Durante la normale gestione delle
attività si possono verificare inconvenienti, sia di natura hardware sia
software, che causano gravi errori al database, errori che ne compromettono
la validità.
È compito dell’Amministratore di Sistema predisporre e mettere in atto gli
strumenti che permettono il recupero o la ricostruzione del database, quando si verificano tali problemi.
13