modulo 5
Access
ud1 Comprendere i database
ud2 Utilizzo dell’applicazione
ud3 Le tabelle
ud4 Cercare le informazioni
ud5 Gli oggetti maschere
ud6 Gestione delle stampe
Prerequisiti
• Disporre delle nozioni di base circa il funzionamento del PC e del sistema operativo
Obiettivi
• Saper creare e modificare tabelle, query, maschere e report
• Saper creare e gestire relazioni tra tabelle
• Saper estrarre e manipolare le informazioni contenute in un database
unità didattica 1
Comprendere i database
prerequisiti
Disporre delle nozioni base sul funzionamento del PC
Conoscere le basi dell’utilizzo del sistema operativo Windows
obiettivi
Distinguere tra dati e informazioni
Sapere cosa è un database e quali sono i modelli di database
Distinguere un DBMS da un database
Sapere come è organizzato un database relazionale
Conoscere cosa è una tabella e comprendere i concetti di campo, chiave primaria e indice
Capire l’importanza delle relazioni tra tabelle
Conoscere le diverse figure professionali che operano sui database
1. Introduzione
Molti ritengono che il motivo principale della diffusione dei computer nei diversi ambienti di lavoro, studio e
domestici sia da indicare nella capacità di memorizzare grandi quantità di dati.
Si pensi infatti che durante gli anni ’60 uno dei primi settori che ha visto l’introduzione degli elaboratori elettronici come strumento quotidiano di lavoro è stato quello bancario, nel quale era (ed è tuttora) molto sentita l’esigenza di conservare ed elaborare grosse quantità di dati.
Naturalmente, in quegli anni la presenza di dispositivi informatici nelle aziende non era lontanamente paragonabile a quella che oggi si può osservare in qualsiasi ambito di lavoro; inoltre, da allora sino ai giorni attuali, le prestazioni dei computer hanno seguito un andamento esponenziale, sia per quanto riguarda le velocità di calcolo dei microprocessori che la capacità di memorizzazione dei dati sui supporti connessi ai
computer.
Al giorno d’oggi, infatti, nessuno si meraviglia se anche l’utilizzatore più comune di sistemi informatici dispone della possibilità di immagazzinare centinaia di miliardi di byte su hard disk, CD-ROM, DVD ecc.
Pertanto, uno dei principali compiti di un sistema informatico è senza dubbio costituito dalle funzioni di raccolta, organizzazione ed archiviazione dei dati.
Molte attività ordinarie svolte nelle aziende, ma anche in ministeri, uffici e scuole sono rivolte infatti a gestire azioni su moli notevoli di dati, come elenchi di abbonati ad un certo servizio, quotazioni di titoli finanziari
nei mercati borsistici di tutto il mondo, movimenti dei conti correnti bancari o di carte di credito, gestione di
riscossione di crediti ecc.
D’altro canto, sempre più utenti chiedono l’accesso ai dati relativi alla loro posizione finanziaria (come ad
esempio la disponibilità del loro danaro attraverso POS, bancomat, carte di credito), anagrafica (stato di famiglia, certificato di residenza ecc.) o in relazione ad altre situazioni di vita quotidiana (certificazione delle
competenze, verifica dell’identità per ingresso a manifestazioni sportive ecc.).
Per garantire tutto ciò, è necessario non solo disporre di numerosi sistemi di memorizzazione dei dati, ma
anche seguire tecniche di progettazione di banche dati e utilizzare sofisticati sistemi software di gestione
delle informazioni che offrano all’utente finale risposte efficienti alle continue interrogazioni poste.
252
Modulo 5 • Access
Agli albori dell’informatica i dati erano organizzati in file separati, ciascuno dei quali conteneva dati di un
particolare aspetto del sottosistema informativo. In un’azienda esisteva pertanto il file anagrafico dei clienti,
quello dei fornitori, il file dei movimenti contabili, il file del piano dei conti ecc.
Ogni programma applicativo elaborava dati presenti su ciascun file e ciò spesso comportava una serie di fenomeni negativi tra i quali la dipendenza dei programmi dai dati: quando emergeva il bisogno o la necessità di mutare la struttura di un file, ad esempio per l’inserimento di un nuovo attributo oppure per la variazione (in dimensione o in tipologia) di un attributo preesistente o per la sua rimozione, si era costretti a rivedere tutti i programmi
che avevano a che fare con quei file variati, con conseguenze di aumento di costi ed impegni lavorativi.
Un altro inconveniente dell’organizzazione tradizionale dei file era dovuto alla presenza multipla degli stessi
dati su archivi separati. Questo fenomeno, noto con il termine di ridondanza, era dovuto al fatto che a causa
della dipendenza dei programmi dai dati la disponibilità di questi ultimi doveva essere garantita a ciascun
programma e pertanto ciò rendeva necessario duplicare i dati su diversi file.
Gli svantaggi della ridondanza di dati non erano limitati al solo costo della loro memorizzazione sui diversi
supporti, ma riguardavano anche l’impegno connesso alle operazioni da eseguire per garantire gli aggiornamenti di tutte le occorrenze in tutti gli archivi, in conseguenza di una variazione.
Consideriamo ad esempio un ipotetico Sistema Informativo riguardante l’Ufficio Fatturazione di un’azienda di
distribuzione, che memorizza parte dei suoi dati di gestione in tre file:
• Clienti, contenente i dati anagrafici dei propri clienti;
• Fatture, contenente le operazioni di vendita;
• Solleciti, contenente le richieste di pagamento ai clienti morosi.
Ipotizziamo che i file contengano i seguenti dati:
File Clienti
Codice Cliente
Ragione Sociale
Indirizzo
Località
E-mail
Telefono
Data ultima fattura
File Fatture
Numero fattura
Data fattura
Codice Cliente
Ragione Sociale
Indirizzo
Imponibile
Importo Iva
Totale fattura
File Solleciti
Codice Cliente
Ragione Sociale
Indirizzo
Località
Numero fattura
Data fattura
Importo fattura
UD1 • Comprendere i database
253
È chiaro che una situazione del genere comporta inevitabilmente che gli stessi dati (ad es. Indirizzo o Importo
fattura) compaiano più volte sia nei diversi file che addirittura all’interno dello stesso file (Fatture e Solleciti)
Gli svantaggi di tale ridondanza comporterebbero notevoli disagi oltre che situazioni ad alto rischio: se ad
esempio un cliente comunicasse un cambiamento di indirizzo occorrerebbe procedere alla variazione di quell’indirizzo in tutti i file in cui esso è memorizzato.
Se si pensa che le variazioni dei dati in un’azienda di dimensioni medio-grandi sono frequentissime è inevitabile attendersi che in casi non sporadici tali numerosi aggiornamenti non siano sempre eseguiti, comportando
ciò l’ulteriore problema dell’incongruenza dei dati.
In questi casi, un’interrogazione del sistema informatico può portare a risultati errati, dovuti alla presenza di
dati non corrispondenti ad una mutata realtà, a causa del mancato aggiornamento di dati ridondanti.
Questi fenomeni negativi causavano dunque una mancata affidabilità del sistema informativo, detto anche
inconsistente.
A questi limiti, propri della struttura tradizionale dei file diffusa sino agli anni ’70, è stata data risposta attraverso la realizzazione dei database e la loro diffusione nell’ambito dei sistemi informatici.
2. Dati, informazioni e database
(syllabus 5.1.1.1; 5.1.1.2; 5.1.1.4)
Quando si discute della descrizione di un evento reale, dati e informazioni sono spesso utilizzati come sinonimi, anche se si tratta di due concetti ben distinti fra loro.
Da un punto di vista generale, il dato è un attributo di un fatto reale. Ad esempio, considerando una determinata scuola, «800» potrebbe rappresentarne un dato, così come «Diaz» potrebbe rappresentare un altro dato.
In altre parole, riprendendo l’esempio appena avanzato, «800» e «Diaz» potrebbero rappresentare due attributi di quella realtà scolastica, che contiene al suo interno migliaia e migliaia di dati.
«800» potrebbe rappresentare il costo in euro di un dispositivo informatico acquistato dalla scuola oppure il numero
dei banchi inventariati oppure il prefisso telefonico del servizio di iscrizione attivato dall’istituto. «Diaz» invece potrebbe essere il nome di un alunno, oppure il nome della Via dove si trova la sede succursale della scuola, o altro ancora.
Quei dati si trasformano in informazioni solo se sono sottoposti ad un processo di interpretazione e di contestualizzazione.
L’informazione, dunque, è qualcosa che accresce la conoscenza ed è ottenuta dall’elaborazione di più dati.
Quando i dati, da semplici rilevazioni di eventi, sono riorganizzati in modo da essere trasformati in qualcosa
di utile, comprensibile e significativo, allora diremo di aver ottenuto l’informazione.
Sempre riferendoci all’esempio precedente, potremmo dire che «La scuola Diaz è frequentata da 800 studenti»:
in questo caso abbiamo delle informazioni che accrescono la conoscenza di chi le riceve.
In fondo, da queste semplici considerazioni si ottiene la sintesi dell’importanza dell’informatica nel mondo
attuale: l’elaborazione di semplici (ma numerosi) dati eseguita da un computer in tempi rapidissimi produce
l’informazione, vero valore aggiunto del processo elaborativo.
Lo schema riprodotto nella
figura 1 aggiunge anche
ulteriori elementi di riflessione: i dati costituiscono
l’input (immissione) del
processo elaborativo; l’inFig. 1 Elaborazione di dati e informazioni
formazione si può anche
identificare come il risultato dell’elaborazione.
Dovrebbe risultare chiaro che quando l’utente di un sistema informatico indirizza una richiesta, ovvero esegue
un’interrogazione (query), egli è alla ricerca ed in attesa di ottenere informazioni.
Da un altro punto di vista, occorre riflettere su un aspetto: l’uomo moderno è letteralmente sommerso da quantità
enormi di dati che invece di creare un beneficio provocano uno squilibrio ed un vero e proprio «stress informativo».
Un computer, allora, se è supportato, come vedremo tra poco, da un efficiente sistema di memorizzazione e di gestione di database, è utile per elaborare correttamente i numerosi dati e fornire informazioni puntuali e preziose.
Una prima definizione di database potrebbe essere la seguente: un database o base di dati è una raccolta
coordinata ed integrata di dati, progettata e organizzata in modo che i dati siano fruibili in modo semplice da più applicazioni e da più utenti.
254
Modulo 5 • Access
Dalla definizione precedente emergono alcune caratteristiche:
• i dati sono memorizzati in più archivi ma costituiscono un unico oggetto contenitore (il database);
• il reperimento delle informazioni dal database deve essere facile, veloce e possibile attraverso un «motore»
di accesso;
• al database può accedere qualsiasi programma per compiere interrogazioni o per arricchire l’intero patrimonio informativo;
• il database serve una molteplicità di utenti che contemporaneamente possono attingere ai dati in esso
contenuti.
Si può ora passare ad una definizione più completa di database: un database è un insieme organizzato di dati,
strettamente correlati e memorizzati su un supporto di memoria ausiliaria costituenti un’unica raccolta unitaria, controllata da un software generalizzato di gestione con lo scopo di raggiungere un alto grado di efficienza nel trattamento, nella ricerca e nella distribuzione delle informazioni.
Perciò, quando si parla di database non si deve pensare ad un singolo file o ad uno specifico elenco di dati
relativi, ad esempio, ad un insieme di clienti o amici o libri, ma ad una realtà più articolata di un settore informativo.
Un database risponde piuttosto al bisogno di tenere sotto controllo differenti aspetti di un ambito più ampio
e che abbracci diverse entità informative, sia statiche che dinamiche, cioè che presentano continuamente
variazioni sia qualitative che quantitative.
Se vogliamo ad esempio gestire una biblioteca, seppur piccola, è conveniente pensare ad un database, in
quanto occorre non solo memorizzare libri, ma anche autori, materie, soggetti cui si prestano libri e dai quali
devono ritornare ecc.
Altri semplici esempi di situazioni informative che richiedono il ricorso a database potrebbero essere la gestione di orari scolastici, le visite di uno studio medico, i sondaggi telefonici ecc.
In tutti questi casi, oltre a memorizzare in modo più o meno statico i dati delle rilevazioni degli eventi in oggetto, si tratta poi di procedere ad elaborazioni che rispondano a domande del tipo:
•
•
•
•
•
in quali classi il prof. Rossi va il martedì?
quali sono i giorni nei quali la classe I A svolge 6 ore?
quante sono le visite mediche dentistiche da svolgere oggi?
in quale zona risiedono coloro che sono favorevoli alla domanda 3 del sondaggio?
qual è la percentuale di maschi che ha risposto negativamente alla domanda 6?
Naturalmente nelle realtà aziendali, dalla bottega più piccola sino alla grande azienda multinazionale, i database costituiscono gli strumenti informativi costanti e puntuali cui fa riferimento qualsiasi sistema informativo automatizzato, dal personal computer stand alone
al main frame o supercomputer di cui dispone
una grande società commerciale.
capiamo le parole
Stand alone: quando un computer
è usato in modo autonomo e
pertanto non è collegato ad una
rete di computer viene indicato
con il termine stand alone.
Main
frame:
con questo termine
dimensioni, in grado di fornire
alte prestazioni, sia nel senso del
numero di utenti serviti dalle
elaborazioni (centinaia o migliaia)
che in quello del numero dei
processi eseguiti in una certa
unità di tempo.
si indica un computer di grandi
Tra gli utilizzi più comuni di database di grandi
dimensioni ai quali accediamo frequentemente
nel corso della giornata, indichiamo i seguenti settori:
•
•
•
•
mezzi di trasporto e di locomozione collettivi;
servizi della Pubblica Amministrazione;
servizi bancari;
sanità pubblica.
Per quanto riguarda i mezzi di trasporto e rispondendo alle crescenti richieste di trasferimento da un luogo
all’altro della Terra, il sistema di prenotazione di posti aerei è l’esempio più frequente di utilizzo di database.
Le prenotazioni dei biglietti vengono effettuate presso agenzie di viaggio o da casa attraverso applicazioni
connesse via Internet ai database dei diversi vettori di viaggio.
È importante comprendere che in questi casi risulta cruciale che il database (o DBMS) sia connesso in tempo
reale con le diverse entità informative costituenti il database stesso, in quanto l’effetto di una prenotazione
UD1 • Comprendere i database
255
di un posto deve avere un effetto diretto ed immediato in tutto il database, in modo da rendere indisponibile
lo stesso posto ad un altro utente da quell’istante in poi.
In questo caso deve essere garantito anche un sistema di riconoscimento dell’utente, allo scopo di dare affidabilità alla prenotazione e di consentire il pagamento del biglietto, usualmente eseguito attraverso sistemi
di pagamento elettronici (carta di credito, Poste-pay, Bancomat ecc.).
Anche la Pubblica Amministrazione offre una serie di servizi al pubblico, con la messa a disposizione dei suoi
database attraverso postazioni speciali presso i suoi uffici oppure direttamente a casa dei cittadini con il ricorso alla rete Internet.
Esempi significativi e riconosciuti di enti pubblici che si sono distinti in questo campo sono l’INPS, l’ENPDAP,
i diversi Ministeri, le Regioni, i Comuni, le Università ecc.
In tutti questi casi, con le dovute specificità, i database messi a disposizione riguardano due sfere di competenza: da un lato, le applicazioni espongono a video ed in stampa dati di pubblico interesse come leggi, circolari, direttive, disposizioni ed informazioni di vario genere.
Se invece il cittadino vuole accedere ad una situazione specifica riguardante la propria posizione personale,
ad esempio il proprio estratto contributivo INPS o il cedolino paga mensile o una certificazione anagrafica,
allora occorre dapprima procedere ad una fase di registrazione durante la quale il sistema si accerta della
reale autenticità della persona, anche in rispetto alle normative che tutelano la privacy.
Una volta terminata con successo la fase di registrazione, normalmente l’utente riceve a casa o presso la propria casella di posta elettronica (indicata durante la registrazione) una coppia di codici personali e riservati,
denominati User-id e password.
Quando l’utente vuole accedere al database per ottenere servizi ad una sua richiesta, il DBMS richiede la Userid e la password per garantire la riservatezza e concedere l’autorizzazione ai dati.
Il settore bancario è tra quelli che fanno ricorso più frequentemente alle applicazioni di database per offrire
servizi a casa per i propri clienti: oggi qualsiasi istituto di credito si presenta come banca on-line sia per migliorare la qualità dei servizi ed il grado di soddisfazione della propria clientela che per attuare il contenimento dei costi delle agenzie, comunque presenti nel territorio.
In ogni caso, le applicazioni informatiche che viaggiano in rete attraverso sofisticati programmi in linguaggi
evoluti come Java, HTML, PHP mettono a disposizione dei propri utenti — garantendo nel contempo con rigorosissimi algoritmi di crittografia la privatezza delle comunicazioni delle informazioni — dati, notizie e documenti relativi ai rapporti di conto corrente, deposito titoli, mutui ecc.
Tra i servizi pubblici che hanno risentito positivamente dell’avvento dell’informatica distribuita, si annovera
senza dubbio la sanità pubblica. Sempre più spesso il cittadino ricorre al CUP (Centro Unico di Prenotazione)
attraverso il quale accede ai servizi ospedalieri per visite, ricoveri, prestazioni specialistiche ecc., in tempo
reale e senza fare code di attesa agli sportelli amministrativi. In diversi casi si può anche ottenere a casa propria, senza dispendio di energia e costi di trasporto, la propria cartella sanitaria o l’esito di una prestazione.
Tutto ciò viene ottenuto attraverso la progettazione, la realizzazione e la manutenzione di database interconnessi all’interno della struttura pubblica ed in qualche caso (sempre più frequente) anche verso database di
altri comparti pubblici.
3. Database e DBMS
(syllabus 5.1.1.1)
Con il termine di Data Base Management System (DBMS) si indica il programma di gestione del database
che si occupa della memorizzazione, dell’organizzazione e della gestione dei dati: è ad esso che fanno capo
tutte le operazioni di inserimento di nuovi dati, di cancellazione di quelli inutili, di modifica di quelli obsoleti
od errati, e di ricerca.
Attraverso il sistema di gestione del database, l’elaborazione dei dati contenuti nel database, aggregati tra loro
o estratti secondo i criteri fissati in sede di progetto, sarà in grado di fornire informazioni, ossia di accrescere
il livello di conoscenza dei fruitori del database.
Ai fini della ricerca di informazioni, inoltre, sarà possibile catalogare i diversi dati ed estrarre solo quelli interessanti ed utili per le richieste di volta in volta proposte dall’utente finale, che sarà facilitato nel prendere le
decisioni.
256
Modulo 5 • Access
seguimi
DBMS (Data Base Management System)
Un Data Base Management System è un programma che consente di archiviare, modificare ed elaborare dati in un database;
oltre alle funzioni di inserimento, modifica, cancellazione e ricerca dei dati, sono previste anche altre azioni:
• valida i dati, ossia controlla che siano corretti e rispondano alle regole d’inserimento fissate dal progettista in base a criteri
indicati dall’utente (ad esempio una data deve essere compresa tra due estremi, oppure un numero non può essere negativo).
Questi controlli danno luogo a quella che viene definita integrità dei dati;
• verifica che non ci siano inutili duplicazioni di dati, che causano ridondanza, e permette di eliminarle senza perdita sostanziale d’informazione. Questa operazione si chiama normalizzazione del database;
• organizza i dati secondo la struttura prestabilita in fase di progettazione e li ordina di conseguenza, ossia li indicizza;
• controlla che le operazioni sui dati (lettura/scrittura/cancellazione) siano consentite alle sole persone autorizzate, ad esempio
limitando l’accesso attraverso password. In tal modo vengono rispettate la riservatezza e la sicurezza dei dati;
• regola gli accessi concomitanti di più utenti allo stesso database per evitare conflitti ed incoerenze (assegnazione dello
stesso posto in treno o della stessa camera d’albergo a due persone diverse, spedizione della stessa merce a due clienti
ecc.);
• elabora i dati e rende le informazioni ottenute accessibili agli utenti;
• verifica che alla modifica di un dato faccia seguito l’aggiornamento di tutti i dati eventualmente dipendenti da esso.
Con l’adozione del DBMS, più applicazioni possono
accedere allo stesso database, come schematizza la
figura 2.
Si ribadisce, così come emerge dalla figura 2, che
DBMS e database sono due cose ben distinte: il
primo è il sistema di programmi che operano sul
database e rendono possibile la sua fruizione per gli
utenti finali; il database è formato esclusivamente
dai dati e dalle relazioni esistenti fra essi.
Tra i più diffusi DBMS esistenti sul mercato si indicano: ORACLE di Oracle Corporation, Informix, DB2 di
IBM, SQL Server di Microsoft e MySQL di MySQL AB.
Fig. 2 Data Base Management System
In conclusione, i vantaggi dell’adozione di un DBMS per la gestione di un database sono così sintetizzabili:
•
•
•
•
•
•
•
indipendenza dati/programmi;
utilizzo da parte di più utenti;
riduzione delle ridondanze;
facilità di accesso;
integrità dei dati;
sicurezza dei dati;
uso di linguaggi per la gestione dei database.
seguimi
Dati e metadati
I dati raccolti in un database si possono suddividere in due categorie:
• metadati: formano lo schema del database e comprendono le regole di validazione (vincoli d’integrità) e il modo in cui i dati
sono collegati tra loro. Lo schema deve essere definito in fase di progettazione dell’archivio, ovvero prima di iniziare ad inserire i dati, ma non è fisso ed immutabile, poiché, nel tempo, può essere sottoposto a modifiche;
• dati veri e propri: sono una rappresentazione della realtà (nel magazzino aziendale ci sono 100 pezzi di batterie alcaline, il
codice d’avviamento postale di Roma è 00100, il primo verso della Divina Commedia è «Nel mezzo del cammin di nostra vita»
ecc.), ma possono anche essere previsioni o ipotesi (forse il prossimo bilancio sarà in attivo), purché siano conformi ai metadati, nel senso che devono rispettare le regole e la struttura del database fissate nello schema.
I dati devono essere organizzati in insiemi omogenei, collegabili con altri, e devono essere indipendenti dal DBMS che li gestisce:
in caso contrario, l’obsolescenza di un DBMS provocherebbe il mancato riutilizzo del database creato e gestito da esso.
Un database corretto deve altresì possedere un carattere di coerenza, affidabilità ed i dati in esso contenuti non devono essere
contraddittori: se risponde a queste caratteristiche si dice che il database è consistente.
UD1 • Comprendere i database
257
Tornando al Sistema di Gestione di Data Base, occorre dire che esistono diversi DBMS, nel senso che è possibile ispirarsi a diversi modelli di data base:
• modello gerarchico;
• modello reticolare;
• modello relazionale;
• modello ad oggetti.
Il modello gerarchico di database dal punto di vista cronologico è stato il primo ad essere stato adottato, alla
fine degli anni ’60.
Secondo tale modello, i dati devono essere rappresentati secondo una struttura ad albero, nella quale gli archivi sono costituiti da ricorrenze (dette segmenti) legate da rapporti gerarchici del tipo padre-figlio.
Un segmento (padre), perciò, può avere uno o più segmenti (figli) ad esso subordinati ed il rapporto è del tipo 1 a n.
La figura 3 schematizza quanto accennato, riportando l’organizzazione dei dati
presenti in una fattura, dove nella parte
superiore, detta testata, compaiono i dati
generali del documento (numero, data,
cliente, modalità di pagamento, indirizzo
di spedizione, imponibile Iva, importo
totale ecc.). Nella parte centrale del documento, invece, compaiono le righe, in
Fig. 3 Struttura gerarchica di una fattura
numero variabile (da 1 a n), in ciascuna
delle quali presumibilmente si indica
l’articolo, la quantità venduta, il prezzo
unitario ecc.
Il modello reticolare di database ha cercato di dare una risposta ai limiti e agli svantaggi insiti nel modello
gerarchico.
Se infatti in un data base gerarchico un segmento figlio può avere solo un segmento padre, nel database reticolare il rapporto è del tipo n a m, e ciò viene consentito dalla presenza di record di collegamento (link).
La figura 4 rappresenta un modello reticolare di data base.
Nel 1970 un decisivo contributo offerto
da Edward Codd ha permesso di introdurre un nuovo modello di database,
denominato relazionale e che attualmente costituisce il più diffuso tipo di
modello adottato nei database.
In un database relazionale i dati sono
organizzati in tabelle collegate tra loro
in modo da limitare al massimo il rischio
delle ridondanze dei dati, in quanto la
Fig. 4 Schema del modello reticolare di database
suddivisione dei dati fa sì che in ogni
tabella non ci siano duplicati.
Ogni tabella contiene dati omogenei (per esempio: la tabella delle schede anagrafiche clienti, la tabella dei
fornitori, la tabella degli studenti ecc.).
Le righe di una tabella sono dette record, mentre le colonne costituiscono i campi, così come rappresentato
in figura 5.
Campo 1
Dato 11
Dato 21
.....
Dato N1
Campo 2
Dato 12
Dato 22
.....
Dato N2
.....
....
Fig. 5 Struttura di una tabella di un database relazionale
258
Modulo 5 • Access
Campo K
Dato 1K
Dato 2K
.....
Dato NK
Record
Ogni colonna, ovvero ogni campo di una tabella deve avere una serie di caratteristiche (proprietà), tra le quali:
• un nome;
• un formato (testo, numerico, data ecc.);
• una dimensione;
• l’indicazione dell’obbligatorietà del dato o meno.
Il modello di database ad oggetti, sviluppato negli anni ’80, prevede l’estensione di alcune caratteristiche
tipiche del modello relazionale per rispondere alle esigenze delle applicazioni multimediali. In particolare,
questo modello adotta il paradigma della programmazione ad oggetti (OOP) anche per le operazioni di manutenzione dei dati.
4. Organizzazione del database
(syllabus 5.1.1.3; 5.1.2.1; 5.1.2.2)
Come abbiamo accennato alla fine del precedente paragrafo, nel modello relazionale i dati sono memorizzati
in tabelle. Ciascuna tabella, come si può vedere in figura 5, a prima vista assomiglia ad un foglio elettronico,
nel senso che i dati sono divisi in righe ed in colonne; in realtà, invece, la tabella è una struttura suddivisa in
record, ciascuno dei quali contiene i diversi attributi (campi) dell’oggetto da memorizzare.
Perché il database sia corretto dal punto di vista del modello logico, occorre che ogni tabella contenga dati
relativi ad una sola entità di riferimento.
Ad esempio, se ci riferiamo ad un database di gestione di una biblioteca scolastica, si può pensare che le entità di riferimento possano essere i libri, gli autori, le materie di riferimento di ciascun libro, i movimenti di
prestiti e di restituzione dei libri.
In questo caso, è tassativo che ogni tabella contenga solo dati relativi ad una singola entità e perciò si
avranno le seguenti tabelle:
• tabella LIBRI;
• tabella AUTORI;
• tabella MATERIE;
• tabella PRESTITI;
• tabella RESTITUZIONI.
Volgendo ora l’attenzione alla struttura di una tabella ed in particolare alla struttura di ciascun record, occorre rammentare che è compito del progettista del database individuare gli attributi da memorizzare.
Ad esempio, per la tabella LIBRI si potrebbe pensare di memorizzare per ciascun libro i seguenti attributi:
• codice libro;
• titolo libro;
• codice autore;
• codice materia;
• anno edizione;
• prezzo libro;
• prestato (sì / no).
Una cosa importante da
tener presente è che è
buona pratica d’uso l’attribuzione a ciascun campo di un solo dato elementare, ovvero ogni
campo deve contenere
«attributi atomici».
Fig. 6 Best practice per la progettazione di campi
Pertanto è una best practice progettare e realizzare campi come codice fornitore, importo fido, data fattura, mentre è assolutamente da evitare un campo che
contenga l’indirizzo di un soggetto (inteso come unione della via, della località, della provincia e del c.a.p.),
oppure un campo che contenga l’identificativo di un condomino come isolato, scala, piano, interno.
Come mostrato nella figura 6, una soluzione da adottare è quella di memorizzare ciascuna componente dell’indirizzo o dell’immobile nel campo specifico.
UD1 • Comprendere i database
259
5. Progettare i campi di una tabella
(syllabus 5.1.2.3; 5.1.2.4)
Ogni campo deve essere identificato da un nome e deve appartenere ad uno dei tipi seguenti:
•
•
•
•
•
•
•
testo, lungo fino a 255 caratteri;
memo, testo lungo fino a 64 Kb;
numero;
data;
valuta;
logico, che verifica se una condizione è vera o è falsa;
numerazione automatica, generato automaticamente.
Ogni campo si distingue per determinate caratteristiche, dette proprietà quali, ad esempio, la
capiamo le parole
dimensione, il formato (ad esempio, una data
Default: si può tradurre in italiano la stampante predefinita può
può essere espressa con la notazione italiana,
con il termine difetto; «valore di anche essere detta di default,
gg/mm/aa, o con quella anglosassone che predefault», in informatica, indica perché è quella verso cui sono
«valore che assumo implicitamen- indirizzate le stampe, a meno che
vede il formato mm/gg/aa), il valore predefinite, in difetto di una diversa istru- l’operatore non ne indichi una
to (si può stabilire ad esempio che un campo
zione». In modo del tutto analogo, differente.
numerico sia, per default, uguale a 1 fino a che
l’utente non digiti un numero diverso) e le cosiddette regole di validazione (si può decidere ad esempio che una data sia valida, e quindi accettata e archiviata nel database, solo se compresa tra il 1° gennaio 1990 e il 31 dicembre 2030).
Le proprietà non sono fisse, ma dipendono dal tipo di dati ai quali si riferiscono, come vedremo in seguito
quando descriveremo le modalità operative dell’uso di Microsoft Access 2010.
6. Il significato di una chiave primaria e dell’indice
(syllabus 5.1.2.5; 5.1.2.6)
La chiave primaria di una tabella è un campo o una combinazione di campi il cui scopo è di identificare univocamente ogni record: ogni record della tabella, cioè, possiede valori diversi per il campo (o i campi) chiave.
Ad esempio, se pensiamo alla tabella dei dati anagrafici delle persone residenti in un certo comune, un campo
chiave potrebbe essere il codice fiscale che individua univocamente un cittadino: ad ogni codice fiscale corrisponde un solo cittadino, così come ogni cittadino possiede un codice fiscale personale e diverso da quello
degli altri.
Si precisa che la presenza del campo chiave in una tabella non è obbligatoria: se lo si considera opportuno, si
può anche realizzare una tabella senza chiave primaria. La mancanza della chiave primaria, infatti, come sarà
chiarito successivamente, potrebbe essere giustificata dall’elaborazione sequenziale di tutti i record della tabella.
In un database la chiave primaria è lo strumento che permette di accedere ai dati di una tabella e di trovare
rapidamente i dati ricercati; inoltre, essa evita che in una tabella ci siano record duplicati: la sua impostazione di default, infatti, è «Duplicati non ammessi». Altro compito della chiave è quello di riordinare i dati, in
altre parole di indicizzarli: infatti, l’ordine naturale dei record presenti in una tabella è quello seguito in fase
di inserimento, operazione che può essere avvenuta in modo disordinato e casuale.
L’efficienza della chiave primaria e dell’indice ad
essa associato è particolarmente evidente in
capiamo le parole
tabelle di grandi dimensioni perché, in assenza
R andom : casuale; si definisce della memoria centrale del comdi chiave, è indispensabile effettuare la scansiorandom un fenomeno la cui pos- puter ed in particolare a quella
ne dei record uno alla volta, dal primo all’ultimo
sibilità di verificarsi è regolata volatile, detta memoria Ram
registrato in fase di inserimento, fino a trovare
soltanto dalle leggi delle proba- (Random access memory) il cui
bilità. L’aggettivo random è anche significato letterale è: memoria
il dato ricercato. La tabella senza campo chiave,
connesso ad una caratteristica ad accesso casuale.
infatti, come abbiamo appena visto, presenta i
dati in ordine sequenziale, vale a dire secondo
la sequenza con la quale sono stati inseriti, mentre la tabella indicizzata consente l’accesso random, ossia
casuale, alla tabella, nel senso che si può accedere direttamente ad un suo qualsiasi record: la presenza della
chiave primaria permette di trovare e raggiungere direttamente il dato cercato, senza dover scorrere e legge-
260
Modulo 5 • Access
re i record precedenti. Per questa sua funzione, la chiave primaria è paragonabile all’indice analitico di un libro,
che indica in quale pagina si trova la parola cercata, o allo schedario di una biblioteca, nel quale è indicata
l’esatta collocazione di ogni libro.
Quando si progetta una tabella assume particolare importanza la scelta di una chiave che sia veramente univoca,
per evitare qualsiasi ambiguità: come già si è accennato inizialmente, ad esempio, in un database contenente
numerosi dati anagrafici sarà opportuno definire come chiave primaria un codice (come ad esempio quello fiscale) che è sicuramente un dato univoco (nel senso che non esistono due codici uguali), piuttosto che il cognome,
che invece si può prestare a casi di omonimia: possono esistere più persone aventi lo stesso cognome.
La tabella può anche essere ordinata secondo una chiave diversa da quella primaria: in questo caso definiremo
anche altre chiavi, creando altri indici nella tabella su altri campi.
Un indice è perciò un campo qualsiasi della tabella in base al quale il DBMS ordina i dati, in modo da rendere più veloce la ricerca in base ai dati presenti in quel campo.
Naturalmente, la chiave primaria costituisce un indice di default. Tuttavia, in aggiunta alla chiave primaria, è
possibile creare altri indici in funzione dell’uso che si intende fare dei dati contenuti nella tabella.
È opportuno creare uno o più indici in presenza di un database costituito da tabelle di grandi dimensioni fra
le quali si realizzano numerose relazioni. In questi casi, la ricerca dei dati richiesti dall’utente del database è
lenta e può richiedere tempi estremamente lunghi. Con la creazione di indici, invece, le operazioni da parte del
DBMS sono semplificate e rendono i tempi di attesa più brevi.
7. Creare relazioni tra tabelle
(syllabus 5.1.3.1; 5.1.3.2)
Quando si utilizza un database occorre evitare il fenomeno della ridondanza di dati, ossia che in una tabella
siano presenti dati duplicati o dati già presenti in altre tabelle.
Pertanto, in un database relazionale, come si è già accennato inizialmente, ogni tabella deve contenere una
sola tipologia d’informazioni, come, ad esempio i dati anagrafici degli impiegati, oppure gli ordini di vendita
da evadere oppure gli articoli a magazzino e così via.
Lo schema rappresentato in figura 7 ipotizza che il sistema informativo della gestione ordini sia contenuto
principalmente in tre tabelle (CLIENTI, COMMESSE e PARTI), contenenti rispettivamente i dati relativi ai clienti, all’evasione di commesse di vendita e agli articoli presenti in magazzino.
CLIENTI
COMMESSE
PARTI
cod
nome
località
num
codcli
codpar quantità
codpar
descr. merce
giacenza
100
ROSSI
BRESCIA
1
150
A25
1
A10
Lyptus 4/4
300
150
BIANCHI
MILANO
2
100
A10
3
A25
Ash 4/4
120
170
VERDI
MILANO
3
150
B27
4
B27
Red Oak 4/4
45
4
170
A25
2
C05
Cherry 4/4
5
Fig. 7 Esempio di suddivisione di dati in più tabelle
La tabella COMMESSE contiene per ogni riga il numero della commessa di vendita (num), il codice del cliente (codcli),
il codice della merce a magazzino ordinata (codpar) e la quantità (quantità). Ogni codice (cliente e merce) trova
consistenza nelle tabelle CLIENTI e PARTI che riportano i dati anagrafici e la quantità giacente a magazzino.
Così facendo, si evitano inutili ripetizioni di dati su più righe: se ad esempio si prendono in esame la prima e
la terza commessa, si può notare che esse fanno riferimento allo stesso cliente, ma non ne ripetono il nome
(Bianchi), ma solo il codice (150). Analogamente, la prima e la quarta riga memorizzano la stessa merce (Ash
4/4), ma non ripetono la descrizione e la giacenza, riferendosi al solo codice A25.
Le singole tabelle così create risultano di dimensioni più ridotte, e sono manutenibili con ragionevoli livelli di
facilità e flessibilità.
D’altro canto, ed in riferimento al fatto che i dati sono memorizzati in tabelle separate, è necessario un metodo per collegare i dati: per ottenere ciò, bisogna allora stabilire relazioni tra diverse tabelle.
Nell’esempio rappresentato nella figura 7, per collegare i dati del cliente 150 alle commesse della prima e
della terza riga e per collegare i dati del particolare di magazzino A25 alle commesse della prima e della quarta riga occorre correlare le tre tabelle CLIENTI, COMMESSE e PARTI.
UD1 • Comprendere i database
261
Per poter stabilire le relazioni tra tabelle diverse è però necessario che queste abbiano almeno un campo in
comune perché, in caso contrario, non sarà possibile correlarle.
fai attenzione
Per poter stabilire una relazione tra due tabelle è necessario che entrambe contengano un campo dello stesso tipo
e della stessa lunghezza; in altre parole, le proprietà devono essere uguali.
Nella figura 8 sono mostrate le due relazioni esistenti rispettivamente tra le tabelle CLIENTI e COMMESSE e
tra le tabelle PARTI e COMMESSE. La prima relazione è assicurata dalla presenza in ambedue le tabelle dal
campo codice cliente, mentre la presenza del campo codice parte garantisce la relazione tra le tabelle COMMESSE e PARTI.
Fig. 8 Esempio di relazioni tra diverse tabelle assicurate da campi comuni
Ricordiamo che le relazioni rendono possibile consultare un database relazionale utilizzando le query (in
italiano interrogazioni), che permettono di estrarre da più tabelle i dati che interessano e di riunirli ed
organizzarli come se fossero contenuti in una nuova ed unica tabella «virtuale». Le informazioni così
ottenute potranno essere stampate in un resoconto, oppure visualizzate sullo schermo in una tabella
unica, anche se i dati che la costituiscono continuano ad essere archiviati, ognuno, in tabelle d’origine
separate.
seguimi
In un database relazionale esistono tre tipi di relazioni: uno-a-uno, uno-a-molti e molti-a-molti. Nel caso della relazione tra
le tabelle CLIENTI e COMMESSE la relazione è del tipo uno-a-molti in quanto per ogni record della tabella CLIENTI possono esistere diversi record della tabella COMMESSE: uno stesso cliente può effettuare diversi ordini di vendita.
In questo caso, la tabella CLIENTI prende il nome di tabella primaria, mentre la tabella COMMESSE è chiamata tabella correlata.
Se invece ipotizziamo che esista un’altra tabella ALTRIDATI contenente le modalità di pagamento e di spedizione per ciascun
cliente, la relazione tra le tabelle CLIENTI e ALTRIDATI è del tipo uno-ad-uno in quanto ogni cliente ha una sola coppia di modalità pagamento e spedizione.
Il tipo di relazione molti-a-molti si adatta invece al caso di due tabelle PRODOTTI e FORNITORI, laddove per ogni prodotto si possono avere diversi fornitori, ma un fornitore può rifornire diversi prodotti.
8. Mantenere l’integrità delle relazioni tra tabelle
(syllabus 5.1.3.3)
Nella fase di progettazione del database occorre definirne la struttura, la suddivisione delle tabelle e le regole
di validazione, per rendere veloce la consultazione e, soprattutto, per garantirne la consistenza.
Da questo punto di vista, particolare attenzione va posta alla definizione delle regole alle quali assoggettare le relazioni tra tabelle, per evitare che le query riportino risultati poco rilevanti o, peggio ancora,
incoerenti.
In questo contesto, viene denominata integrità referenziale l’insieme di regole e norme da rispettare per
svolgere le operazioni di inserimento, variazione e cancellazione di dati tra tabelle correlate.
262
Modulo 5 • Access
Ad esempio, riferendoci a quanto descritto a proposito delle tabelle riportate in figura 7, se si vuole inserire un
nuovo ordine, bisogna scrivere un nuovo record nella tabella COMMESSE con i seguenti campi:
Numero commessa
Codice cliente
Codice particolare
Quantità
Se si inserisse un codice cliente inesistente nella tabella CLIENTI, si potrebbe generare un’incoerenza nel database, così come se si inserisse un codice di un particolare inesistente nella tabella PARTI. Per evitare queste
due situazioni rischiose, occorre applicare l’integrità referenziale.
Analogamente, l’integrità referenziale blocca la variazione errata dei dati in una tabella primaria e necessaria
per una tabella correlata: si pensi alla cancellazione del cliente con codice 150 nella tabella CLIENTI che provocherebbe l’inconsistenza di tutti gli ordini relativi a quel cliente.
In definitiva, il mantenimento dell’integrità delle relazioni tra tabelle impone che prima di aggiungere un record
ad una tabella correlata, bisogna che nella tabella primaria esista già un record corrispondente, così come
viene assolutamente vietata sia una modifica della chiave che la cancellazione del record di una tabella primaria, in presenza di record corrispondenti in una tabella correlata.
9. La progettazione di database professionali
(syllabus 5.1.4.1; 5.1.4.2; 5.1.4.3)
Quando si passa dalla realizzazione di semplici database personali (come ad esempio gestione di appuntamenti, rubrica telefonica, indirizzario ecc.) a database più impegnativi che riguardano ambiti scientifici e settori
aziendali di importanza cruciale per un’organizzazione complessa e articolata (quale può essere una società di
distribuzione o un ente pubblico di ricerca o una società di sondaggi), bisogna procedere allo sviluppo del
database con tecniche e modalità professionali che garantiscano il rispetto delle regole di progettazione e di
pianificazione degli interventi.
In questi casi, infatti, si assiste all’utilizzo di un insieme di database i cui dati posseggono un alto grado di
correlazione e spesso sono sottoposti ad azioni di interscambio allo scopo di ridurre al minimo inutili e dannose ridondanze sia di dati che di operazioni e funzioni sui dati stessi.
La realizzazione di tali database complessi è compiuta da specialisti informatici, dotati di altissima professionalità.
seguimi
Per quanto riguarda la metodologia adottata dagli specialisti per la progettazione di database, tre sono le fasi da seguire: progettazione concettuale, progettazione logica e progettazione fisica.
Senza voler entrare nei dettagli di tali fasi (che da sole meriterebbero un intero libro), basti sapere che la progettazione concettuale ha come obiettivo la descrizione formale e completa della realtà da modellizzare, indipendentemente dalle modalità attraverso le quali poi quelle informazioni verranno codificate in un computer.
La progettazione logica invece, partendo dai risultati della progettazione concettuale, realizza il cosiddetto modello logico dei
dati, consistente nello schema di rappresentazione utilizzato dal sistema di gestione di data base (DBMS) a disposizione. Il modello logico dei dati è un modello intermedio tra la descrizione formale e la descrizione fisicamente adottata dal DBMS e pertanto risulta ancora una rappresentazione dei dati abbastanza indipendente da alcuni dettagli fisici del computer dove verrà successivamente implementato.
La terza ed ultima fase, detta della progettazione fisica, consiste infine nel completamento del modello logico con dettagli fisici (organizzazione dei file fisici e logici, chiavi primarie e secondarie ecc.).
Una distinzione fondamentale e netta che va fatta tra le persone che operano con i database è quella che
divide i progettisti dagli utenti.
Questi ultimi, posti naturalmente a diversi livelli, utilizzano per le proprie attività le funzionalità offerte dal
DBMS e dalle applicazioni di database e possono essere a loro volta classificati nelle due categorie di utenti
finali ed utenti specializzati di database.
Gli utenti finali non sono esperti informatici, ma semplici utilizzatori di funzioni predefinite preventivamente
realizzate da figure informatiche più specializzate. Essi non interagiscono direttamente con il database, ma
accedono ai dati e scrivono anche su di essi attraverso applicazioni ed interfacce (maschere, videate, grafici
ecc.) create appositamente per il loro livello.
In generale, perciò, gli utenti finali hanno competenza per l’inserimento dei dati, la loro gestione (modifica,
cancellazione, stampa ecc.) ed il recupero delle informazioni necessarie a fornire risposte alle interrogazioni
richieste in un certo contesto lavorativo.
UD1 • Comprendere i database
263
Esiste anche una categoria più evoluta di utente che, sfruttando una certa conoscenza di base informatica ed
applicativa e impiegando il linguaggio interattivo per le interrogazioni (query language o QL), è in grado di
realizzare autonomamente qualche funzione di interrogazione, di produzione di report di stampa, di maschere video, oltre che di aggiornamento del database.
La presenza di utenti specializzati all’interno di un’organizzazione complessa costituisce una risorsa preziosa e
allo stesso tempo un potenziale fattore di rischio. Infatti, se da un lato gli utenti specializzati sono in grado di
dare autonomamente risposte minimali (in qualche caso anche esaurienti e complete) a bisogni informativi,
senza dare luogo a costosi e complicati ricorsi ad interventi di specialisti di database, da un altro punto di vista
essi costituiscono un fattore di possibile causa di errori introdotti nel sistema che, seppur inizialmente limitati
a specifiche aree di pertinenza, potrebbero nel tempo allargarsi a macchia d’olio e causare imprevedibili perdite di dati e in qualche caso distruzione generale del patrimonio informativo dell’intera organizzazione.
A questo proposito, è compito precipuo di un’altra figura professionale, l’amministratore del database (o DBA
cioè Data Base Administrator) svolgere la supervisione della progettazione, del controllo e dell’amministrazione del database. Il DBA, riproponendo quanto si accennava poc’anzi, è anche un mediatore tra l’esigenza di
dare spazio agli utenti evoluti e specializzati per creare in periferia funzioni personalizzate di accesso al database e la garanzia del controllo centralizzato sui dati.
L’amministrazione di database (che in qualche caso è affidata a più di una persona) prevede una conoscenza
approfondita dei linguaggi offerti dal DBMS e riguarda anche l’intervento per supportare l’utenza del database nei casi in cui la situazione lo richieda.
seguimi
I linguaggi adottati dal DBMS sono molteplici e ciascuno con una sfera di competenza ben delineata:
• DDL (Data Definition Language): si tratta di un linguaggio utile per definire i dati presenti nelle tabelle, con le specifiche
delle chiavi, delle proprietà dei campi, delle relazioni tra i dati, delle viste logiche ecc.;
• DML (Data Manipolation Language): è un linguaggio che serve ad elaborare i dati del database, ad esempio per inserire
nuovi record, variare record preesistenti, cancellare record, visualizzarli ecc.;
• QL (Query Language): è il linguaggio adottato per realizzare le interrogazioni, ovvero le procedure interattive utili per fornire risposte esaurienti a richieste provenienti dagli utenti finali. Attraverso questo linguaggio si possono effettuare operazioni di data retrieval e di accesso ai dati;
• DCL (Data Control Language): questo linguaggio serve ad attribuire privilegi di accesso ed autorizzazione al database.
Come si è detto, il Data Base Administrator si interessa della progettazione del database, che non riguarda la
sola fase iniziale di realizzazione di un database aziendale, ma che accompagna tutta la sua vita. È un’attività
ricorrente, infatti, la modifica della struttura logica e fisica dello schema del database, in funzione di nuove
esigenze degli utenti o di nuove normative obbligatorie da ottemperare o comunque di esigenze esterne.
Ancora, si ricorda che spesso capita che nuove applicazioni software, sviluppate per coprire nuove funzionalità e che elaborano dati presenti nel database, richiedano modifiche alla struttura generale del suo schema
logico o fisico.
In questo contesto, il DBA è responsabile della progettazione e di qualsiasi modifica che riguardi il modello
logico e fisico del database, con particolare riferimento al mantenimento di alti gradi di prestazione (performance) e di affidabilità dell’intero sistema di database.
Un altro aspetto dei database che riveste particolare importanza e criticità riguarda la sicurezza dei dati
ovvero la protezione del database dall’intervento di utenti non autorizzati.
Talvolta i giornali hanno dato notizia di attacchi da parte dei pirati informatici (hacker) al sistema informativo del Ministero della Difesa USA o di una grande Banca Svizzera che hanno portato all’inaffidabilità di parte
dei dati del loro database ed al mancato utilizzo dei loro siti Internet.
Eventi del genere portano alla ribalta la necessità che un database sia protetto con opportune tecniche e
metodiche al fine di prevenire accessi non consentiti da parte di utenti (interni o esterni) le cui azioni, talvolta anche dolose, possano provocare inaffidabilità e mancata integrità del sistema informativo.
La sicurezza del database è garantita dal DBMS attraverso un sistema di gestione delle autorizzazioni agli
accessi ai dati. Si tratta di un compito affidato anch’esso al Data Base Administrator che assegna a ciascun
utente autorizzato un identificativo personale (user-id) o di gruppo ed una password.
Pertanto attraverso la coppia user-id e password l’utente ha l’autorizzazione non solo all’accesso al sistema,
ma anche alle singole funzioni di accesso ai dati. Per semplificare, è possibile che l’utente Pippo possa leggere
264
Modulo 5 • Access
la tabella Clienti, ma non la tabella Fornitori. Questa cosa è garantita attraverso l’attribuzione (sempre da
parte del DBA) ad ogni oggetto (tabella, maschera, query, report e così via) della cosiddetta lista di autorizzazione, contenente la lista degli utenti (o dei gruppi di utenti) autorizzati ed eventualmente i vincoli operativi (sola lettura, lettura/scrittura ecc.).
10. Operazioni di salvataggio e di ripristino del database
(syllabus 5.1.4.4)
Un database costituisce per qualsiasi azienda, a prescindere dalle sue dimensioni, il patrimonio informativo
più prezioso, qualche volta più delle stesse merci prodotte o distribuite.
È quindi ovvio che molte energie all’interno del Centro di Elaborazione Dati aziendale sono spese per le operazioni atte a preservare il contenuto del database da eventi criminosi o fortuiti che ne alterino il contenuto.
Si ricorda che gli eventi più comuni che possono minacciare seriamente l’affidabilità e la permanenza di un
database sono vari: incendi, furti e manomissioni dolose o colpose dei dispositivi di memorizzazione (harddisk, CD-ROM, nastri magnetici).
Occorre poi aggiungere anche episodi di malfunzionamento dei dispositivi quali il controller di periferica, il
supporto magnetico (disco) o altro che causano il cosiddetto crash (rottura) del supporto con conseguente
perdita di tutti i dati su di esso memorizzati.
Oltre ai citati eventi negativi un’altra (purtroppo) ricorrente azione che provoca come conseguenza la perdita
di parte del contenuto del database è l’errata operatività da parte dell’utenza: si pensi alla cancellazione di
una transazione o il richiamo di una procedura in un momento sbagliato della giornata o l’annullamento (errato) di una prenotazione aerea. Questi episodi di per sé apparentemente insignificanti provocano effetti a
catena che nel corso delle ore possono provocare conseguenze che minano la credibilità dell’intero sistema.
Per impedire che tutti questi eventi riducano l’affidabilità del database l’amministratore deve pianificare il
salvataggio (backup) dei dati: copia dei dati memorizzati nel database su supporti di memoria secondaria
(quali nastri magnetici, CD ROM, DVD, dischi magnetici rimovibili, cassette, zip-disk ecc.) in tempi precisi e con
intervalli regolari, quanto più prossimi fra loro.
Il backup può riguardare sia l’intero sistema che parte di esso. Nel primo caso, si tratta di salvare su supporti
esterni tutto il database e ciò richiederà presumibilmente un sistema dedicato a tale operazione (nessun utente può svolgere operazioni di accesso al database) ed il ricorso a supporti capienti quali ad esempio nastri
magnetici o cassette magnetiche.
Nel caso invece di backup differenziale, che riguardi cioè soltanto le nuove informazioni aggiunte al database rispetto all’ultimo backup completo, i tempi di copia saranno più limitati e si potranno utilizzare supporti
anche più ridotti (CD-ROM, DVD ecc.).
A prescindere comunque dal tipo di backup da eseguire, si è accennato prima che il Data Base Administrator
deve fissare la periodicità da rispettare per i salvataggi: quanto più vicini fra loro sono tali momenti tanto
maggiore è il grado di sicurezza del database.
Normalmente in ambito aziendale il salvataggio va eseguito quotidianamente, negli orari notturni, quando il
sistema non è utilizzato dagli utenti finali.
Nel piano di salvataggio elaborato dal Data Base Administrator viene individuato l’addetto al salvataggio cui
è assegnato un gruppo di supporti (ad esempio nastri magnetici) su ciascuno dei quali è affissa l’etichetta del
giorno. In questo modo è assicurata la «fotografia del database» in diversi giorni della settimana ed è possibile ricostruire una situazione passata in un determinato giorno delle ultime settimane.
Naturalmente, è sempre compito del DBA provvedere a quello che viene definito piano di ripristino (restore)
o recupero del database consistente nel riportare sulla memoria di massa (ovvero sugli hard-disk del sistema)
il database precedentemente salvato.
È chiaro che in caso di guasto o evento fortuito e accidentale avvenuto sul database il DBA provvede a coordinare le azioni per recuperare il contenuto del database, partendo dall’ultimo backup e lanciando la procedura di ripristino prevista dal DBMS che dovrà provvedere a ricostruire tutte le operazioni eseguite dopo l’ultimo
salvataggio.
UD1 • Comprendere i database
265
Verifiche ed esercizi
unità didattica 1
domande vero/falso
Per ciascuna delle seguenti affermazioni, indicare se è vera o falsa
v
f


