Basi di dati e
Microsoft Access
di Federico Giuntella
([email protected])
Che cos’è un database
? Database Relazionali
? Access ‘
97
? Esempio: la Biblioteca
? I dati e le relazioni
? Integrità Referenziale
? Le Maschere
? Le Query
? I Report
1
Cos’è un Database?
Archivi:
?Elenchi Telefonici
?Iscrizioni ad albi
?Archivi storici
?Magazzini
Gli elenchi telefonici rappresentano un archivio di tipo
cartaceo su cui poter fare ricerche ‘
dicotomiche’sul
nominativo.
Cos’è un Database?
?Un database è invece molto più flessibile
perché può effettuare ricerche anche sul
numero di telefono o sulla via…
?Inoltre le ricerche sono effettuate
attraverso sistemi sofisticati di
indicizzazione (e quindi più rapidi).
2
Database relazionali
? Un moderno sistema di DBMS (Database
management system) utilizza modelli relazionali.
? In un database relazionale le informazioni
vengono suddivise per tabelle, composte da
righe (record) e colonne (campi).
Database relazionali: esempio
? Nell’
archivio di una biblioteca si potrebbe
volere specificare la tabella degli scrittori
?quindi ciascun riga (record) conterrebbe i
dati di un singolo scrittore
? il periodo, l’
autore e la nazionalità
sarebbero le colonne (campi)
3
Database relazionali
?Un Database relazionale è composto da
più tabelle
?esempio: la tabella degli scrittori, delle nazioni
dei periodi storici e delle opere
? I record di tabelle diverse possono
essere messi in relazione tra loro
?esempio: l’
autore “Manzoni”è in relazione
con il libro “I Promessi Sposi”.
Database relazionali
Le principali funzioni sono:
?Definizione dati
?Quali dati saranno contenuti nel database
?Manipolazione dati
?Quali dati visualizzare, ordinamenti, ricerche
?Controllo dati
?Sicurezza e filtro di accesso agli utenti
4
Access: avvio
? Per avviare Access
usare il menu ‘
Avvio’
Access: apertura
? All’apertura, Access
propone una scelta
tra le azioni più
frequenti
5
Access: caratteristiche
Access: esempio
?autori
?Devo catalogare gli scrittori per periodo
?Devo permettere
?ricerche per autore
?ricerche per periodo
?ricerche per titolo
6
Biblioteca:
progetto del Database
?Progettare un database
?Tabelle
?Campi
?Viste
?Relazioni
Biblioteca:
creazione di una tabella
?Creazione della
Tabella autori
7
Biblioteca:
creazione di una tabella
? Struttura della tabella
autori: id_autore; autore; id_periodo; biografia;
Biblioteca:
maschera struttura
? Creazione
tabella “Libro”
? La maschera di
definizione
struttura
permette di
definire i campi
del database e
le loro propietà
8
Tipi di dato
Biblioteca:
prime problematiche
?Primo problema:
?gli aggiornamenti dei dati delle case editrici e
degli autori dovrebbero essere ripetuti per
tutti i record interessati; il progetto attuale
non è pratico.
?Secondo problema:
?vengono riscritte più volte nella tabella le
stesse stringhe di testo; la memoria
dell’
computer è usata in modo non efficente
9
Biblioteca:
strutturazione del database
? Soluzione comune per i problemi praticità e efficienza
? Aggiunta di una tabella “Casa Editrice”
? Nome Casa
? Città
?…
? Aggiunta di una tabella “Autore”...
? Impostazione di una chiave numerica di indirizzamento a tutte le
tabelle
? Modifica della tabella Libri
? trasformazione del formato del campo “Casa Editrice”da testo a
numero
Biblioteca:
relazioni tra tabelle
10
Biblioteca:
definizione tabella editori
? Si costruisce la tabella
“Casa Editrice”:
? Si risolve il problema
della dispersività dei
dati: aggiornamenti e
spazio in memoria
vengono ottimizzati
? Occorre trovare un
modo per mettere le
Case Editrici in
relazione con i libri
Biblioteca:
definizione tabella autori
? Si costruisce la tabella
“Autore”:
? Si risolve il problema
della dispersività dei
dati: aggiornamenti e
spazio in memoria
vengono ottimizzati
? Occorre trovare un
modo per mettere gli
Autori in relazione con
i libri
11
Glossario
? Campo
? dato fondamentale: Elemento di un record
? Record
? Informazione costituita da elementi fondamentali (campi)
? Tabella
? Elemento costitutivo di un database
? Vista
? Interrogazione articolata su tabelle
? Database
? Insieme di dati di tipo diverso che costituiscono la base
informativa del contesto lavorativo.
Inserimento da Foglio Dati
? Si può accedere al
foglio dati di una
tabella:
? dalla schermata
principale,
selezionando la
tabella e premendo
il pulsante “apri”
? dal foglio struttura,
selezionando l’
icona
nella pulsantiera
12
Il Foglio Dati
? Il foglio dati mostra i dati archiviati nella tabella
? Record e Campi sono immediatamente comprensibili
? è possibile l’
immissione diretta dei dati
? sono possibili anche alcune manipolazioni della
struttura e del layout
Biblioteca:
relazioni tra tabelle
? Torniamo
all’
esempio della
biblioteca
? apriamo la
tabella Libro
? apriamo la
tabella Autore
? disponiamo le
tabelle ed
aggiustiamone il
layout
? I riferimenti nel campo
autore della tabella
“Libro”al campo ID
della tabella “autore”
definiscono i
collegamenti
13
Biblioteca:
relazioni tra tabelle
? Le tabelle
“Casa
Editrice”e
“Argomento”
aggiornate e
coerenti ai
riferimenti
della tabella
libro
Access: I Dati
?I dati di un database si possono dividere
in due categorie:
?Dati indipendenti
?Le case editrici, anche se non ho libri appartenenti
a quella c.e.
?Dati dipendenti
?i libri
14
Le relazioni
?Servono a collegare logicamente due
tabelle
?Esistono vari tipi di relazioni
?uno a uno
?uno a molti
?molti a molti
Relazioni uno a uno
? Si applicano per ‘estendere’delle informazioni
contenute in una tabella principale
Libro 1
info 1
Libro 2
info 2
Libro 3
Libro 4
info 3
15
Relazioni uno a molti
? Collega tabelle principali a tabella accessorie
Libro 1
Libro 2
Libro 3
proprietà 1
Libro 4
Libro 5
proprietà 2
Libro 6
Libro 7
Libro 8
proprietà 3
Relazioni uno a molti: esempio
? Si realizza creando un campo di riferimento ai record di una tabella
accessoria all’
interno della tabella principale
? Ad un record della tabella Casa Editrice possono corrispondere più
record della tabella Libro ma non viceversa
16
Relazioni molti a molti
? Un record può avere più di una proprietà e una
proprietà può essere attribuita a più record
? Utile per effettuare viste complesse sulle tabelle
? Occorre definire una tabella accessoria: la tabella delle
associazioni
Libro 3
proprietà 1
Libro 4
Libro 5
proprietà 2
Libro 6
Libro 7
Libro 8
proprietà 3
Biblioteca:
la tabella associazione
? Usiamo la tabella
associazione per
mettere in
relazione i record
della tabella
“Autore”con quelli
della tabella
argomento
17
Associazioni:
una precisazione
? L’
esempio precedente è corretto solo in parte: nella tabella libro è
infatti già presente il collegamento autore - argomento
? si può quindi risalire, in modo più efficiente, agli argomenti associati
agli autori per mezzo della tabella libro
Associazioni:
ancora un esempio
? E’comunque valido il metodo e potrà essere
applicato a tutti i casi in cui occorre specificare
relazioni molti a molti
Chiara
Claudio
Paola
Pedro
Italiano
Inglese
Spagnolo
Francese
18
Associazioni:
ancora un esempio
? La tabella di associazione stabilisce un collegamento fra la Persona
Chiara e le Lingue Italiano, ed Inglese.
1
2
3
4
Chiara
Claudio
Paola
Pedro
1
1
2
2
2
3
3
4
4
1
2
1
2
4
3
1
2
3
1
2
3
4
Italiano
Inglese
Spagnolo
Francese
Il Database Completo...
Selezionando il
database e quindi
il pulsante delle
relazioni si apre la
finestra che
permette la gestione dei vincoli tra le tabelle
e da una visione panoramica del progetto
Collegamenti
19
Integrità referenziale
Fa si che la relazione non serva solo
nell’
estrazione dei dati ma anche al loro
aggiornamento
? Non si può creare un nuovo record nella tabella
principale che contenga valori non presenti nelle
tabelle accessorie
? Non si possono cancellare record da tabelle
accessorie che siano referenziati da tabelle
principali
Glossario 2.1
?Chiave primaria
?Campo di una tabella che identifica
univocamente il record
?Chiave esterna
?Uno o più campi di una tabella messi in
relazione con il campo chiave primaria di
un’
altra tabella
?Integrità referenziale
?Regole utilizzate per conservare le relazioni
definite tra tabelle.
20
Glossario 2.2
?Relazioni
?1:1
?Associazione tra due tabelle dove ciascun record della prima
tabella corrisponde ad un record della seconda
?1:n
?Associazione tra due tabelle dove ciascun record della prima
corrisponde ad un gruppo di record della seconda
?m:n
?Associazione tra due tabelle dove ciascun record della prima
corrisponde ad un gruppo di record della seconda e
viceversa
Glossario 2.3
?Tabella Principale
?Tabella contenente le informazioni del
database
?Tabella Accessoria
?Tabella contenente le informazioni relazionate
alla tabelle principale
21
Utilizzo operativo del database
?Inserimento dati
?Uso di maschere, creazione
?Operazione sui dati
?Le query
?Stampare i dati
?I report
Le maschere
?Permettono di:
?Inserire,
?Cancellare,
?Modificare,
?Stampare dati
22
Autocomposizione...
?Per utilizzare una configurazione standard
della maschera e includere tutti i campi.
?Veloce e semplice.
?Strutture predefinite
Manuale
?Più prolissa la produzione.
?Maggiore conoscenza del database.
?Si possono ottenere risultati personalizzati
23
Biblioteca: costruzione di una
maschera di inserimento
? Creiamo una maschera:
? selezionare l’
etichetta
“Maschere”per far
comparire la finestra
delle maschere;
? premere il pulsante
nuovo per aggiungere
una maschera.
Biblioteca:
autocomposizione maschera
? Selezionare l’
opzione
“Autocomposizione
Maschera”
? Scegliere la tabella
“Libro”come origine
dati
? premere il pulsante
OK
24
Biblioteca:
definizione campi maschera
? Selezionare la
tabella Libro
? premere la doppia
freccia per inserire
tutti i campi
? Selezionare le
tabelle Autore,
Casa Editrice e
Argomento
? Selezionare i
record di interesse
e premere la
freccia per inserirli
? Ricordare di
inserire i campi
chiave (ID)
? Premere il pulsante
Avanti
Maschere: autocomposizione
? Scegliere la
visualizzazione “In base
a libro”e premere
Avanti
? Scegliere il layout “A
Colonne”e premere
Avanti
25
Maschere: autocomposizione
? Scegliere uno stile
gradito e premere
Avanti
? Selezionare “Visualizza
la Guida”e premere
Fine
Maschere: help
? La schermata di help evidenzia le funzioni principali
26
Maschere:
risultato finale
? Il risultato finale presenta i campi scelti in modo disordinato: selezionando
il pulsante modifica struttura sono possibili gli aggiustamenti
Maschere:
campi riordinati
? Una volta riordinati i campi è possibile visualizzare record ed
immetterne di nuovi per mezzo della maschera di interfaccia
27
Maschere: annotazioni
?Il tasto <tab> scorre i vari campi (è
possibile modificare l’
ordine di scorrimento
dalla finestra struttura)
?si possono modificare record ed inserirne
di nuovi
?il sistema cerca di preservare l’
integrità
dei dati
Glossario
? Maschera
? Oggetto di MS Access che permette di visualizzare, modificare,
cancellare dati in campi di tabelle e query
? Tipi di maschera
? A Colonne
? Tipo di schema di una maschera che dispone i campi uno sotto
l’
altro
? Foglio Dati
? Visualizza i dati come una tabella access
? Tabulare
? I Record sono visualizzati su righe successive
28
Le Query
?La Query è lo strumento tradizionale di
interrogazione per un database relazionale
?Il linguaggio in cui vengono costruite le
Query è principalmente l’
SQL (Structured
Query Language)
?Access utilizza un proprio “dialetto”SQL e
fornisce all’
utente degli strumenti di
interfaccia
Query: creazione
? Anche con le query abbiamo a disposizione una finestra, selezionata la
quale, accediamo al pulsante Nuovo e quindi al dialogo di creazione
? Scegliamo
l’
opzione
“Visualizzazione
Struttura”e
premiamo OK
29
Query: aggiungere le tabelle
? Compare
l’
interfaccia
per la
creazione
della query
? Selezioniamo
le tabelle
Argomento,
Libro, e
Autore e le
Aggiungiamo
alla query con
il pulsante
? premiamo
infine “Chiudi”
Query: uno sguardo ai dati
?Vogliamo utilizzare una query per avere
un quadro riassuntivo degli autori e degli
argomenti che hanno affrontato nei loro
libri
?Faremo quindi una query di selezione
?Altre query importanti sono le query di
aggiornamento e di inserimento
?La query è un livello più in basso rispetto
alla maschera
30
Query: struttura
? Ritroviamo i collegamenti “join”impostati precedentemente nella finestra
delle “Relazioni”: la query usa questi condizionamenti per strutturare la
propria interrogazione
? Nelle colonne in
basso abbiamo
trascinato i campi
che vogliamo
includere nella
ricerca
Query: opzioni di potenziamento
? È possibile aggiungere alla
query criteri di filtraggio dei
dati
? è possibile aggiungere criteri
di ordinamento dei dati
31
Query: esempi criteri di testo
? Esempi di espressioni criterio che utilizzano come criteri valori di testo
? CittàDestinatario
"Londra" Visualizza ordini spediti a Londra.
? CittàDestinatario
"Londra" Or "Hedge End"
Utilizza l'operatore Or per
visualizzare ordini spediti a Londra o a Hedge End.
? DataSpedizione
Between #5-Gen-95# And #10-Gen-95#
Utilizza
l'operatore Between...And per visualizzare ordini spediti non prima del 5-Gen-95 e non più
tardi del 10-Gen-95.
? DataSpedizione
=#2/2/95#
Visualizza ordini spediti il 2-Feb-95.
? PaeseDestinatario
In("Canada", "Regno Unito") Utilizza l'operatore In per
visualizzare ordini spediti in Canada o nel Regno Unito.
? PaeseDestinatario
Not "USA"
Utilizza l'operatore Not per visualizzare
ordini spediti a nazioni diverse dagli USA.
? Destinatario Like "S" Ordini spediti a clienti i cui nomi iniziano con la lettera S.
? NomeSocietà >="N"
Visualizza ordini spediti a società i cui nomi iniziano con le lettere
dalla N alla Z.
? IDOrdine
Right([IDOrdine], 2)="99"
Utilizza la funzione Right per visualizzare
ordini con valori IDOrdine che terminano con 99.
? NomeSocietà Len([NomeSocietà])>Val(30) Utilizza le funzioni Len e Val per
visualizzare ordini per società il cui nome è costituito da più di 30 caratteri.
Query: combinazioni evolute
? Ecco un esempio di combinazione di operatori logici
32