modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo...

19
modulo 5 Access u d1 Comprendere i database u d2 Utilizzo dell’applicazione u d3 Le tabelle u d4 Cercare le informazioni u d5 Gli oggetti maschere u d6 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

Transcript of modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo...

Page 1: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

modulo 5Access

ud1 Comprendere i database

ud2 Utilizzo dell’applicazione

ud3 Le tabelle

ud4 Cercare le informazioni

ud5 Gli oggetti maschere

ud6 Gestione delle stampe

Prerequisiti• DisporredellenozionidibasecircailfunzionamentodelPCedelsistemaoperativo

Obiettivi• Sapercreareemodificaretabelle,query,maschereereport• Sapercreareegestirerelazionitratabelle• Saperestrarreemanipolareleinformazionicontenuteinundatabase

Page 2: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

252 Modulo 5 • Access

unità didattica 1Comprendere i database

prerequisitiDisporre delle nozioni base sul funzionamento del PCConoscere le basi dell’utilizzo del sistema operativo Windows

obiettiviDistinguere tra dati e informazioniSapere cosa è un database e quali sono i modelli di databaseDistinguere un DBMS da un databaseSapere come è organizzato un database relazionaleConoscere cosa è una tabella e comprendere i concetti di campo, chiave primaria e indice Capire l’importanza delle relazioni tra tabelleConoscere le diverse figure professionali che operano sui database

1. IntroduzioneMolti 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 elet-tronici come strumento quotidiano di lavoro è stato quello bancario, nel quale era (ed è tuttora) molto senti-ta l’esigenza di conservare ed elaborare grosse quantità di dati.Naturalmente, in quegli anni la presenza di dispositivi informatici nelle aziende non era lontanamente para-gonabile a quella che oggi si può osservare in qualsiasi ambito di lavoro; inoltre, da allora sino ai giorni at-tuali, le prestazioni dei computer hanno seguito un andamento esponenziale, sia per quanto riguarda le ve-locità 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 dispo-ne 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 rac-colta, organizzazione ed archiviazione dei dati.Molte attività ordinarie svolte nelle aziende, ma anche in ministeri, uffici e scuole sono rivolte infatti a gesti-re 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 fami-glia, 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.