7) La ridondanza è una caratteristica del database relazionale












8) In un database l’accesso ai dati è regolato dalle autorizzazioni concesse dall’amministra
tore del database


9) L’integrità referenziale è l’insieme delle regole da rispettare per mantenere coerenti le
relazioni tra i dati 

10)Un vantaggio di una relazione consiste anche nel mantenere ridotte le dimensioni delle
tabelle


1) Uno dei primi settori ad introdurre l’uso degli elaboratori elettronici per memorizzare
grandi quantità di dati è stato quello manifatturiero
2) Tra i compiti di un sistema informatico sono comprese le funzioni di raccolta, organizza
zione ed archiviazione dei dati
3) La chiave primaria è la password per accedere al database
4) DBMS è la sigla che identifica i programmi per la gestione dei fogli elettronici
5) Un database vuoto è detto inconsistente
6) L’accesso ad una tabella indicizzata è possibile solo in modo sequenziale
domande a risposta multipla
Per ciascuna delle seguenti domande indicare la risposta scegliendo una fra quelle
proposte
1) Quali dati possono essere archiviati in un database?
 a) Tutti
 b) Solo dati numerici
 c) Solo dati testuali
2) Quale tra i seguenti non è un tipo di campo di Access?
 a) Memo
 b) Logico
 c) Statistico
