Basi di Dati e Microsoft Access Database Database

Basi di Dati e Microsoft Access
Alessandro Lolli
- [email protected] -
Database: Esempio
Tutti utilizzano un database nella vita comune.
Quando si consulta una semplice agenda
telefonica, un vocabolario o un catalogo di
viaggi, in realtà si sta usando un archivio
(base) di dati, detto anche database.
Database:
Database Introduzione
Un database è una collezione di informazioni
organizzata in gruppi, che consentono un
semplice recupero delle stesse.
Informazioni facilmente reperibili
Uno dei requisiti fondamentali che un db deve
rispettare è la reperibilità delle informazioni che
contiene, deve cioè essere possibile trovare in
modo semplice e rapido i dati che di volta in
volta interessano all’utente.
Consultando una rubrica, deve essere possibile
ricercare un contatto, oppure ordinare i contatti in
ordine alfabetico
1
Omogeneità delle informazioni
Un altro requisito essenziale per un db è
l’omogeneità delle informazioni in esso
contenute, ciò significa che i dati devono avere
tutti la stessa natura.
A chi crea un db viene quindi chiesto di
specificare con precisione quali tipi di dati vanno
inclusi e quali esclusi.
In un vocabolario di italiano, non andranno inclusi
termini stranieri
Sommario
9
9
Inizialmente analizzeremo i concetti e le regole
che si devono seguire per progettare un
database
Dopo aver familiarizzato con il concetti di base,
li utilizzeremo per implementare un database
in Microsoft Access
DBMS: DataBase Management System
Un Data Base Management System (DBMS) è un
software per la gestione di basi di dati.
Esso si interfaccia e facilita la registrazione ed il
reperimento dei dati.
¾Access
¾Oracle
¾Sybase
¾DB2
¾Informix
¾SQL
Server
sono esempi di DBMS.
DBMS.
Organizzazione dati
Un DBMS (Ms Access) memorizza le
informazioni del database all’interno di tabelle di
dati contenute in un file.
Ogni tabella di dati ha una struttura che consente
la raccolta, l’organizzazione, la memorizzazione
e la ricerca.
2
Access:
Access tabelle
Tabella: esempio
Una tabella è composta da campi e record.
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
I campi sono categorie di informazioni come, ad
esempio, Nome, Cognome e Data di Nascita.
L’insieme dei campi che contiene i dati di una
singola voce è chiamato record (istanza).
Tabella: esempio
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Data di Nascita
5/12/1978
3/11/1976
12/11/1979
1/2/1978
Tabella
Campi
Tabelle, campi e record
Schema: definisce le
caratteristiche dei dati;
è invariabile nel tempo
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Record
Nome
Mario
Paolo
Luisa
Maria
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
Istanza: specifica i
valori effettivi di una
particolare base di dati
che si conforma a una
dato schema
I campi possono avere caratteristiche diverse tra
loro: matricola o anno accademico potrebbero
essere numerici, mentre Nome o Cognome
testuali.
Un db informatico può essere (e normalmente lo
è) costituito da più tabelle.
3
Schedario: esempio db
Si supponga di avere voler utilizzare uno
schedario per catalogare una biblioteca.
Dedichiamo a ciascun libro una scheda (record)
su cui scriveremo le seguenti voci (campi): titolo,
autore, casa editrice, anno di pubblicazione,
genere (romanzo, saggio, teatro, …) e giudizio
sull’opera.
Schedario: regole
Schedario: tabella
Titolo
Autore
Casa
editrice
Anno
pubbl.
…
…
…
…
…
…
…
…
…
…
…
…
Genere Giudizio
Schedario: ricerca informazioni
Si vogliono utilizzare le seguenti regole:
¾
¾
Schede dei libri in ordine alfabetico per autore
Ordine cronologico per i libri di uno stesso
autore
In questo modo se un utente cerca un libro di
Banana Yoshimoto o Alessandro Baricco li
troverà, rispettivamente, tutti alla lettera Y e B.
4
Schedario: limiti ricerca
informazioni
Se, invece, la ricerca verte sul controllo di tutti i
libri pubblicati da un certo editore non si potrà
fare a meno di controllare tutte le schede una ad
una.
DB informatici
I db gestiti dal computer consentono di superare
questi problemi. Infatti consentono di:
¾
¾
Oppure se si volessero riordinare per genere
letterario, l’operazione costringerebbe a
ricontrollare e riorganizzare l’intero schedario.
¾
¾
Ordinare una gran quantità di dati
Riordinare rapidamente in molti modi diversi
Estrarre molteplici informazioni
contemporaneamente
Aggiungere nuovi dati in maniera semplice e
veloce.
DB: progettazione
DB film: informazioni da archiviare
L’unica fatica sta nel progettare il db in modo da
soddisfare tutte le nostre esigenze.
Il primo passo consiste nel decidere quali
informazioni archiviare.
Supponiamo:
I prossimi lucidi sono dedicati alla progettazione
di un db in grado di conservare informazioni
riguardanti film di una collezione privata.
Film
Registi
Attori
Il nostro archivio conterrà, perciò 3 tipi di schede
(tabelle).
5
DB film: schemi tabelle (modelli)
Attraverso la fase successiva si definiscono in
dettaglio le informazioni da archiviare in ciascuna
tabella.
DB film: dati
Una volta definiti gli schemi delle tabelle, si
possono inserire i dati che si è deciso di
archiviare all’interno delle stesse.
Db film: le tabelle
Film
Registi
Attori
Titolo
Genere
Regista
Attore
Anno
Durata
Oscar vinti
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Nota biografica
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
DB film: ordinamenti
Decidendo di inserire, ad esempio, i film in ordine
alfabetico si può ,in un secondo tempo, riordinarli
facilmente per autore o per anno.
6
Vantaggi DB informatico
Modello relazionale
Un DBMS agevola operazioni difficili:
9
9
Ordinamento dei dati in una tabella in base
ad uno qualsiasi dei campi
Semplifica enormemente le ricerche (query)
permettendo di estrarre rapidamente le
informazioni senza duplicare i dati
Relazioni
Registi
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Nota biografica
MicroSoft Access è un DBMS che si basa sul
modello relazionale, permette cioè di mettere in
relazione dati che si trovano su tabelle diverse.
Relazioni uno-a-molti
Film
Titolo
Genere
Regista
Attore
Anno
Durata
Oscar vinti
Attori
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
A ciascun regista possono essere associati più
film, mentre a ciascun film è associato un solo
regista.
A ciascun attore possono essere associati più
film, mentre a ciascun film è associato un solo
attore (per scelta implementativa quello
principale).
7
Relazioni uno-a-uno
Relazioni molti-a-molti (esempio)
Esistono anche relazioni di cardinalità uno-a-uno:
™
Tra persone e codice fiscale
™
Tra automobili e targhe
Esercizio
Utilizzare i vocaboli campi, record, relazione e
tabella per completare.
a) La scelta dei campi in cui inserire i dati
definisce lo schema di una tabella.
b) Un record completo contiene dati
corrispondenti a tutti i campi di una tabella.
c) In un database si può creare una relazione tra
una tabella e un’altra.
Se fossero stati memorizzati per ogni film più
attori, allora la relazione tra film e attori avrebbe
avuto cardinalità molti-a-molti.
Progettazione DB: accorgimenti
Ogni tabella un solo argomento
In generale il DB va progettato in modo che le
singole tabelle contengano dati relativi ad un solo
argomento ⇒ Film, Attore, Regista.
Le tabelle devono rappresentare un concetto.
8
Progettazione DB: accorgimenti
Progettazione DB: accorgimenti
Occorre, inoltre, evitare il più possibile la
duplicazione, nelle diverse tabelle, delle
informazioni relative a ciascun argomento.
L’unico caso in cui essa è utile è per creare
relazioni.
Limitare le duplicazioni
Duplicazioni utili
Risulterebbe inutile riportare, ad esempio, tutte le
informazioni anagrafiche del regista nella tabella
film.
Nella tabella film è riportato il cognome del
regista: questa duplicazione è utile perché
permette di risalire, dato un film, alle informazioni
biografiche del regista del film stesso.
Progettazione DB: accorgimenti
Progettazione DB: accorgimenti
Le relazioni vanno definite su campi definiti
chiave che le diverse tabelle devono avere in
comune.
Poniamo di dover eseguire, ad esempio, la
ricerca sui dati anagrafici del regista del film
L’ultimo imperatore che risulta “Bertolucci” dalla
tabella film.
Relazioni ben definite e non ambigue
Relazioni ben definite e non ambigue (2)
9
Progettazione DB: accorgimenti
Relazioni ben definite e non ambigue (3)
Per saperne di più, si cerca all’interno della
tabella Registi, nel campo cognome “Bertolucci”.
I risultati potrebbero essere più di uno
(Giuseppe Bertolucci e Bernardo Bertolucci sono
fratelli ed entrambi registi) avendo scelto come
campo su cui porre la relazione cognome.
Progettazione DB: accorgimenti
Scelta chiave primaria
Progettazione DB: accorgimenti
Chiave primaria
Una tabella è ben strutturata quando ogni suo
record può essere identificato in maniera
univoca, ossia quando esiste almeno un campo
che non assume mai valori uguali nella
tabella.
Progettazione DB: accorgimenti
Nome chiave primaria
Nella tabella registi non può essere quindi chiave il
campo cognome, ma neppure titolo nella tabella film.
Per consuetudine al campo chiave viene dato il
nome della tabella preceduto dal prefisso “Id-”
La soluzione più semplice consiste nell’aggiungere
un campo contatore, contenente numeri progressivi
(1,2,3,..) che etichettano ciascun record.
Esempio: “Id-Regista”
Questo campo speciale viene chiamato appunto
chiave primaria.
10
Progettazione DB: correzioni
Registi
Id-Regista
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Nota biografica
Film
Titolo
Genere
Regista
Attore
Anno
Durata
Oscar vinti
Oscar
Id-Regista
Attori
Id-Attore
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Esercizio
Nel DB di una biblioteca, qual è l’unico tra questi
campi che potrebbe essere utilizzato come
chiave primaria?
a)
b)
c)
d)
Titolo del libro
Cognome dell’autore
Editore
Codice ISBN
Id-Attore
11