Page 3: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 253

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 fenome-ni negativi tra i quali la dipendenza dei programmi dai dati: quando emergeva il bisogno o la necessità di muta-re la struttura di un file, ad esempio per l’inserimento di un nuovo attributo oppure per la variazione (in dimensio-ne 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 aggiorna-menti 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 ClientiCodice ClienteRagione SocialeIndirizzoLocalitàE-mailTelefonoData ultima fattura

File FattureNumero fatturaData fatturaCodice ClienteRagione SocialeIndirizzoImponibileImporto IvaTotale fattura

File SollecitiCodice ClienteRagione SocialeIndirizzoLocalitàNumero fatturaData fatturaImporto fattura

Page 4: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

254 Modulo 5 • Access

È 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’in-dirizzo 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 è inevita-bile 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 attra-verso 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 sinoni-mi, 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 determi-nata 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 attribu-ti 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 potreb-be 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 con-testualizzazione.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 rifles-sione: i dati costituiscono l’input (immissione) del processo elaborativo; l’in-formazione si può anche identificare come il risulta-to 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 ge-stione 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 sem-plice da più applicazioni e da più utenti.

Fig. 1 Elaborazionedidatieinformazioni

Page 5: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 255

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 patri-

monio 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 uni-taria, controllata da un software generalizzato di gestione con lo scopo di raggiungere un alto grado di ef-ficienza 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 in-formativo.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 gestio-ne 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 og-getto, 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 bot-tega più piccola sino alla grande azienda mul-tinazionale, i database costituiscono gli stru-menti informativi costanti e puntuali cui fa ri-ferimento qualsiasi sistema informativo auto-matizzato, dal personal computer stand alone al main frame o supercomputer di cui dispone una grande società commerciale.

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

Stand alone: quandouncomputerè usato in modo autonomo epertantononècollegatoadunarete di computer viene indicatoconilterminestand alone.

Main fraMe: conquestotermine si indicaun computer di grandi

dimensioni, in grado di fornirealteprestazioni,sianelsensodelnumero di utenti serviti dalleelaborazioni(centinaiaomigliaia)che in quello del numero deiprocessi eseguiti in una certaunitàditempo.

capiamo le parole

Page 6: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

256 Modulo 5 • Access

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 affi-dabilità 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 ri-corso 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 compe-tenza: da un lato, le applicazioni espongono a video ed in stampa dati di pubblico interesse come leggi, circo-lari, 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 pro-pria 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 User-id 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 mi-gliorare la qualità dei servizi ed il grado di soddisfazione della propria clientela che per attuare il contenimen-to 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 rigo-rosissimi algoritmi di crittografia la privatezza delle comunicazioni delle informazioni — dati, notizie e docu-menti 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 pro-pria, 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 intercon-nessi 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 inte-ressanti ed utili per le richieste di volta in volta proposte dall’utente finale, che sarà facilitato nel prendere le decisioni.

Page 7: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 257

seguimiDBMS (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 sostan-ziale 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 indica-no: ORACLE di Oracle Corporation, Informix, DB2 di IBM, SQL Server di Microsoft e MySQL di MySQL AB.

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.

seguimiDati e metadatiI 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 inse-rire 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 meta-dati, 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.

Fig. 2 DataBaseManagementSystem

Page 8: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

258 Modulo 5 • Access

Tornando al Sistema di Gestione di Data Base, occorre dire che esistono diversi DBMS, nel senso che è possi-bile 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 ar-chivi 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 accenna-to, 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 do-cumento, invece, compaiono le righe, in 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 re-ticolare 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 intro-durre un nuovo modello di database, denominato relazionale e che attual-mente 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 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 Campo 2 . . . . . Campo KDato 11 Dato 12 Dato 1K

Dato 21 Dato 22 Dato 2K

. . . . . . . . . . . . . . . . . . .

Dato N1 Dato N2 Dato NK

Record

Fig. 5 Strutturadiunatabelladiundatabaserelazionale

Fig. 3 Strutturagerarchicadiunafattura

Fig. 4 Schemadelmodelloreticolaredidatabase

Page 9: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 259

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 manu-tenzione 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 en-tità 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, occor-re 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’at-tribuzione a ciascun cam-po di un solo dato ele-mentare , ovvero ogni campo deve contenere «attributi atomici».Pertanto è una best prac-tice progettare e realizza-re 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’in-dirizzo o dell’immobile nel campo specifico.

Fig. 6 Bestpracticeperlaprogettazionedicampi

Page 10: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

260 Modulo 5 • Access

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 carat-teristiche, dette proprietà quali, ad esempio, la dimensione, il formato (ad esempio, una data può essere espressa con la notazione italiana, gg/mm/aa, o con quella anglosassone che pre-vede il formato mm/gg/aa), il valore predefini-to (si può stabilire ad esempio che un campo numerico sia, per default, uguale a 1 fino a che l’utente non digiti un numero diverso) e le co-siddette regole di validazione (si può decidere ad esempio che una data sia valida, e quindi accettata e archi-viata 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 uni-vocamente 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 corri-sponde 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 ta-bella. 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 impostazio-ne 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 tabelle di grandi dimensioni perché, in assenza di chiave, è indispensabile effettuare la scansio-ne dei record uno alla volta, dal primo all’ultimo registrato in fase di inserimento, fino a trovare il dato ricercato. La tabella senza campo chiave, 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-

default:sipuòtradurreinitalianoconilterminedifetto;«valoredidefault», in informatica, indica«valorecheassumoimplicitamen-te,indifettodiunadiversaistru-zione».Inmododeltuttoanalogo,

la stampante predefinita puòanche essere detta di default,perché è quella verso cui sonoindirizzatelestampe,amenochel’operatore non ne indichi unadifferente.

capiamo le parole

randoM: casuale; si definiscerandomunfenomenolacuipos-sibilità di verificarsi è regolatasoltantodalle leggidelleproba-bilità.L’aggettivorandomèancheconnesso ad una caratteristica

dellamemoriacentraledelcom-puter ed in particolare a quellavolatile, detta memoria Ram(Random access memory) il cuisignificato letterale è: memoria ad accesso casuale.

capiamo le parole

Page 11: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 261

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 fisca-le) 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 rende-re 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 clien-ti, 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 Esempiodisuddivisionedidatiinpiù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 me-todo 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 quar-ta riga occorre correlare le tre tabelle CLIENTI, COMMESSE e PARTI.

Page 12: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

262 Modulo 5 • Access

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 attenzionePer 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 COM-MESSE e PARTI.

Fig. 8 Esempiodirelazionitradiversetabelleassicuratedacampicomuni

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.

seguimiIn 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 esiste-re 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 cor-relata.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 modali-tà 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 pos-sono 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 assogget-tare 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.

Page 13: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 263

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 da-tabase, 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 pro-vocherebbe 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 pri-maria, 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 appuntamen-ti, 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 dan-nose 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à.

seguimiPer quanto riguarda la metodologia adottata dagli specialisti per la progettazione di database, tre sono le fasi da seguire: pro-gettazione 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 concet-tuale ha come obiettivo la descrizione formale e completa della realtà da modellizzare, indipendentemente dalle modalità attra-verso 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 mo-dello logico dei dati è un modello intermedio tra la descrizione formale e la descrizione fisicamente adottata dal DBMS e pertan-to risulta ancora una rappresentazione dei dati abbastanza indipendente da alcuni dettagli fisici del computer dove verrà suc-cessivamente implementato.La terza ed ultima fase, detta della progettazione fisica, consiste infine nel completamento del modello logico con dettagli fisi-ci (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.

Page 14: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

264 Modulo 5 • Access

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 masche-re 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 perdi-te 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’amministrazio-ne 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 data-base 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 databa-se nei casi in cui la situazione lo richieda.

seguimiI 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 forni-re risposte esaurienti a richieste provenienti dagli utenti finali. Attraverso questo linguaggio si possono effettuare operazio-ni 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 funziona-lità 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 (perfor-mance) 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 informati-vo 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, talvol-ta 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

Page 15: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 265

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 autoriz-zazione, contenente la lista degli utenti (o dei gruppi di utenti) autorizzati ed eventualmente i vincoli opera-tivi (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 ope-razioni 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 (hard-disk, 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 (er-rato) 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 uten-te 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 databa-se 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 è possibi-le 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 coor-dinare le azioni per recuperare il contenuto del database, partendo dall’ultimo backup e lanciando la procedu-ra di ripristino prevista dal DBMS che dovrà provvedere a ricostruire tutte le operazioni eseguite dopo l’ultimo salvataggio.

Page 16: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

266 Modulo 5 • Access

Verifiche ed eserciziunità didattica 1

domande vero/falso Per ciascuna delle seguenti affermazioni, indicare se è vera o falsa v f 1) Unodeiprimi settoriad introdurre l’usodeglielaboratorielettronicipermemorizzare grandiquantitàdidatièstatoquellomanifatturiero

2) Traicompitidiunsistemainformaticosonocompreselefunzionidiraccolta,organizza- zioneedarchiviazionedeidati

3) Lachiaveprimariaèlapasswordperaccederealdatabase

4) DBMSèlasiglacheidentificaiprogrammiperlagestionedeifoglielettronici

5) Undatabasevuotoèdettoinconsistente