3) In un database relazionale due tabelle correlate devono avere:
 a) Un campo in comune
 b) Lo stesso nome
 c) La proprietà In relazione con attivata dal menu contestuale
266
Modulo 5 • Access
4) I metadati sono:
 a) La metà di un’informazione
 b) La descrizione della struttura del database
 c) Dati di tipo metafisico
5) Un campo di tipo Testo può essere lungo al massimo:
 a) 255 caratteri
 b) 65.536 caratteri
 c) Ha lunghezza illimitata
6) In un record di una tabella del database sono presenti:
 a) Solo i campi che contengono dati
 b) Tutti i campi
 c) Non sono presenti campi
7) Quale delle seguenti caratteristiche presenta un database?
 a) Riduzione delle ridondanze
 b) Facilità nell’inserimento dei dati
 c) Essere governato da utenti specializzati
8) La chiave primaria è un campo di una tabella di un database:
 a) Gerarchico
 b) Reticolare
 c) Relazionale
9) Per creare una relazione tra due tabelle, occorre che all’interno di esse vi sia:
 a) Almeno un campo in comune
 b) Almeno una chiave primaria
 c) Almeno un campo con indice
10)In un database relazionale i dati sono memorizzati:
 a) Nei file
 b) Nelle tabelle
 c) Nelle query
