Versione personale di
Studente Ebook01
Powered by AULA01
Copyright ã 2009-2010 Talento s.r.l.
Viale Sarca 336/F
Edificio Sedici
20126 Milano
Edizione realizzata per SkillOnLine s.r.l. ad uso esclusivo nell’ambito del progetto Aula 01.
Tutti i diritti sono riservati.
È vietata qualsiasi forma di riproduzione, anche parziale, di questo libro.
Fermo restando l’esonero di ogni responsabilità, Talento s.r.l. opera in modo da garantire la massima
accuratezza nella produzione di questo libro. Si prega di notificare immediatamente a Talento s.r.l. qualsiasi
errore o imprecisione rilevata all’interno del testo.
Microsoft, Windows, Windows XP e Windows Vista sono marchi registrati da Microsoft Corporation. Altri
nomi e marchi citati nel testo sono generalmente depositati o registrati dalle rispettive case produttrici.
POWERED BY AULA01
Sommario
SOMMARIO
Sommario .............................................................................................................................................. I
Guida all’uso ........................................................................................................................................ V
Destinatari del libro.............................................................................................................................. V
Convenzioni di testo usate nel libro ..................................................................................................... V
LEZIONE 1 - CONCETTI DI BASE ...........................................................................................1
Database ................................................................................................................................................ 1
Sistemi informativi e sistemi informatici .............................................................................................. 1
Dati e Informazioni ............................................................................................................................... 2
I database nella vita quotidiana ............................................................................................................. 3
Evoluzione dei database ........................................................................................................................ 3
Database relazionali .............................................................................................................................. 5
Database e sistemi per la loro gestione ................................................................................................. 5
Vantaggi del database ........................................................................................................................... 6
Progettare un database .......................................................................................................................... 6
Fase 1 - Identificare lo scopo del database............................................................................................ 7
Fase 2 - Catalogare i dati esistenti e definire gli output richiesti .......................................................... 7
Fase 3 - Progettare le tabelle ................................................................................................................. 8
Fase 4 - Suddividere i campi ................................................................................................................. 9
Fase 5 - Identificare la chiave primaria di ogni tabella ......................................................................... 9
Fase 6 - Disegnare le relazioni fra le tabelle ....................................................................................... 10
Fase 7 - Normalizzare i dati ................................................................................................................ 12
Fase 8 - Rivedere e finalizzare il progetto .......................................................................................... 15
Figure professionali ............................................................................................................................ 15
LEZIONE 2 - INTRODUZIONE AD ACCESS 2007 ..................................................................19
Per iniziare .......................................................................................................................................... 19
Creare un database vuoto .................................................................................................................... 21
Aprire un database esistente................................................................................................................ 22
La finestra di Access 2007 .................................................................................................................. 23
La barra multifunzione ........................................................................................................................ 24
Il pulsante Microsoft Office ................................................................................................................ 26
La barra di accesso rapido................................................................................................................... 28
I menu contestuali ............................................................................................................................... 29
Le finestre di dialogo .......................................................................................................................... 30
I riquadri Attività ................................................................................................................................ 30
Utilizzo dei tasti di scelta rapida ......................................................................................................... 31
Ulteriori informazioni sui tasti di scelta .............................................................................................. 33
Utilizzo della barra multifunzione con la tastiera ............................................................................... 33
Ulteriori info sulla barra multifunzione .............................................................................................. 34
Gli oggetti del database....................................................................................................................... 35
Il riquadro di spostamento .................................................................................................................. 35
Aprire un oggetto database ................................................................................................................. 37
La Guida di Access 2007 .................................................................................................................... 37
Il Sommario ........................................................................................................................................ 39
La Ricerca libera ................................................................................................................................. 40
Info sulla rimozione dell’Assistente di Office .................................................................................... 40
LEZIONE 3 - TABELLE ........................................................................................................43
Nuovi database .................................................................................................................................... 43
La struttura delle tabelle...................................................................................................................... 43
Creare una tabella in Visualizzazione Foglio dati............................................................................... 44
Copyright ã 2009-2010 di Talento s.r.l.
I
Sommario
VERSIONE PERSONALE DI STUDENTE EBOOK01
Creare una tabella da un modello ....................................................................................................... 46
Creare una tabella in Visualizzazione Struttura ................................................................................. 47
Nomi campo ....................................................................................................................................... 48
Tipi dati .............................................................................................................................................. 49
Descrizioni campi............................................................................................................................... 51
Chiave primaria .................................................................................................................................. 51
Salvare una nuova tabella ................................................................................................................... 52
Le proprietà dei campi........................................................................................................................ 53
L'ampiezza dei campi ......................................................................................................................... 54
Formati numerici ................................................................................................................................ 55
Formati Data/Ora ............................................................................................................................... 56
Formati Sì/No ..................................................................................................................................... 57
Valori standard ................................................................................................................................... 58
Regole di convalida e messaggi di errore ........................................................................................... 59
Maschere di input ............................................................................................................................... 60
Cambiare il tipo di visualizzazione .................................................................................................... 62
Conseguenze della modifica al tipo di dati......................................................................................... 63
LEZIONE 4 -
UTILIZZARE LE TABELLE ............................................................................... 67
Foglio dati .......................................................................................................................................... 67
Campi ................................................................................................................................................. 67
Record ................................................................................................................................................ 68
Muoversi tra i record di una tabella.................................................................................................... 68
Selezionare record di una tabella........................................................................................................ 69
Modificare record in una tabella ........................................................................................................ 70
Salvare record..................................................................................................................................... 70
Eliminare record ................................................................................................................................. 71
Utilizzare il comando Annulla ........................................................................................................... 71
Altezza righe & larghezza colonne .................................................................................................... 72
Attributi carattere ............................................................................................................................... 73
L’aspetto delle celle ........................................................................................................................... 74
Selezionare e spostare colonne ........................................................................................................... 75
Nascondere e visualizzare colonne..................................................................................................... 75
Bloccare una colonna ......................................................................................................................... 76
Inserire una nuova colonna (campo) .................................................................................................. 77
Eliminare una colonna (campo) ......................................................................................................... 78
Visualizzare totali di colonna in una tabella....................................................................................... 79
Salvare e chiudere una tabella ............................................................................................................ 80
Eliminare una tabella dal database ..................................................................................................... 80
LEZIONE 5 - ATTIVITÀ COMUNI ......................................................................................... 83
L'ordinamento dei record ................................................................................................................... 83
Ordinare i record con chiave multipla ................................................................................................ 84
Trovare record specifici ..................................................................................................................... 85
Ricerca e caratteri jolly ...................................................................................................................... 86
Le sostituzioni .................................................................................................................................... 87
Utilizzare un filtro predefinito............................................................................................................ 88
Rimuovere e applicare un filtro .......................................................................................................... 90
Utilizzare il filtro in base a selezione ................................................................................................. 91
Utilizzare il filtro in base a maschera ................................................................................................. 92
Utilizzare un filtro avanzato ............................................................................................................... 93
LEZIONE 6 - RELAZIONI & INDICI ..................................................................................... 97
Le tabelle correlate ............................................................................................................................. 97
Le relazioni......................................................................................................................................... 97
L'integrità referenziale ....................................................................................................................... 99
Nuove tabelle nella finestra Relazioni...............................................................................................100
Cancellare una relazione ...................................................................................................................101
Gli indici............................................................................................................................................101
II
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Sommario
Gli indici a campo singolo ................................................................................................................ 102
Gli indici su più campi ...................................................................................................................... 103
Eliminare un indice ........................................................................................................................... 104
La chiave primaria su più campi ....................................................................................................... 104
LEZIONE 7 - QUERY ..........................................................................................................109
Query e recordset .............................................................................................................................. 109
Creazione guidata query semplice .................................................................................................... 110
Creazione di una query in Visualizzazione struttura......................................................................... 111
Rimuovere campi da una query ........................................................................................................ 112
Aprire una query ............................................................................................................................... 112
Aggiungere una tabella ad una query................................................................................................ 113
Il collegamento di tabelle in una query ............................................................................................. 113
Eseguire una query............................................................................................................................ 115
Ordinare i risultati di una query ........................................................................................................ 115
Spostare campi in una query ............................................................................................................. 116
I criteri nelle query ............................................................................................................................ 117
Nascondere un campo in una query .................................................................................................. 118
Operatori di confronto....................................................................................................................... 118
La condizione And ............................................................................................................................ 120
Condizione Or ................................................................................................................................... 121
Operatore Between ... And ................................................................................................................ 121
Caratteri jolly .................................................................................................................................... 122
Eliminare un criterio ......................................................................................................................... 123
Eliminare una query .......................................................................................................................... 124
LEZIONE 8 - MASCHERE ...................................................................................................127
Le maschere ...................................................................................................................................... 127
Le maschere a creazione rapida ........................................................................................................ 128
Creazione guidata Maschera ............................................................................................................. 130
Apertura di una maschera esistente ................................................................................................... 131
La visualizzazione di record in una maschera................................................................................... 132
Ordinare i dati in Visualizzazione maschera ..................................................................................... 133
Applicare un filtro ad una maschera ................................................................................................. 133
Rimuovere/Eliminare un filtro da una maschera .............................................................................. 135
Attivare/disattivare Intestazione e Piè di pagina maschera ............................................................... 136
Utilizzare l’intestazione o il piè di pagina della maschera ................................................................ 136
La creazione di una maschera basata su una query ........................................................................... 138
L'aggiunta di record mediante una maschera .................................................................................... 139
Modificare un record mediante una maschera .................................................................................. 139
Eliminare un record mediante una maschera .................................................................................... 140
Eliminare una maschera .................................................................................................................... 141
LEZIONE 9 - REPORT ........................................................................................................143
I Report ............................................................................................................................................. 143
Report a creazione rapida.................................................................................................................. 144
Migliorare il report in visualizzazione layout ................................................................................... 145
Creazione guidata Report .................................................................................................................. 148
Anteprima di stampa ......................................................................................................................... 150
Cambiare i punti d’interruzione della pagina .................................................................................... 152
Eliminare un report ........................................................................................................................... 153
LEZIONE 10 - UTILIZZO AVANZATO DI QUERY ................................................................157
Primi valori ....................................................................................................................................... 157
Campi calcolati ................................................................................................................................. 158
Funzioni & Query ............................................................................................................................. 159
Query parametriche ........................................................................................................................... 160
Concatenamento di dati..................................................................................................................... 161
Filtri nelle query................................................................................................................................ 162
Query di comando ............................................................................................................................. 163
Copyright ã 2009-2010 di Talento s.r.l.
III
Sommario
VERSIONE PERSONALE DI STUDENTE EBOOK01
Query di creazione tabella .................................................................................................................164
Creare la copia di una tabella ............................................................................................................165
Query di aggiornamento tabella ........................................................................................................166
Query di accodamento .......................................................................................................................167
Query di eliminazione .......................................................................................................................169
LEZIONE 11 - CONTROLLI & STRUTTURA ....................................................................... 175
Struttura e layout di controllo............................................................................................................175
Controlli ............................................................................................................................................176
Controlli non adiacenti ......................................................................................................................176
Eliminare controlli.............................................................................................................................177
Dimensionare un controllo per trascinamento ...................................................................................177
Controlli adiacenti .............................................................................................................................178
Spostare controlli selezionati ............................................................................................................179
Dimensionare i controlli automaticamente ........................................................................................180
Il righello ...........................................................................................................................................180
Allineare alla griglia ..........................................................................................................................181
Elenco campi .....................................................................................................................................181
Aggiungere un campo .......................................................................................................................182
Spostare uno dei due controlli abbinati .............................................................................................183
Allineare i controlli ...........................................................................................................................184
Spaziare i controlli ............................................................................................................................184
Tipi di controlli .................................................................................................................................185
Cambiare le proprietà di un oggetto ..................................................................................................185
Immagini ...........................................................................................................................................186
Aggiungere un rettangolo o una linea ...............................................................................................187
LEZIONE 12 - STRUTTURA REPORT AVANZATO ............................................................... 191
Report in visualizzazione struttura ....................................................................................................191
Controlli calcolati ..............................................................................................................................192
Raggruppare dati in un report............................................................................................................193
Controllo Data/Ora ............................................................................................................................193
Salto pagina .......................................................................................................................................194
Creazione guidata Etichetta ...............................................................................................................195
Il report vuoto ....................................................................................................................................196
LEZIONE 13 - STAMPA ...................................................................................................... 201
L'impostazione della pagina ..............................................................................................................201
La stampa delle tabelle ......................................................................................................................202
La stampa di record selezionati .........................................................................................................203
Stampare una query ...........................................................................................................................204
La stampa di record in una maschera ................................................................................................204
La stampa delle pagine di un report ..................................................................................................204
INDICE ANALITICO ............................................................................................................ 207
IV
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
GUIDA ALL’USO
Il manuale è organizzato in una serie di LEZIONI, aventi tutte la medesima struttura, descritta nel
seguito.
In apertura di ciascuna lezione sono elencati gli OBIETTIVI, che identificano con semplicità e
chiarezza gli argomenti trattati. Per ogni argomento troviamo:
·
Una parte introduttiva che descrive la funzione svolta dal comando o dalla procedura trattati,
spiegandone la terminologia associata e indicando in quali situazioni e con che obiettivi utilizzarli.
·
La sezione Procedura , introdotta dal simbolo
l’operazione da svolgere.
, che descrive in forma generale
Il simbolo
accompagna le indicazioni di Attenz io ne, necessarie per poter svolgere ogni
operazione senza incorrere in spiacevoli inconvenienti o ottenere risultati inattesi.
Un’Esercitazione, evidenziata dalla presenza nel titolo del simbolo
, conclude la lezione.
L’Esercitazione, introdotta da una descrizione delle attività da eseguire, propone una serie di passi
strettamente correlati agli argomenti trattati nel corso della lezione
Sebbene Access 2007 possa essere installato sia su Microsoft Windows XP SP2 o successivi sia su
Windows Vista, in questo libro, si farà riferimento esplicito a Windows Vista.
DESTINATARI DEL LIBRO
Questo manuale è stato progettato per gli utenti che intendano affrontare l’esame ECDL Modulo 5
Uso delle basi di dati utilizzando Microsoft Office Access 2007. L’autore ha progettato questo
manuale sia per utenti che si accostano a Microsoft Office Access 2007 per la prima volta, sia per
utenti che già conoscono a livello di base una delle versioni precedenti del prodotto. Per questi ultimi,
nel testo sono riportati riferimenti a tecniche precedenti in rapporto a quelle correnti.
Le sezioni 10, 11 e 12 approfondiscono i temi trattati e vanno oltre le richieste del Syllabus5.
CONVENZIONI DI TESTO USATE NEL LIBRO
Convenzioni
[Ctrl+V]
[Alt-H-1]
Opzioni di Access-Impostazioni
avanzate-Modifica
Copyright ã 2009-2010 di Talento s.r.l.
Significato
Indica una combinazione di tasti. La presenza del segno “+”
indica che i tasti devono essere premuti insieme (ovvero che
quando si preme il secondo il primo deve risultare già premuto)
Indica una combinazione di tasti. La presenza del segno “-” indica
che i tasti devono essere premuti in sequenza.
La presenza del “trattino” indica il percorso gerarchico da seguire.
L’esempio indica di aprire le “Opzioni di Access”, quindi
selezionare le “Impostazioni avanzate” ed infine portarsi sul
gruppo “Modifica”.
A volte il percorso può anche essere descritto per esteso in questo
caso la gerarchia è normalmente indicata dal basso. Nell’esempio
si potrebbe dire: Si veda il gruppo “Modifica” presente nella
sezione “Impostazioni avanzate” delle “Opzioni di Access”.
V
POWERED BY AULA01
Lezione 1 - Concetti di base
LEZIONE 1 CONCETTI DI BASE
In questa lezione imparerete a:
Ø Definire il termine” database”, Distinguere tra “Sistemi informativi” e “Sistemi Informatici”, Distinguere tra “dati” e “informazioni”, Individuare l’uso dei database nel
quotidiano, Citare i vari tipi di database che nel tempo si sono succeduti, Elencare le
principali caratteristiche di un database relazionale, Distinguere tra DB e DBMS,
Elencare i principali vantaggi d’uso di un database, Individuare ed utilizzare le fasi di
progettazione di un database, Applicare le prime tre forme normali del modello
relazionale, Riconoscere le figure professionali coinvolte nel mondo dei grandi database.
Riferimenti al Syllabus in questa lezione:
Ø
5.1.1.1 , 5.1.1.2 , 5.1.1.3 , 5.1.1.4 , 5.1.2.1 , 5.1.2.2 , 5.1.2.5
DATABASE
Cercare di definire il termine database è operazione semplice e complessa allo stesso tempo. Si possono
usare “paroloni” infarciti da definizioni matematiche o da terminologie da “addetti ai lavori” ma si
andrebbe al di la degli scopi di questo libro. Per questa ragione l’autore ha deciso di definire il concetto
di database in più modi:
· Un database ( a volte chiamato base dati o banca dati) è un insieme di informazioni omogenee
strutturato logicamente così da poter essere ordinato e consultato secondo criteri diversi.
· Un database è un "contenitore" in grado di gestire grossi quantitativi di informazioni simili in
maniera ordinata e (si spera) più semplice e veloce rispetto ai grossi libroni cartacei o documenti
di tipo foglio elettronico o testo.
· Un database è una collezione organizzata di informazioni utilizzate per uno specifico scopo,
come, ad esempio, il tener traccia degli ordini in un'organizzazione che vende prodotti, o del
flusso dei volumi in ingresso e in uscita in una libreria.
L’elenco delle descrizioni potrebbe continuare ma diventerebbe ripetitivo e largamente ridondante.
Ciascuna definizione riportata è di per se esatta ma non esaustiva, tuttavia pone in risalto un aspetto
caratteristico dell’elemento. Ad esempio, nell’ultima definizione si pone l’accento sullo “scopo” del
database. Se si raccolgono, ad esempio, dati relativi al clima nelle regioni del Sud dell'Italia e dati
concernenti la raccolta di fondi di un'organizzazione finanziaria, non possiamo chiamare questo un
database in quanto questi elementi non saranno mai utilizzati insieme per uno scopo specifico. Invece, se
si raccolgono informazioni relative agli ordini di prodotti, ai clienti che hanno inviato tali richieste e
agli impiegati che provvedono ad inviare ai clienti i prodotti desiderati, questo insieme di dati
costituisce un database.
I database sono al giorno d’oggi i componenti principali dei sistemi informativi aziendali.
SISTEMI INFORMATIVI E SISTEMI INFORMATICI
Per comprendere meglio cosa sono le basi di dati è opportuno inserirle nel contesto dei sistemi
informativi. Un sistema informativo è un sistema di supporto ai processi informativi di
un’organizzazione e pertanto non è legato in alcun modo all’informatica. I sistemi informativi esistono
da quando l’uomo nelle pareti delle caverne disegnava dei cervi per ricordare una buona giornata di
caccia. Ogni organizzazione utilizza al suo interno un sistema informativo. Quello classico si basa su
Copyright ã 2009-2010 di Talento s.r.l.
1
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
lettere, moduli ed altri documenti cartacei. La porzione di sistema informativo che viene gestita in
modo automatico mediante tecnologie informatiche prende il nome di sistema informatico. I sistemi
informatici hanno il compito di raccogliere, organizzare e conservare le informazioni. Essi garantiscono che tali informazioni vengano conservate in modo permanente su dispositivi per la loro
memorizzazione, aggiornate per riflettere rapidamente le loro variazioni e rese accessibili alle richieste
degli utenti. Idealmente il sistema informatico dovrebbe coincidere con quello informativo. Purtroppo
però i processi informativi gestiti in modo automatico costituiscono solo una porzione di gran parte dei
sistemi informativi. Nel passaggio dal sistema informativo al sistema informatico l’informazione che
viene manipolata (o gestita) in modo automatico deve essere omogeneizzata e spesso subisce
l’introduzione di artefatti come l’introduzione del codice fiscale per identificare le persone. Dal
momento che un sistema informatico è di supporto ai processi di manipolazione automatica
dell’informazione è opportuno chiedersi che cosa voglia dire "informazione" e come gestirla.
DATI E INFORMAZIONI
Nelle attività umane più semplici le informazioni vengono rappresentate e scambiate secondo le
tecniche naturali tipiche delle attività stesse: la lingua, scritta o parlata, disegni, figure, numeri. Mano a
mano che le attività si sono andate sistematizzando, sono state sviluppate opportune forme di
organizzazione e codifica delle informazioni. Nei sistemi informatici, per ragioni in parte tecnologiche
e in parte legate alla semplicità dei meccanismi di gestione, il concetto di rappresentazione viene
portato all’estremo: le informazioni vengono rappresentate per mezzo di dati, vale a dire che un dato
per diventare informazione deve essere associato a un’interpretazione. I dati da soli non hanno
significato, ma, una volta interpretati e correlati opportunamente, essi forniscono informazione.
Chiariamo il concetto con un esempio. Se troviamo su un post-it una scritta del tipo:
dott. Carlo Bianchi 742
possiamo dire che questi sono dati perché non otteniamo da essi alcuna informazione. Il significato del
numero associato al nome può essere di vario tipo ad esempio:
· ora dell’appuntamento in data odierna con quella persona
· ultime tre cifre del fax di quella persona
· numero di parole massime a disposizione nel giornale aziendale per l’elogio della persona
· ecc.
Se invece sappiamo che Carlo Bianchi 742 è il risultato della richiesta dell’interno telefonico relativo al
capo del personale, allora i dati diventano informazione: da quel giorno in poi, fino a che la memoria non
ci tradisce, sapremo che il capo del personale è il dottor Bianchi e che il suo interno è il 742.
Ritornando ai sistemi informativi, i valori memorizzati in specifici byte di un file rappresentano
semplicemente dei dati. Il sistema assocerà a tali dati un contesto in modo che possano diventare
informazione. Per esempio, un programma potrebbe leggere i byte e interpretarli nel seguente modo: i
byte da 0 a 19 rappresentano il cognome di un impiegato, da 20 a 39 il nome, da 40 a 47 la data di
nascita, e così via. Se poi i dati saranno utilizzati dal sistema assieme al contesto, allora l’utente
riceverà l’informazione.
A titolo di esempio supponiamo che a una richiesta dell’utente, il sistema informativo aziendale
risponda visualizzando quanto segue:
Impiegato
Cognome: Rossi
Nome: Mario
Data di nascita: 12/07/1979
In questo esempio, i dati sono: “Rossi”, “Mario” e “12/07/1979”. Il contesto è rappresentato da
“Impiegato”, “Cognome”, “Nome” e “Data di nascita”. Dati più contesto producono informazione.
I sistemi informativi organizzano e rendono disponibili informazioni accedendo ai dati. In molte
applicazioni i dati hanno caratteristiche più stabili rispetto a quelle delle procedure (manuali o
automatizzate) che operano su di essi. Quando una procedura sostituisce un’altra, la nuova procedura
"eredita" i dati dalla vecchia, con opportune trasformazioni, più o meno semplici. Questa caratteristica
2
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
di stabilità porta ad affermare che i dati costituiscono una risorsa per l’organizzazione che li gestisce,
un patrimonio significativo da sfruttare e da proteggere.
I DATABASE NELLA VITA QUOTIDIANA
I database hanno una importanza fondamentale nella vita di tutti i giorni; basta solo pensare ai nostri
dati personali e a quante volte sono stati inseriti nei vari archivi. Siamo tutti schedati nel bene e nel
male! E tutta questa schedatura ha come supporto i database.
Da testimonianze storiche, e scritte cuneiformi assire su tavole di argilla, risulta che a Ninive, già
allora, si praticava la schedatura dei cittadini di tutto il regno assiro, e che esisteva un enorme spazio
coperto destinato alla conservazione e alla consultazione di tutte quelle tavole. L'archivio di stato
assiro può essere definito come il primo "database" noto e rilevante della storia della civiltà umana.
Anche il Tabularium dell'Antica Roma è da considerarsi il grande database dello Stato Romano.
Si potrebbe continuare con molti altri esempi ma si rischierebbe di appesantire eccessivamente il
concetto. Comunque, da sempre e ovunque, l'uomo, soprattutto di governo, ha usato e perfezionato le
tecniche di archiviazione per i suoi scopi più disparati. Primo tra tutti quello di controllare le ricchezze
del proprio popolo e riscuotere le imposte.
Ultimamente, a causa della diffusione di Internet, il fenomeno di schedatura è diventato diffuso a
livello planetario. Siamo tutti, o quasi, schedati sia dai nostri governi che dalle multinazionali e trattati
come potenziali clienti; si salvano solo alcune tribù isolate, ma anche loro, sicuramente, avranno una
loro schedatura locale. Come difenderci da questo globale e continuo controllo sui nostri dati ancora
non lo sappiamo.
Tutto il controllo avviene, in modo così sistematico, rigoroso, puntuale e sofisticato, grazie al grado di
perfezionamento che hanno raggiunto oggi i database. Riescono a contenere una quantità di informazioni dettagliate di ogni genere (testi, grafica, filmati, suoni, ...), umanamente infinita.
Generalmente, il maggior uso che si fa di un database è quello di richiamare alcuni dati, precedentemente archiviati, per una loro lettura, modifica o eliminazione. Usare un database solo per questi scopi
è alquanto limitativo. I database, potenzialmente, possono offrirci molto di più. Partendo dai dati
disponibili ed applicando opportuni modelli matematici è possibile fare ragionevoli e sufficientemente
attendibili previsioni future su alcuni fenomeni, come l'andamento della borsa, le previsioni del tempo,
il passaggio degli uragani, il grado di inquinamento di una città ed altri infiniti fenomeni naturali e
sociali.
L’uso dei database permea l’attività quotidiana. Quando attraverso Internet stiamo prenotando un
biglietto aereo stiamo utilizzando inconsapevolmente un grande database. Quando accediamo al nostro
conto corrente bancario o al sito della nostra carta di credito stiamo accedendo ad un altro database.
L’elenco è pressoché infinito. Tutte le volte che ci rechiamo presso uno sportello pubblico è sufficiente
fornire nome, cognome e data di nascita, o al più il codice fiscale, per vederci immediatamente
identificati sul terminale di sportello collegato con un’applicazione di database.
EVOLUZIONE DEI DATABASE
Nel paragrafo precedente si è fatto cenno all’uso di arcaiche tecniche di schedatura assimilabili nel
concetto e nello scopo ai moderni database. Limitandoci a questi ultimi va rilevato che i database che
si usano oggi (e come impareremo a conoscere più avanti) rappresentano l’evoluzione dei modelli nati
a partire dagli anni ’60. In base alla loro struttura logica si possono distinguere i seguenti tipi di
database:
· Il modello gerarchico è quello che ha conosciuto il maggior utilizzo fino agli anni '80. Il
database è composto da un insieme di archivi. Gli archivi sono composti da record chiamati
segmenti. I segmenti sono in rapporto gerarchico tra loro attraverso legami di tipo padrefiglio. La struttura ad albero che caratterizza questo modello si basa sulla possibilità di
individuare un segmento principale, il padre o la radice, dal quale dipendono n segmenti figli,
Copyright ã 2009-2010 di Talento s.r.l.
3
Access 2007
·
·
·
VERSIONE PERSONALE DI STUDENTE EBOOK01
che a loro volta si trasformano in padri per altri figli e così via. A questi, in virtù della totale
dipendenza dal padre, è possibile fare riferimento solo attraverso il passaggio dal nodo
principale. Non è possibile dal figlio risalire al padre.
Il modello reticolare deriva da quello gerarchico, rispetto al quale supera la rigidità della
struttura ad albero nell'interdipendenza dei dati, ma la cui complessità ne ha impedito una
larga diffusione. In una struttura gerarchica un segmento figlio può avere solo un segmento
padre; non è così nel modello reticolare: ogni record può avere un numero qualsiasi di record
subordinati e di record precedenti e le correlazioni vengono espresse attraverso record
particolari, chiamati record di collegamento (member), che formano delle catene tra le varie
parti del sistema. Le strutture utilizzate nel modello reticolare sono due, il record (si pensi ai
comuni file) e il set, che permette di correlare i record, per mezzo di catene di puntatori.
Dunque una base di dati reticolare è definita con riferimento ad uno schema, che contiene tipi
record collegati fra loro da tipo set.
Il modello relazionale; organizza i dati in tabelle, basandosi sulle relazioni fra di esse.
Il modello ad oggetti; il più recente, estende i concetti del modello relazionale adattandoli
alla programmazione ad oggetti.
ESEMPI DEL MODELLO GERARCHICO E RETICOLARE
I primi due tipi di database, quelli gerarchici e reticolari, appartengono ormai alla storia dell'informatica. La maggior parte dei database attualmente utilizzati appartiene alla categoria dei database
relazionali. I motivi di questo successo (anche commerciale) vanno ricercati nella rigorosità
matematica e nella potenzialità espressiva del modello su cui si basano, nella sua semplicità di utilizzo
e, ultima ma non meno importante, nella disponibilità di un linguaggio di interrogazione standard.
ESEMPIO DI MODELLO RELAZIONALE
I database ad oggetti sono la nuova frontiera nella ricerca sui database, infatti le loro caratteristiche di
estendibilità, derivanti dalla possibilità di definire nuovi tipi di dati e comportamenti, li rendono
particolarmente appetibili per tutte quelle applicazioni che richiedono dati complessi, come ad esempio
immagini e suoni. Purtroppo la mancanza di un modello per gli oggetti universalmente accettato e la
non disponibilità di un linguaggio di interrogazione standard fanno sì che ogni produttore implementi
la propria visione specifica, di solito assolutamente incompatibile con tutte le altre.
Nel seguito del corso si parlerà solamente di database relazionali.
4
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
DATABASE RELAZIONALI
l modello relazionale è stato introdotto nel 1970 dal britannico Edgar Frank Codd col documento "A
Relational Model of Data for Large Shared Data Banks" (modello di dati relazionale per grandi
banche dati condivise) a completamento di un progetto di ricerca commissionato da IBM.
Il documento, composto di 30 capitoli e due appendici, non è di facile lettura e utilizza una terminologia che non ha poi trovato utilizzi nella pratica comune. Nel modello relazionale la struttura principale
è la “relazione”, cioè una tabella bidimensionale composta da righe e colonne. Ciascuna riga, definita
“tupla”, rappresenta “un'entità” che si desidera memorizzare nel database. Le caratteristiche di
ciascuna entità sono definite invece dalle colonne delle relazioni, che vengono chiamate “attributi”.
Entità con caratteristiche comuni, cioè descritti dallo stesso insieme di attributi, faranno parte della
stessa relazione.
Nota: Nella pratica e nel contesto di questo libro non si farà riferimento alla terminologia relazionale
utilizzata nel succitato documento ma quella utilizzata nel linguaggio informatico comune e
comunque quella richiesta dal Syllabus.
Un database relazionale è una raccolta di informazioni omogenee, memorizzate su più tabelle.
Una tabella è una raccolta di dati relativi ad uno specifico argomento e organizzata in righe e colonne.
In un database relazionale due o più tabelle possono essere collegate in modo da sembrare una sola
tabella. In questi database non ci sono ripetizioni di dati tranne per quegli elementi con i quali sono
collegate le tabelle.
Una tabella è composta di campi e record.
Un record è una riga in una tabella e contiene le informazioni relative ad un "elemento". Un campo è
una colonna in una tabella; i campi sono categorie di informazioni, come nomi, indirizzi, città, stati e
codici postali. L'insieme dei campi che contiene i dati di una singola voce è il record.
Per esempio, "Carlo Rossi, via Verdi 11, 70043 Monopoli, Bari" è un record della tabella Indirizzi.
Ogni campo nel record è valorizzato: "Bari" è il valore del campo Provincia nel precedente esempio.
Ogni tabella deve possedere una chiave primaria, cioè un campo (o più campi) in grado di
identificare in maniera univoca ciascun record della tabella. Ad esempio in una tabella Ordini il campo
Codice Ordine può assolvere egregiamente questo compito. La chiave primaria è indispensabile per
stabilire una valida relazione tra tabelle, cioè per collegare i dati di una tabella con un’altra. Ad
esempio ponendo in relazione la tabella dei Clienti con la tabella degli Ordini sarà facile ritrovare gli
ordini di ogni cliente senza creare duplicazioni nella tabella degli ordini. Alla chiave primaria viene
automaticamente associato un Indice cioè un elemento esterno usato per ritrovare rapidamente un dato
proprio come l’indice di un libro.
DATABASE E SISTEMI PER LA LORO GESTIONE
Un database (spesso abbreviato con DB) è una collezione di dati di solito condivisa tra diversi
applicazioni o utenti. Un database può essere di grandi dimensioni (anche migliaia di miliardi di byte o
terabyte) e comunque di dimensioni molto maggiori della memoria primaria di un computer; di
conseguenza è memorizzata in memoria secondaria (detta anche memoria di massa). Ovviamente una
base di dati può anche essere piccola, ma con gli stessi principi e funzionalità dei database grandi. Una
base di dati è tipicamente condivisa: applicazioni e utenti diversi devono poter accedere, secondo
opportune modalità, a dati comuni. In questo modo si riduce la ridondanza dei dati, poiché si evitano
ripetizioni e conseguentemente si riduce la possibilità di incoerenze. Una base di dati è persistente,
cioè ha un tempo di vita superiore al tempo di esecuzione delle applicazioni che la utilizzano.
Un DBMS (Database Management System o sistema di gestione di basi di dati) è un sistema software
in grado di gestire basi di dati che siano grandi, condivise e persistenti.
Volendo ampliare il concetto si può aggiungere che la presenza di un DBMS permette di definire
(specificare i tipi di dati e tutti i vincoli su di essi), costruire (immagazzinare i dati), manipolare
(recuperare e/o modificare i dati) e condividere (con altri utenti e/o programmi) la base di dati.
Copyright ã 2009-2010 di Talento s.r.l.
5
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
I DBMS garantiscono l’affidabilità, cioè la capacità del sistema di conservare sostanzialmente intatto
il contenuto della base di dati (o almeno di permetterne la ricostruzione) in caso di malfunzionamenti
hardware e software. A questo scopo i DBMS forniscono specifiche funzionalità di salvataggio e
ripristino (backup e recovery). I DBMS garantiscono la privatezza dei dati. Ciascun utente,
riconosciuto in base ad un nome utente che è specificato all’atto di interagire con il DBMS, viene
abilitato a svolgere solo determinate azioni sui dati, attraverso meccanismi di autorizzazione. I DBMS
gestiscono le basi di dati in modo efficiente ed efficace. Per efficienza si intende un utilizzo delle
risorse (tempo e spazio) che sia accettabile dagli utenti. Ad esempio un utente che acquisti un biglietto
aereo attraverso Internet potrà accettare alcuni secondi di ritardo, ma un utente che controlla una
centrale nucleare non potrà accettare così a lungo. Per efficacia si intende la capacità dei DBMS di
rendere produttive le attività dei suoi utenti. L’attività di progettazione della base di dati e delle
applicazioni che la utilizzano mira essenzialmente a garantire una buona efficacia complessiva del
sistema.
Se il DBMS utilizza il Modello Relazionale per strutturare logicamente i dati al suo interno allora si
parla di RDBMS (Relational DBMS). Sul mercato esistono diversi RDBMS, spesso molto diversi tra
loro, ma che condividono lo stesso linguaggio di definizione e manipolazione di basi di dati: il
linguaggio SQL. Tale linguaggio è divenuto un vero e proprio standard anche se tutti gli RDBMS
implementano l’SQL con molte variazioni. Esistono RDBMS per tutti i gusti, alcuni gratuiti, come
MySQL o PostgreSQL, altri invece possono essere molto costosi, come il famosissimo Oracle. Anche
MS Access è un RDBMS.
VANTAGGI DEL DATABASE
L’impiego del database comporta una serie di vantaggi rispetto alla gestione delle informazioni
mediante file individuali. Tali benefici sono riconducibili al fatto che i dati sono controllati in maniera
centralizzata. Tra i vantaggi possiamo quindi citare:
· Eliminazione delle ridondanze: nell'ambiente "non database" ogni applicazione gestisce
autonomamente un suo insieme di archivi; ciò conduce facilmente ad avere lo stesso dato
ripetuto varie volte nel sistema informativo. Con l'impiego di un database la proliferazione dei
dati viene evitata, sia perché esiste un disegno delle strutture dati più controllato, sia perché
nuove applicazioni possono sfruttare agevolmente i dati già previsti.
· Minori rischi di inconsistenza nei dati: eliminando le ridondanze e ponendo gli accessi sotto
il controllo di uno specifico software, l’integrità logica dei dati risulta meglio assicurata e
viene meno il rischio che, in certi momenti del lavoro, esistano copie disallineate dello stesso
dato.
· Protezione da accessi non autorizzati: il DBMS, avendo il controllo sia sui dati che sugli
utenti del database, è in grado di evitare accessi non autorizzati, così che ciascun utente possa
utilizzare i dati aziendali in maniera differenziata.
· Integrità dei dati garantita: i dati gestiti sotto i1 controllo di un DBMS centralizzato
possono essere meglio protetti a fronte di anomalie nel funzionamento del sistema o dei
programmi, avvalendosi di meccanismi automatici di controllo degli accessi concorrenti e di
ripristino dei dati modificati.
PROGETTARE UN DATABASE
Quando emerge la necessità di costruire un database, c'è la forte tentazione di sedersi alla propria
stazione di lavoro, accendere il computer, lanciare il proprio RDBMS e cominciare a generare tabelle.
Questo metodo, tranne nei casi davvero banali, porta solitamente alla generazione di tabelle molto
grandi, mal progettate piene di ridondanze e dunque foriere di vari tipi di anomalie. È bene quindi non
seguire questo metodo ma procedere con una fase di progettazione concettuale su carta che solo alla
fine sfocerà nella creazione del database fisico.
6
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
Nei grandi database, progettati dai professionisti dell’informatica, si adottano delle tecniche progettuali
basate su cinque passi fondamentali:
1. Stesura di una descrizione della realtà da rappresentare (mini mondo).
2. Realizzazione del Modello Entità/Relazione1.
3. Traduzione del Modello ER nel Modello Relazionale.
4. Normalizzazione2 delle tabelle.
5. Traduzione del Modello Relazionale nel DDL3 dell’RDBMS scelto.
Per gli scopi di questo libro, questo approccio sarebbe decisamente eccessivo per cui ci si limiterà a
considerare “appropriata” la progettazione che soddisfa le seguenti caratteristiche:
· Suddivide le informazioni in tabelle per argomento in modo da ridurre i dati ridondanti.
· Individua le informazioni necessarie per unire i dati delle tabelle in base alle esigenze.
· Supporta e garantisce l'accuratezza e l'integrità delle informazioni.
· Soddisfa le esigenze di elaborazione dei dati e creazione di report.
La macro fasi di progettazione di un database sono:
1. Identificare con precisione lo scopo.
2. Catalogare i dati esistenti e definire gli output richiesti
3. Suddividere le informazioni in tabelle assegnando ad ogni argomento principale una tabella.
4. Redigere per ogni tabella una lista preliminare dei campi.
5. Identificare la chiave primaria di ogni tabella.
6. Disegnare le relazioni fra le tabelle esaminando i dati di ognuna in rapporto alle altre. Aggiungere
campi alle tabelle o creare nuove tabelle per chiarire le relazioni, in base alle esigenze.
7. Inserire dati campione per verificare se è possibile ottenere i risultati desiderati dalle tabelle.
Apportare modifiche alla progettazione in base alle esigenze e normalizzare i dati.
8. Rivedere e finalizzare il progetto.
FASE 1 - IDENTIFICARE LO SCOPO DEL DATABASE
Questa fase può sembrare banale e, in genere, per i piccoli database può essere limitata ad una scrittura
del tipo “Il database contiene l’elenco dei film posseduti e catalogati secondo i vari media e permette
la gestione completa dei titoli e la generazione di report per tipo film, attore, regista o supporto”.
In caso di database più complessi o utilizzati da numerosi utenti, così come in genere in un ambiente
aziendale, lo scopo può essere articolato in uno o più paragrafi e dovrà includere i tempi e le modalità
con cui il database verrà utilizzato da ogni utente, in modo da disporre di una dichiarazione degli
obiettivi ben definita a cui fare riferimento nell'intero processo di progettazione. Una dichiarazione di
questo tipo consente di concentrarsi sugli obiettivi al momento delle decisioni.
FASE 2 - CATALOGARE I DATI ESISTENTI E DEFINIRE GLI OUTPUT RICHIESTI
Per raggiungere gli obiettivi richiesti al database è necessario analizzare i dati di cui si dispone e
verificare che questi dati siano sufficienti per generare gli output richiesti. Va anche tenuto conto della
natura di questi dati. Se i dati sono di tipo cartaceo il database dovrà prevedere la fase di acquisizione e
controllo degli stessi. Se invece i dati sono disponibili su archivi non strutturati, come elenchi di Excel,
file di testo generati da Mainframe o altro, il database dovrà prevedere l’importazione e la ripulitura
degli stessi. Ogni dato disponibile deve essere catalogato elencando il tipo di informazione e la sua
provenienza. Ogni dato è potenzialmente candidato a diventare una colonna di una tabella.
Considerare quindi i tipi di report richiesti. Analizzando i report che si desidera creare, è possibile
identificare a ritroso gli elementi necessari nel database.
1
Modello per la rappresentazione concettuale dei dati ad un alto livello di astrazione introdotto da Peter Chen.
Procedimento volto all'eliminazione della ridondanza e del rischio di inconsistenza dal database.
3
Linguaggio che permette di creare, modificare o eliminare gli oggetti in un database.
2
Copyright ã 2009-2010 di Talento s.r.l.
7
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
Si supponga ad esempio di offrire ai clienti l'opportunità di acconsentire esplicitamente all'invio di
brochure informative a mezzo posta elettronica (o rifiutare esplicitamente tale opportunità) e di voler
generare un elenco dei clienti che hanno acconsentito. Per registrare tali informazioni, la tabella dei
clienti dovrà possedere la colonna “Invio brochure” in modo da poter impostare per ogni cliente il
valore su Sì o No. Inoltre, dopo aver determinato che un cliente desidera ricevere messaggi di posta
elettronica, sarà necessario conoscere e registrare l'indirizzo e-mail a cui devono essere inviati. Dovrà
pertanto essere registrato un indirizzo di posta elettronica per ogni cliente. Se queste informazioni non
erano state inizialmente previste , aggiungere i campi all’elenco dei dati necessari.
Ripetere questa operazione per qualsiasi altro report che si prevede di creare.
Da ultimo, considerare le domande a cui si desidera trovare risposta mediante il database. Ad esempio,
quante vendite del prodotto “x” sono state concluse nell'ultimo mese? Dove risiedono i migliori
clienti? Qual è il fornitore del prodotto con il volume di vendite più elevato? Prevedendo queste
domande è possibile identificare elementi aggiuntivi da registrare.
FASE 3 - PROGETTARE LE TABELLE
Decidere quali tabelle e campi debbano essere inclusi in un database è una delle operazioni più
importanti nella progettazione di un database relazionale. Ciascuna tabella del database deve contenere
informazioni di un "oggetto" unico e specifico, cioè l'insieme delle informazioni correlate con una
caratteristica comune. Se non è così allora probabilmente la tabella contiene dati ridondanti e questo
può essere fonte di diverse anomalie. Si osservi ad esempio la seguente porzione di tabella (sono stati
riportati solo i campi necessari per rendere evidente il concetto):
Prodotti e fornitori
Prodotto
Fornitore
Indirizzo
The verde
Sapori d’oriente
Via del fico 42
Zafferano
Sapori d’oriente
Via del fico 42
Panna da cucina
Gusti emiliani
Via Barilotti 11
In questo caso, ogni riga contiene informazioni sia sul prodotto che sul relativo fornitore. Poiché si può
disporre di numerosi prodotti dello stesso fornitore, le informazioni relative al nome e all'indirizzo del
fornitore devono essere ripetute molte volte. Ciò costituisce uno spreco di spazio su disco (ma questo è
solo il minore dei mali). La registrazione delle informazioni relative al fornitore una sola volta in una
tabella Fornitori separata e il successivo collegamento a tale tabella dalla tabella Prodotti
rappresentano una soluzione notevolmente più efficiente.
Un secondo problema associato a questa progettazione viene riscontrato quando si devono modificare
le informazioni sul fornitore (anomalia di update). Si supponga ad esempio di dover modificare
l'indirizzo di un fornitore. Poiché tale indirizzo è presente in numerose posizioni, è accidentalmente
possibile modificarlo in una posizione ma omettere di modificarlo in altre. Il problema può essere
risolto registrando l'indirizzo del fornitore in un'unica posizione.
Quando si progetta il database, provare sempre a registrare ogni dato una sola volta. Se si rileva che le
stesse informazioni devono essere ripetute in più posizioni, ad esempio l'indirizzo di un determinato
fornitore, inserire tali informazioni in una tabella separata.
Si supponga infine di disporre di un unico prodotto fornito da Cantina ABC e di voler eliminare il
prodotto mantenendo tuttavia le informazioni relative al nome e all'indirizzo del fornitore. Non è
possibile eliminare il record del prodotto senza perdere le informazioni relative al fornitore (anomalia
di delete). Poiché ogni record contiene sia i dati su un prodotto che i dati su un fornitore, gli uni non
possono essere eliminati senza eliminare gli altri. Per mantenere separati questi dati, è necessario
dividere questa unica tabella in due: una tabella per le informazioni relative ai prodotti e un'altra
tabella per le informazioni relative ai fornitori. Eliminando il record di un prodotto dovranno essere
eliminati soltanto i dati sul prodotto, non i dati sul fornitore.
8
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
Prodotti
Prodotto
PrezzoU
Scorte
IDFonitore
The verde
1,32
2000
1
Zafferano
1,55
1500
1
Panna da cucina
0,85
800
2
Fornitori
ID
Nome
Indirizzo
1
Sapori d’oriente
Via del fico 42
2
Gusti emiliani
Via Barilotti 11
3
Cantina ABC
Via delle viti 33
Dopo che è stato scelto l'argomento rappresentato da una tabella, le colonne della tabella dovranno
contenere soltanto dati relativi a tale argomento. Nella tabella dei prodotti, ad esempio, dovranno essere
memorizzati soltanto dati sui prodotti. Poiché l'indirizzo del fornitore costituisce un dato relativo al
fornitore e non un dato relativo al prodotto, tale indirizzo appartiene alla tabella dei fornitori.
FASE 4 - SUDDIVIDERE I CAMPI
Per determinare le colonne di una tabella, definire le informazioni di cui è necessario tenere traccia
relativamente all'argomento registrato nella tabella.
Dopo aver determinato l'insieme iniziale di colonne per ogni tabella, è possibile perfezionare
ulteriormente le colonne. In generale è opportuno che ogni campo contenga un solo elemento del dato
cioè che nessun dato sia di tipo composto. Tipicamente questo è valido per i nominativi e gli indirizzi.
È ad esempio opportuno memorizzare il nominativo del cliente in due colonne separate, corrispondenti
a nome di battesimo e cognome, in modo da poter eseguire l'ordinamento, la ricerca e l'indicizzazione
in base a tali colonne. Analogamente, per i cinque componenti dell'indirizzo: via, città, provincia,
codice postale e paese, è ugualmente opportuno memorizzarli in colonne separate. Per eseguire
un'operazione di ordinamento, ricerca o filtro in base alla provincia, ad esempio, è necessario che le
informazioni relative alla provincia siano memorizzate in una colonna distinta.
Un altro elemento importante da prendere in considerazione e quello di non includere colonne
calcolate cioè di non memorizzare risultati di calcoli nelle tabelle; nemmeno se si importano da Excel!
Le tabelle non offrono capacità di calcolo, per cui se si dovesse aggiornare uno dei componenti del
calcolo, il risultato non cambierebbe e si creerebbe una inconsistenza. Ad esempio, si consideri la
seguente porzione di tabella. Se la quantità viene aggiornata il campo importo rimane invariato.
Quantità
100
PrezzoU
€1,45
Importo
€145,00
Il calcolo potrà invece essere eseguito in Access quando si desidera visualizzare il risultato. Si supponga
ad esempio di dover generare la fattura di una vendita. Il report fattura provvederà a fare i calcoli
necessari a partire dai dati disponibili anche se i singoli importi non sono memorizzati nella tabella.
FASE 5 - IDENTIFICARE LA CHIAVE PRIMARIA DI OGNI TABELLA
Ogni tabella di un database relazionale deve avere un campo, o una combinazione di campi, che
contiene un valore in grado di identificare in modo univoco ciascun record. Ad esempio, un campo
codice cliente sarà in grado di identificare senza difficoltà di interpretazione, ciascun cliente. Questo
Copyright ã 2009-2010 di Talento s.r.l.
9
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
campo è chiamato chiave primaria della tabella. Il valore della chiave primaria deve essere univoco
cioè non sono consentiti duplicati nei suoi valori.
È sempre consigliabile scegliere una chiave primaria il cui valore non verrà modificato. In un database
che utilizza più tabelle, la chiave primaria di una tabella può essere utilizzata come riferimento in altre
tabelle. Se la chiave primaria viene modificata, la modifica dovrà inoltre essere applicata in ogni
posizione in cui viene fatto riferimento alla chiave. L'utilizzo di una chiave primaria non soggetta a
modifiche riduce la possibilità che la chiave primaria risulti non sincronizzata con le altre tabelle che
vi fanno riferimento
Se non esiste un singolo campo avente le caratteristiche proprie della chiave primaria, è possibile
definire una chiave primaria come insieme di più campi (chiave multi-campo). In questo caso, è
importante utilizzare il numero più piccolo possibile di campi per definire la chiave primaria. In
subordine è possibile creare un campo che generi automaticamente una progressione numerica nel
campo chiave (vedere più avanti il tipo dati “contatore”). Quest’ultimo metodo ha anche il vantaggio
che il campo generato non è più modificabile ed è quindi il candidato ideale per una chiave primaria.
Attenzione
Per poter essere definito come chiave primaria, un campo non deve mai avere valore "nullo" (non
deve cioè essere vuoto o avere un valore sconosciuto al sistema). Il valore "nullo" non coincide
con "zero". In un campo numerico, "zero" è un valore corretto.
FASE 6 - DISEGNARE LE RELAZIONI FRA LE TABELLE
In un database relazionale, le informazioni vengono suddivise in tabelle separate per argomento.
Utilizzando le relazioni tra le tabelle si possono combinare le informazioni in base alle esigenze. Con
questo meccanismo si evitano le duplicazioni (ridondanze) e si prevengono gli errori di aggiornamento
(anomalie di update) e di cancellazione (anomalie di delete).
Le due tabelle distinte Prodotti e Fornitori viste nella “Fase 3” rappresentano ottimamente un esempio
di questo concetto. Un fornitore può fornire qualsiasi numero di prodotti, quindi, per ogni fornitore
della tabella Fornitori possono essere presenti numerosi prodotti nella tabella Prodotti ma per ogni
prodotto esiste solo un fornitore. Tra la tabella Fornitori e la tabella Prodotti può essere pertanto
stabilita una relazione uno-a-molti.
Prodotti
CodiceP
Prodotto
PrezzoU
Scorte
IDFonitore
IT01
The verde
1,32
2000
1
IT02
Zafferano
1,55
1500
1
IT03
Panna da cucina
0,85
800
2
Tabella correlata
Fornitori
ID
Nome
Indirizzo
1
Sapori d’oriente
Via del fico 42
2
Gusti emiliani
Via Barilotti 11
3
Cantina ABC
Via delle viti 33
Chiave esterna
Tabella primaria
RELAZIONE UNO A MOLTI
Per rappresentare una relazione uno-a-molti nella progettazione del database, aggiungere la chiave
primaria del lato "uno" della relazione come ulteriore colonna o insieme di colonne nella tabella sul
lato "molti" della relazione. In questo caso, ad esempio, si aggiunge la colonna IDFornitore alla tabella
Prodotti (che contiene i valore del campo ID della tabella Fornitori). L'ID del fornitore può quindi
essere utilizzato da Access nella tabella Prodotti per individuare il fornitore corretto per ogni prodotto.
10
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
La colonna IDFornitore della tabella Prodotti viene denominata chiave esterna. Una chiave esterna è
costituita dalla chiave primaria di un'altra tabella. La colonna IDFornitore della colonna Prodotti è una
chiave esterna poiché costituisce anche la chiave primaria della tabella Fornitori.
Un altro tipo di relazione è rappresentato dalla relazione uno-a-uno. Una relazione uno-a-uno significa
che ogni record della tabella A è correlato ad uno (e solo ad uno) della tabella B e viceversa. Quando si
identifica una relazione di questo tipo, entrambe le tabelle devono condividere un campo comune
(normalmente la chiave primaria).
Si supponga ad esempio di dover registrare alcune informazioni supplementari sui prodotti che sono
raramente necessarie o sono applicabili soltanto ad alcuni prodotti. Poiché non sono in genere
necessarie e la relativa memorizzazione nella tabella Prodotti determinerebbe spazio vuoto per ogni
prodotto a cui non sono applicabili, le informazioni vengono inserite in una tabella separata.
Tra la tabella NoteProdotti e la tabella Prodotti esiste una relazione uno-a-uno. Per ogni record della
tabella Prodotti esiste (potenzialmente) un unico record corrispondente nella tabella NoteProdotti.
Prodotti
CodiceP
Prodotto
PrezzoU
Scorte
IDFonitore
IT01
The verde
1,32
2000
1
IT02
Zafferano
1,55
1500
1
IT03
Panna da cucina
0,85
800
2
IT04
Sciroppo dietetico
2,45
50
5
NoteProdotti
CodiceP
Nota
IT04
Non superare le dosi giornaliere riportate in
etichetta ………………
RELAZIONE UNO A UNO
Quando nel database si rileva l'esigenza di una relazione uno-a-uno, considerare se le informazioni
delle due tabelle possono essere unite in una tabella singola. Se non si desidera tale unione per
qualsiasi motivo, ad esempio poiché ciò determinerebbe una notevole quantità di spazio vuoto, oppure
perché le tabelle devono avere accessibilità diverse, allora creare la relazione.
L’ultimo tipo di relazione possibile è la relazione molti-a-molti. Per esempio si consideri la relazione tra
la tabella Prodotti e la tabella Ordini. Un singolo ordine può includere più prodotti, mentre un singolo
prodotto può essere incluso in molti ordini. A ogni record della tabella Ordini possono pertanto
corrispondere numerosi record della tabella Prodotti e a ogni record della tabella Prodotti possono
corrispondere numerosi record della tabella Ordini.
Prodotti
Ordini
Codice
Prodotto
PrezzoU
CodOrd
IDCliente
DataOrdine
IT01
The verde
1,32
OD01
SLRAC
10/01/2008
IT02
Zafferano
1,55
OD02
LTBNC
10/01/2008/
IT03
Panna da cucina
0,85
OD03
RAV42
11/01/2008
IT04
Sciroppo dietetico
2,45
OD04
FARMR
11/01/2008
DettagliOrdini
CodiceP
CodOrd
Quantità
IT01
OD01
10
IT04
OD01
5
RELAZIONE MOLTI A MOLTI
L'esistenza di una relazione molti-a-molti tra gli argomenti delle due tabelle, Ordini e Prodotti, presenta
un problema. Se si tenta di creare la relazione tra le due tabelle aggiungendo il campo CodiceP alla
tabella Ordini, per includere più prodotti in un ordine è necessario disporre di più record per ordine nella
tabella Ordini, ripetendo le informazioni relative all'ordine in ogni riga correlata a un singolo ordine e
Copyright ã 2009-2010 di Talento s.r.l.
11
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
ottenendo così una progettazione inefficiente che può determinare dati non accurati. Lo stesso problema
si riscontra inserendo il campo CodOrd nella tabella Prodotti, poiché si disporrà di più record per ogni
prodotto nella tabella Prodotti. Per risolvere questo problema è necessario creare una terza tabella, in
genere denominata tabella di collegamento, che consente di suddividere la relazione molti-a-molti in
due relazioni uno-a-molti. Nella terza tabella viene inserita la chiave primaria di ognuna delle due tabelle,
registrando così ogni occorrenza o istanza della relazione.
FASE 7 - NORMALIZZARE I DATI
In questa fase si prova ad inserire per ogni tabella una piccola serie di dati campione e si verifica se il
database risponde alle esigenze di progetto. In questo contesto potrebbe balzare agli occhi la dimenticanza o la possibile miglioria di un elemento e questo potrebbe richiedere la creazione di una nuova
tabella. Effettuando una progettazione accurata, adottando i criteri sinora esposti e applicando le
normali regole di buon senso (ma bisognerebbe aggiungere anche con un pizzico di esperienza), si
dovrebbe arrivare a questo punto con un database correttamente strutturato. In ogni caso la teoria dei
database relazionali ha previsto una serie di “controlli”, denominati regole di normalizzazione, da
applicare alle tabelle per verificarne la corretta strutturazione. Il processo di applicazione delle regole
alla progettazione del database viene chiamato" normalizzazione del database o semplicemente
normalizzazione.
La normalizzazione, maggiormente utile dopo che sono stati rappresentati tutti gli elementi di
informazioni ed è stata definita una progettazione preliminare, è finalizzata a garantire che gli elementi
di informazioni siano stati suddivisi nelle tabelle appropriate. La normalizzazione non può tuttavia
garantire che si disponga di tutti gli elementi di dati corretti come punto di partenza.
Le regole vengono applicate in successione, verificando in ogni passaggio che la struttura raggiunga la
cosiddetta "forma normale". Sono in genere accettate cinque forme normali, dalla prima forma
normale fino alla quinta. Ogni forma normale rappresenta un insieme sempre più stringente di regole e
assume che i requisiti della forma precedente siano tutti soddisfatti. Normalizzando i dati si eliminano
le informazioni ridondanti e si organizzano le tabelle per facilitare la gestione, l'aggiornamento e la
manutenzione del database. Solitamente, effettuando questa operazione si suddividono grandi tabelle
in altre più piccole e di più facile gestione, inserendo chiavi esterne per creare la connessione fra le
varie tabelle.
Una valida relazione fra le tabelle è stabilita se si raggiunge la terza forma normale. In questo testo
saranno descritte, le regole delle prime tre forme normali. Per descrivere questo processo verrà
utilizzato un esempio diverso dai precedenti in quanto le tabelle già analizzate non mostrano problemi
di normalizzazione.
Prima forma normale
Una tabella è normalizzata alla prima forma normale quando presenta in ogni campo il valore
significativo più piccolo e la tabella stessa non contiene ripetizione di gruppi di campi.
La tabella mostrata nella figura seguente non è normalizzata.
Il campo Nominativo contiene il nome e il cognome del dipendente e pertanto il valore del campo non
è ridotto al valore significativo più piccolo.
Per rendere la tabella in prima forma normale occorre suddividere il campo Nominativo in due campi,
il primo per il nome e il secondo per il cognome.
12
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
Un altro cambiamento da apportare è quello di eliminare i gruppi ripetitivi di dati. Nella tabella
mostrata i campi Progetto e TempoP% sono ripetuti più volte. La ripetizione dei dati può rendere
difficile oppure impossibile l'analisi degli stessi.
La tabella si normalizza definendo un solo campo Progetto e un solo campo TempoProgetto%. Prestare
attenzione al fatto che questo cambiamento porta a ridefinire la chiave primaria che non può più essere
demandata al solo campo Cod Dip ma deve comprendere anche il campo Progetto.
Seconda forma normale
Vediamo ora come ridurre la tabella alla seconda forma normale. Come già detto, le forme normali
sono progressive: una tabella deve aderire alla forma precedente prima di passare alla successiva.
La seconda forma normale si applica alle tabelle con chiave primaria a campi multipli: ogni campo
non definito come chiave deve essere funzionalmente dipendente dall'intera chiave primaria. Per
ridurre una tabella alla seconda forma normale bisogna mettere in un'altra tabella tutti i campi che non
sono direttamente collegati a tutti i campi della chiave primaria (CodDip + Progetto).
Osserviamo alcuni campi della tabella per determinare se si riferiscono o no ad entrambi i campi della
chiave primaria. Il campo TempoProgetto% si riferisce ad entrambi i campi CodDip e Progetto,
Copyright ã 2009-2010 di Talento s.r.l.
13
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
mentre i campi Cognome, Nome, Ufficio e Descrizione si riferiscono solo al campo CodDip: dovendo
osservare le specifiche della seconda forma normale tali campi devono essere rimossi e posti in un'altra
tabella. La figura seguente mostra la tabella ridotta alla seconda forma normale.
Ovviamente avremo una successiva tabella che contiene i quattro campi eliminati con l'aggiunta del
campo CodDip, necessario per poter recuperare i dati.
Terza forma normale
Affinché una tabella sia nello stato di terza forma normale è necessario che ogni campo non chiave sia
direttamente correlato con il campo chiave primaria. Se un campo non è una descrizione diretta del
campo chiave primaria normalmente conterrà dati ripetitivi. Nell'esempio mostrato in figura si nota
questa ripetitività nei campi Ufficio e Descrizione: essi infatti non sono direttamente correlati con il
campo chiave primaria CodDip.
Per far sì che la tabella sia ridotta alla terza forma normale i campi Ufficio e Descrizione devono essere
rimossi e posti in un'altra tabella. La tabella ridotta alla terza forma normale si presenta come in figura.
4
Cod Dip
EN1-10
Cognome
Pastori
Nome
Claudia
Ufficio
H1134
EN1-25
EN1-26
EN2-34
EN2-37
EN4-01
Berta
Fogliani
Savino
Valli
Musa
Anna Rosa
Maria
Antonio
Sergio
Armando
H1134
H1134
E0101
P2026
A1001
4
Ufficio
H1134
Descrizione
Prog. Hardware
E0101
P2026
A1001
EDP
Marketing
Serv. generali
-
-
14
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
FASE 8 - RIVEDERE E FINALIZZARE IL PROGETTO
A questo punto della progettazione il database è strutturalmente pronto nella parte che riguarda i dati
ma naturalmente manca ancora tutto nella progettazione dell’interfaccia utente (query, maschere e
report). Per quanto attiene ai dati è importante verificare che essi siano coerenti con le aspettative.
Ogni campo di tabella deve avere il suo proprio tipo di dati, ad esempio il campo PrezzoU della
tabella prodotti deve poter gestire due decimali e deve essere formattato con il simbolo valutario. Allo
stesso modo il campo DataOrdine deve essere di tipo Data/Ora per consentire ad esempio l’ordinamento su base temporale.
In sostanza, a differenza di Excel dove non è preventivamente necessario definire la natura del dato, nei
database ogni singolo campo deve essere predisposto a ricevere un particolare tipo di dato (testo, numerico, data/ora, si/no, ecc) e questo dato deve sottostare a certi requisiti chiamati proprietà (lunghezza
massima del testo, tipo di numero, numero dei decimali, formattazione, valore predefinito, ecc).
Maggiori dettagli sul tipo di dati e sulle loro proprietà saranno presentati nella lezione sulle tabelle.
Analogamente, maggiori dettagli sulle relazioni saranno presentati nella lezione specifica.
FIGURE PROFESSIONALI
Tralasciando i piccoli database domestici o di piccole realtà aziendali, il mondo dei grandi database
coinvolge le seguenti figure professionali:
· Specialista di database o analista è la persona che utilizza tecniche di data modeling per
analizzare i dati all’interno di un’area applicativa. I suoi compiti comprendono:
ü Intervistare i dipendenti per valutare le esigenze organizzative di gruppo.
ü A seconda delle dimensioni del progetto, aiuta i progettisti nello sviluppo di database o
progetta il database.
ü Risolve e ripara eventuali problemi logici.
ü Individua i punti deboli dell’applicazione e aiuta a sviluppare i necessari miglioramenti.
·
Amministratore del database (DBA) è la persona responsabile degli aspetti ambientali di
una banca di dati. In generale, questi comprendono:
ü Recuperabilità - Crea le copie di backup per ripristinare il DB in caso di crash.
ü Integrità - Verifica o aiuta a verificare l'integrità dei dati
ü Sicurezza - Definisce e attua i controlli di accesso ai dati stabilendo quali dati ciascun
utente potrà visualizzare e/o modificare.
ü Disponibilità - Garantisce la massima disponibilità del sistema (uptime)
ü Prestazioni - Garantisce le massime prestazioni possibili
ü Supporto allo sviluppo e al test- Aiuta i programmatori e gli sviluppatori a creare una
banca dati efficiente.
·
Sviluppatore di database
ü Codifica e testa gli oggetti logici di database
·
Utilizzatore
ü Carica i dati
ü Gestisce la manutenzione dei dati
ü Esegue le ricerche necessarie
ü Utilizza i report
Queste distinzioni possono avere numerose sfaccettature in funzione delle dimensioni del database
(10 MB, 1 GB, 1 TB, ecc), delle sue caratteristiche (client server, distribuito, ecc.), del tipo di RDBMS
che si deve utilizzare (SQL server, Oracle, ecc.) e della realtà aziendale in cui si configura. Inoltre,
l’avvento dei RDBMS ha trasferito sul DBA alcune competenze dell’analista creando di fatto una
nuova figura professionale.
L’avvento dell’informatica individuale e la disponibilità di programmi come Microsoft Access ha
portato sulle spalle dell’utente alcune delle competenze dei vari profili ma limitati a realtà molto
Copyright ã 2009-2010 di Talento s.r.l.
15
Access 2007
VERSIONE PERSONALE DI STUDENTE EBOOK01
piccole e circoscritte. I grandi database sono e saranno sempre di competenza degli specialisti.
Inoltre, in molte realtà, sebbene un utente possa sviluppare un database ad uso e consumo di una
piccola realtà, di norma non gli sarà consentito di definirne le specifiche di accesso degli utenti
(compito del DBA o dell’amministratore di sistema).
16
Copyright ã 2009-2010 di Talento s.r.l.
POWERED BY AULA01
Lezione 1 - Concetti di base
ESERCITAZIONE
Consolidare le conoscenze acquisite sui concetti di base dei database relazionali e sulla loro
progettazione.
1
Quale definizione, tra le seguenti, meglio si adatta al termine “database”?
2
È un qualunque insieme di informazioni salvate su disco.
È una collezione organizzata di informazioni utilizzate per una pluralità di scopi.
È un archivio elettronico in cui sono raccolte e organizzate delle informazioni
consultabili o modificabili in base alle proprie esigenze.
I termini “Dato” e “Informazione” sono sinonimi.
3
Vero
Falso
I database che organizzano i dati in tabelle sono detti …
4
Reticolari
Relazionali
Tabellari
Un Campo è ...
5
una riga di una tabella.
una colonna di una tabella.
un valore contenuto nella tabella.
Una chiave primaria serve per …
6
contare i record della tabella.
identificare univocamente ciascun record della tabella.
impedire la modifica del campo su cui è applicata.
Un DBMS è …
7
un database relazionale.
un’applicazione per la gestione della sicurezza dei dati.
un software che permette agli utenti di creare e gestire una base di dati.
La prima fase della progettazione di un database è:
8
Progettazione delle tabelle.
Definizione dello scopo del database.
Catalogare i dati esistenti.
Memorizzare il risultato di un calcolo in una tabella è …
9
possibile ma sconsigliato.
impossibile.
Una chiave primaria non può essere composta da più campi.
10
Vero
Falso
Per stabilire una relazione uno-a-molti tra due tabelle è necessario che:
la chiave primaria della tabella primaria sia messa in relazione con la chiave
primaria della tabella correlata.
la chiave primaria della tabella primaria sia messa in relazione con la chiave esterna
della tabella correlata.
Copyright ã 2009-2010 di Talento s.r.l.
17