Elementi di gestione di dati
con MS Access
Breve introduzione per il corso ECDL
mod.5
1
Concetti introduttivi
• Un database o base di dati e’ una collezione
di informazioni che esistono per un lungo
periodo di tempo, gestita da un sistema di basi
di dati (DBMS – Data Base Management
System)
2
Concetti introduttivi
• Funzionalita’ tipiche di un DBMS:
– fornire all’utente strumenti per creare basi di dati e
specificare una struttura logica per i dati (schema)
– date agli utenti la possibilita’ di interrogare la base di
dati
– permettere la memorizzazione di grandi quantita’ di
dati eterogenei per un lungo periodo di tempo,
garantendo accessi efficienti e preservando i dati da
incidenti e usi non autorizzati
– controllare gli accessi temporanei da parte di piu’
utenti
3
Concetti introduttivi
• Funzionalita’ tipiche di un DBMS:
– fornire all’utente strumenti per creare basi di dati e
specificare una struttura logica per i dati (schema)
– date agli utenti la possibilita’ di interrogare la base di dati
• Noi analizzeremo alcuni aspetti dei primi due punti, nel
caso di Access 2003
4
Cosa è Access
• Access e’ un DBMS che permette di progettare
e utilizzare DB relazionali
• Un DB Access e’ basato sui concetti di tabella
e relazioni tra tabelle
5
Gli oggetti di Access
•Tabelle: sono strutture
rettangolari fondamentali che
contengono i dati sottoforma
di record
•Query: sono oggetti che
consentono normalmente di
estrarre delle informazioni
dalle tabelle o da altre query
rispondenti a criteri ben
definiti (query di selezione).
All’occorrenza possono
essere usate per modificare
le informazioni all’interno
del database (query di
comando)
6
Gli oggetti di Access
•Maschere: sono interfacce
grafiche che consentono
all’utente di inserire e/o
visualizzare in modo
semplice le informazioni
contenute nel DB.
•Report: sono oggetti
normalmente utilizzati per
creare una versione
stampabile delle
informazioni provenienti
normalmente da una query.
Possono contenere dati
riassuntivi ottenuti da
formule matematiche.
7
Tabelle
campi
record
Ogni riga identifica un record. I record devono
essere unici all’interno della tabella
8
Tabelle:unicita’ dei record
• i casi di righe identiche devono essere gestiti
in qualche modo:
– aggiungendo campi specifici al soggetto della tabella
che rendano unico il record (e.g., codice fiscale per
persone, codice ISBN per libri)
– aggiungendo identificatori appositamente definiti
(ID)
9
La chiave primaria
• Ogni tabella deve avere una chiave primaria, ossia un
attributo o un insieme di attributi che identifichino
univocamente un record
• Esempio: in una tabella contenente informazioni anagrafiche
degli studenti di una scuola, promuovere il campo Cognome a
chiave primaria non è una scelta corretta poichè è piuttosto
semplice avere omonimia di cognome (due fratelli..).
L’associazione di Nome e Cognome dà maggiori garanzie
anche se è teoricamente possibile che si iscrivano due Mario
Rossi, ad esempio.
La scelta migliore è quella di promuovere a chiave primaria un
campo univoco per definizione quale il codice fiscale o il
numero della carta d’identità, oppure un campo
appositamente inserito per questo scopo che solitamente
indicheremo con ID o IDStudente (di tipo Contatore).
10
Esercizio guida
• Un esercizio ci guidera’ nel corso di questa
lezione:
– la creazione di un database per il cinema, che
raccogliera’ informazioni su film, attori, registi, etc
11
Creiamo un database Cinema: la
finestra principale di ACCESS
Selezionare crea
un nuovo file..
12
Creiamo una tabella
Selezionare Crea
una tabella in
visualizzazione
struttura
13
Inseriamo i campi
Nella colonna
Tipo dati
selezionare il
tipo adatto al
campo
• Nome completo:Testo
• Data di nascita:Data/ora
• Luogo di nascita:Testo
• Foto:Oggetto OLE
14
Scelta chiave primaria
• Promuovere il campo
Nome completo a
chiave primaria
Selezionare uno
o + campi che
costituiranno la
chiave primaria,
quindi la
chiavetta sulla
barra degli
strumenti.
15
Tipi di dato per gli attributi
• Testo: alfanumerici max 255 caratteri
• Memo: alfanumerici senza limite di lunghezza
• Numerico: utile se si vogliono fare conti su quel campo,
altrimenti e’ meglio testo (e.g., per i numeri di telefono
e’ meglio testo)
• Data/ora
• Valuta
• Contatore: assegna automaticamente, in modo
sequenziale, un numero intero diverso a ciascun record
(utile per le chiavi)
• Si/No: valori booleani(cioè del tipo VERO o FALSO)
• Oggetto OLE: immagini, video, audio
• Collegamento ipertestuale: URL o e-mail..
• Ricerca guidata: per selezionare il tipo di attributi di
altre tabelle o query
16
Proprieta’ degli attributi
• Variano al variare
del tipo di dato
• Ad esempio, nel caso
di un campo Testo
abbiamo gli attributi:
dimensione campo,
Formato,…
• Posizionandosi sul
singolo attributo
abbiamo nel
riquadro di destra
una descrizione
sintetica.
17
Inserire dati in una tabella
• quando abbiamo
finito di definire la
tabella passiamo in
visualizzazione
Foglio dati (occorre
salvare)
• L’inserimento
avviene in modo
naturale
spostandosi da un
campo all’altro. Il
record è
automaticamente
salvato quando ci si
sposta nella riga
successiva.
18
Esercizio
• creiamo una tabella
FILM con i seguenti
attributi:
– IDFilm, Titolo, Anno,
nazione, Lunghezza,
Nazione, Regista,
Incasso Italia,
Recensione, Locandina,
Critica
– La chiave primaria?
19
Esercizio
• creiamo una
tabella REGISTI
con i seguenti
attributi:
– Nome, Data di
nascita, Luogo di
nascita, Foto
– La chiave
primaria?
20
Esercizio
• creiamo una
tabella DETTAGLI
ATTORI con i
seguenti attributi:
– Nome completo,
Biografia, Sito
personale
– La chiave
primaria?
21
Arricchire il DB
•
per ora le tabelle che abbiamo creato sono
scollegate e mancano di tante informazioni utili
22
Lista dei desideri
1. aggiungere a FILM un campo GENERE che possa
assumere i seguenti valori
AZIONE,AVVENTURA,ROMANTICO,ORRORE,
SPLATTER,STORICO,FANTASCIENZA.
2. Mettere in relazione i film con i registi.
3. Mettere in relazione gli attori con i dettagli attori.
23
Le relazioni
Le relazioni tra tabelle sono uno degli aspetti più iportanti nella
progettazione di un database. Esse permettono di
suddividere i dati su più tabelle, mantenendo comunque
l’unità logica del DB.
Esistono 3 tipi di relazioni, ma solo i primi due sono realizzabili
con operazioni dirette di access
24
Le relazioni
•
•
•
1 a 1 (uno a uno): si ottiene collegando la chiave primaria
di una tabella con la chiave primaria dell’altra. Si ha questo
tipo di relazione quando un record di una tabella è in
relazione con al più un record dell’altra.
1 a N (uno a molti): si ottiene collegando la chiave primaria
di una tabella (lato 1) con un campo dello stesso tipo
dell’altra (lato molti), detto chiave esterna.Si ha questo tipo
di relazione quando ad ogni record di una tabella
corrispondono più record dell’altra, ma per ogni record di
quest’ultima corrisponde al + un record della prima.
N a N (molti a molti): si ottiene costruendo una apposita
tabella di collegamento che deve necessariamente
contenere dei campi che consentono la connessione con i
campi chiave primaria delle due tabelle in relazione
25
Aggiungere attributi?
• Non possiamo fare la stessa cosa con gli
attori, perche’ potrebbero essere piu’ d’uno
• Allo stesso modo non possiamo aggiungere un
campo generi perche’ potrebbero essere piu’
d’uno
• Inoltre non e’ una buona idea costruire tabelle
con molti campi che potrebbero diventare
ridondanti
26
Anomalie
•
I problemi di ridondanza che si verificano
quando si cerca di raggruppare troppe
informazioni in una singola tabella sono detti
anomalie:
1. ridondanza:informazioni ripetute in modo non
necessario
2. anomalie di aggiornamento
3. anomalie di cancellazione
27
Esempio di ridondanza
• esistono metodi formali per scomporre le
tabelle in modo da ottenere DB corretti... noi
non le vedremo
• regola di buon senso: cercare di mantenere
tabelle piccole.
28
Esempio di ridondanza
• un’alternativa consiste nel dividere le informazioni in
tabelle diverse e poi legare le tabelle tramite relazioni
29
Relazioni tra tabelle
• Access fornisce la posssibilita’ di creare
relazioni tra tabelle in modo da collegare i dati
provenienti da diverse tabelle.
• Due tipi di relazione che si possono creare
direttamente in Access:
– 1a1
– 1 a molti
30
Relazione 1 a 1
• a ogni record di una tabella corrisponde un solo record
dell’altra
• Esempio: voglio aggiungere in una tabella a parte eventuali
dettagli personali sugli attori e creo una tabella DETTAGLI
ATTORI
31
Integrita’ referenziale
• assicura che le relazioni fra i record di tabelle
collegate siano valide e che non si verifichino
accidentali variazioni o cancellazioni di
informazioni
32
Relazione 1 a 1
• a ogni record di una tabella corrisponde un solo record
dell’altra
• Esempio: voglio aggiungere in una tabella a parte eventuali
dettagli personali sugli attori e creo una tabella DETTAGLI
ATTORI
33
Relazione 1 a molti
• a un record della tabella (tabella primaria)
possono corrispondere piu’ record dell’altra.
• sono le relazioni piu’ comuni
• nel nostro esempio se voglio mettere in
relazione FILM a REGISTI (lo stesso regista
puo’ avere piu’ film)
34
Relazione 1 a molti
• nel nostro esempio se voglio mettere in relazione FILM a
REGISTI (lo stesso regista puo’ avere piu’ film)
35
Relazione molti a molti
• esempio: vogliamo modellare le relazioni tra
FILM e ATTORI
– ogni film ha piu’ attori e ogni attore recita in piu’ film
• in Access la modelliamo come una
concatenazione tra due relazioni 1 a molti e
l’aggiunta di una tabella di giunzione
• Nel nostro caso possiamo pensare alla tabella
RECITA_IN che mette in relazione un attore e
un film
• La chiave primaria della tabella di giunzione e’
l’unione delle chiavi primarie delle tabelle che
mette in relazione
36
Tabella di giunzione RECITA_IN
37
Relazione molti a molti
38
Le query: creazione guidata
• strumento utile per accedere alle informazioni
contenute nel database in modo efficace
• Le istruzioni che compongono la query sono
scritte in una variante del linguaggio SQL
(Structured Query Language)
• Access fornisce 3 modi per creare query:
1. creazione guidata (wizard) che permette di
selezionare attributi da una tabella
2. creazione tramite visualizzazione della struttura
3. creazione diretta con comandi SQL (non la
vedremo)
39
Il Wizard delle
query
creiamo una query che estragga i
titoli dei film e i relativi registi
40
Esercizio!
• ordiniamo in modo crescente rispetto al nome
dei registi e poi al titolo del film
• creiamo una query che selezioni tutte le
coppie attori e registi che hanno lavorato
insieme
41
I criteri nelle query
• lista degli attori che recitano in pulp fiction in
ordine crescente rispetto alla data di nascita
42
Esercizi
• lista degli attori che recitano nei film di
Tarantino dopo il 2000 (visualizzando anche il
titolo del film)
43
Le maschere
• Le maschere (o form) sono uno strumento
utile come interfaccia al database
• possono servire come comodo ausilio
all’inserimento dati o per la consultazione dei
risultati ottenuti da query
• analizzeremo solo la modalita’ di design
automatica (tramite Wizard)
44
Le maschere: esempio semplice
selezioniamo i campi
che vogliamo
inserire, stando
attenti a mettere
tutti quelli
obbligatori
45
Le maschere: esempio semplice
scegliamo l’aspetto
della form e il
nome...
46
Le maschere: esempio semplice
per inserire un nuovo record...
47
Maschere con sottomaschere
• per inserire automaticamente dati relativi a
due tabelle collegate
• esempio: creiamo una maschera per
l’inserimento di un nuovo film e di tutti gli
attori che vi recitano
48
Maschere con sottomaschere
• apriamo il Wizard delle form:
– inseriamo tutti i campi relativi alla tabella FILM
– inseriamo tutti i campi relativi alla tabella RECITA_IN
scorro gli attori
di un film
scorro i record
dei film
49