domande a risposta libera
Per ciascuna delle seguenti domande, fornire una risposta sintetica
1) Descrivi le differenze tra memorizzazione tradizionale dei dati e memorizzazione tramite database.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
2) Descrivi la differenza tra database gerarchico e database relazionale.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
UD1 • Comprendere i database
267
3) Descrivi la differenza tra dati e metadati.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
4) Descrivi alcune proprietà attribuite ai campi.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
5) Elenca i compiti di un amministratore di database.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
6) Descrivi come si può evitare la ridondanza, ossia l’eccesso di dati, in un database.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
7) Definisci la tabella, il record ed il campo, specificando anche le relazioni tra essi.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
8) Descrivi le differenze tra un database e un foglio elettronico.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
9) Descrivi le funzioni delle procedure di salvataggio e di ripristino di un database.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
10) Descrivi le differenze tra utenti finali e utenti specializzati di database.
......................................................................................................................................................................................................
......................................................................................................................................................................................................
......................................................................................................................................................................................................
268
Modulo 5 • Access
Esercitazioni pratiche
Verifica n. 1
Con riferimento ad un database relazionale per memorizzare i dati relativi agli alunni di una scuola media, allo
scopo di conoscere la composizione delle classi e l’elenco degli studenti per zona di residenza e per sesso:
1) indicare il numero ed il nome delle possibili tabelle;
2) elencare per ogni tabella i nomi dei campi;
3) specificare per ogni campo il tipo e la dimensione;
4) mettere per iscritto le proposte di soluzione.
Verifica n. 2
Verifica n. 3
Verifica n. 4
Verifica n. 5
Per ogni tabella indicata nella verifica n. 1 specificare possibili chiavi primarie ed indici.
Specificare possibili regole di integrità referenziale dei dati delle tabelle proposte nella verifica n. 1
Avanzare proposte di ipotetiche relazioni tra le tabelle proposte nella verifica n. 1, accertandosi che ci siano
i presupposti per poter realizzare le dette relazioni.
Indicare il numero e le specifiche funzionali delle query da realizzare per rispondere alle richieste di interrogazione indicate nella verifica n. 1.
UD1 • Comprendere i database
269