6) L’accessoadunatabellaindicizzataèpossibilesoloinmodosequenziale

7) Laridondanzaèunacaratteristicadeldatabaserelazionale

8) Inundatabasel’accessoaidatièregolatodalleautorizzazioniconcessedall’amministra- toredeldatabase

9) L’integritàreferenzialeè l’insiemedelleregoledarispettarepermantenerecoerenti le relazionitraidati

10) Unvantaggiodiunarelazioneconsisteanchenelmantenereridotteledimensionidelle tabelle

domande a risposta multipla Per ciascuna delle seguenti domande indicare la risposta scegliendo una fra quelle

proposte 1) Qualidatipossonoesserearchiviatiinundatabase?

a) Tutti b) Solodatinumerici c) Solodatitestuali

2) QualetraiseguentinonèuntipodicampodiAccess?

a) Memo b) Logico c) Statistico

3) Inundatabaserelazionaleduetabellecorrelatedevonoavere:

a) Uncampoincomune b) Lostessonome c) LaproprietàIn relazione conattivatadalmenucontestuale

Page 17: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 267

4) Imetadatisono:

a) Lametàdiun’informazione b) Ladescrizionedellastrutturadeldatabase c) Datiditipometafisico

5) UncampoditipoTestopuòesserelungoalmassimo:

a) 255caratteri b) 65.536caratteri c) Halunghezzaillimitata

6) Inunrecorddiunatabelladeldatabasesonopresenti:

a)Soloicampichecontengonodati b) Tuttiicampi c) Nonsonopresenticampi

7) Qualedelleseguenticaratteristichepresentaundatabase?

a) Riduzionedelleridondanze b) Facilitànell’inserimentodeidati c) Esseregovernatodautentispecializzati

8) Lachiaveprimariaèuncampodiunatabelladiundatabase:

a) Gerarchico b) Reticolare c) Relazionale

9) Percreareunarelazionetraduetabelle,occorrecheall’internodiessevisia:

a) Almenouncampoincomune b) Almenounachiaveprimaria c) Almenouncampoconindice

10) Inundatabaserelazionaleidatisonomemorizzati:

a) Neifile b) Nelletabelle c) Nellequery

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) Descriviladifferenzatradatabasegerarchicoedatabaserelazionale.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

Page 18: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

268 Modulo 5 • Access

3) Descriviladifferenzatradatiemetadati.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

4) Descrivialcuneproprietàattribuiteaicampi.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

5) Elencaicompitidiunamministratoredidatabase.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

6) Descrivicomesipuòevitarelaridondanza,ossial’eccessodidati,inundatabase.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

7) Definiscilatabella,ilrecordedilcampo,specificandoanchelerelazionitraessi.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

8) Descriviledifferenzetraundatabaseeunfoglioelettronico.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

9) Descrivilefunzionidelleproceduredisalvataggioediripristinodiundatabase.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

10) Descrivi le differenze tra utenti finali e utenti specializzati di database.

......................................................................................................................................................................................................

......................................................................................................................................................................................................

......................................................................................................................................................................................................

Page 19: modulo 5 - Simone · 2013-02-14 · modulo 5 Access ud1 Comprendere i database ud2 Utilizzo dell’applicazione ud3 Le tabelle ud4 Cercare le informazioni ud5 Gli oggetti maschere

UD1 • Comprendereidatabase 269

Esercitazioni pratiche Verifica n. 1Conriferimentoadundatabaserelazionalepermemorizzareidatirelativiaglialunnidiunascuolamedia,alloscopodiconoscerelacomposizionedelleclassiel’elencodeglistudentiperzonadiresidenzaepersesso:

1) indicareilnumeroedilnomedellepossibilitabelle; 2) elencareperognitabellainomideicampi; 3) specificareperognicampoiltipoeladimensione; 4) mettereperiscrittolepropostedisoluzione.

Verifica n. 2Perognitabellaindicatanellaverifican.1specificarepossibilichiaviprimarieedindici.

Verifica n. 3Specificarepossibiliregolediintegritàreferenzialedeidatidelletabellepropostenellaverifican.1

Verifica n. 4Avanzarepropostediipoteticherelazionitraletabellepropostenellaverifican.1,accertandosichecisianoipresuppostiperpoterrealizzareledetterelazioni.

Verifica n. 5Indicareilnumeroelespecifichefunzionalidellequerydarealizzareperrispondereallerichiestediinterro-gazioneindicatenellaverifican.1.