Microsoft Access
2007-2010
Progettare un database
Prof. Roberto SPEDICATO
Progettazione di un data base
La progettazione di un data base richiede
la conoscenza di nozioni elementari del
modello entità/relazione, che è alla base
dei DBMS “relazionali”.
Le entità. sono gli oggetti principali del
data base. Rappresentano un gruppo
omogeneo d’informazioni.
Es. per la gestione di una biblioteca,
possiamo individuare come entità il libro,
che è l’oggetto fondamentale.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
2
Progettazione - Entità
La biblioteca non è solo un magazzino di libri,
ma anche un “servizio” e dobbiamo aggiungere
l’entità “utente”.
il libro poi, è scritto da uno o più autori, è
pubblicato da una casa editrice e appartiene ad
un genere; quindi si aggiungono altre entità:
 autore,
 casa editrice e
 genere.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
3
Progettazione - Attributi
Frequentando una biblioteca ci accorgiamo che di entità
ce ne sono molte di più, ma possiamo limitarci ad un
modello di biblioteca semplificato.
Le entità si rappresentano con un rettangolo con
all’interno il nome dell’entità
Utente
Casa
Editrice
Libro
Autore
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
4
Progettazione - Attributi
Per descrivere l’entità libro abbiamo bisogno di un titolo,
di un autore, di un genere, di una casa editrice, di una
prezzo, ecc. Tutte queste informazioni che costituiscono
l’entità libro, si chiamano attributi.
Tra questi ci deve essere un attributo che individua
univocamente un campo = la chiave primaria.
Id_Libro
Titolo
Autore
Chiave primaria= sottolineata
Prezzo
Genere Casa
Editrice
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
5
Progettazione - Attributi
Altro modo per descrivere gli attributi, nel modello ER, è
indicandone il nome accanto ad un segmento con
all’estremo un cerchietto vuoto. Quando il cerchietto è
pieno si indica la chiave primaria.
Targa
Automobile
Chiave primaria=cerchietto pieno
Modello
Colore
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
6
Progettazione - Le relazioni
Le entità non sono oggetti a se stanti ma sono in
relazione tra loro. Ad es.:
 ogni libro appartiene ad un genere ed esistono molti
libri diversi dello stesso genere.
Le relazioni si indicano con un rombo con all’interno
il nome della relazione (=verbo)
Genere
Id_Libro
Appartiene
Titolo
Autore
…e ancora…
Prof. Roberto SPEDICATO
Prezzo
Genere Casa
Editrice
Access - Progettazione Data Base
7
Progettazione - Le relazioni
 un libro è scritto da uno o più autori ed
ogni autore può scrivere più libri;
 i libri sono prestati agli utenti; un
utente può prendere in prestito uno o
più libri e un libro può essere preso in
prestito solo da un utente per volta.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
8
Progettazione - entità/relazione
Fig. 1. Modello entità/relazione
Nell’ideare il modello di un data base, bisogna scegliere
bene quali elementi sono entità, quali attributi e quali
relazioni.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
9
Entità-Attributi-Relazione
Altro esempio di Entità-Attributi-Relazione.
Voto
Data esame
Matricola
Studente
Anno di
iscrizione
Prof. Roberto SPEDICATO
Nome
Esame
Corso
Id_corso
Access - Progettazione Data Base
Anno di
corso
10
Realizzazione del DB
Scendiamo nel dettaglio della realizzazione.
 Per rappresentare un’ entità con Access
utilizziamo una tabella.
 Ogni attributo dell’entità corrisponde ad una
colonna, (o campo)
 ogni riga della tabella (o record) rappresenta
un’ istanza dell’entità (un caso particolare)
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
11
Rappresentazione ER in Access
Passaggio dalla rappresentazione ER alla
rappresentazione in Access.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
12
Realizzazione del DB
Volendo rappresentare ad es. l’entità Utente,
possiamo impostare una tabella che abbia
come colonne gli attributi di un Utente (nome,
cognome, data di nascita, indirizzo). Ogni riga
(o record) corrisponde ad una persona
particolare.
Fig. 2. Tabella “Utente”
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
13
Tipi di dati (in visualizza struttura)
Gli attributi (o campi) rappresentano tipi diversi di dati, ad
es. campi numerici o testo, oppure campi data. Questa
natura diversa dei dati si dice “tipo”: il nome dell’autore è
di tipo “testo” (o stringa=caratteri alfanumerici), la data è
di tipo “data”, l’anno di pubblicazione può essere un tipo
“numerico intero” e così via.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
14
Coerenza dei dati
È importante che i dati siano coerenti con i tipi
corrispondenti, ad es.:
 se nel campo data di nascita dell’autore inseriamo un
numero come 01121980, commettiamo un errore di
coerenza.
Nella visualizzazione della struttura possiamo
impostare, visualizzare e modificare il tipo degli attributi;
ad es. nel campo nome inseriremo il tipo testo; all’
attributo data assegniamo il tipo data.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
15
Chiavi primarie
Se consideriamo ad es. l’elenco del telefono,
risulta plausibile trovare omonimie tra le persone,
questo significa che alla coppia di informazioni
nome, cognome corrisponde più di un record.
Risulta allora utile realizzare un meccanismo che
identifichi in modo univoco i record, anche se
hanno tutti i campi uguali tra loro.
La soluzione è quella di inserire nella tabella un
nuovo campo: la chiave primaria; è il più
importante tra tutti gli attributi e garantisce
l’individuazione univoca di un record all’interno di
una tabella.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
16
Chiavi primarie
Tipicamente si tratta di un numero intero, dato dal
campo ID (identificatore) che viene incrementato
automaticamente da Access quando si aggiunge un
record.
Il campo ID non è indispensabile se esiste già un campo
che rende univoco il record (es. il codice fiscale, oppure
si raggruppano più campi: nome+cognome+data
nascita presi tutti assieme.
Fig. 4. Tabella con chiave primaria
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
17
Chiavi primarie
L’unicità di questo campo viene garantita dal fatto che,
cancellando un record, il suo ID non è più riutilizzato. Es.,
se cancelliamo l’autore con ID 23, quella chiave viene
persa per sempre.
Attualmente ogni libro di una biblioteca è riconoscibile
univocamente attraverso la chiave primaria ISBN
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
18
Codice ISBN
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
19
Chiavi esterne
Si è detto che le tabelle possono essere messe in
relazione tra loro.
Prendiamo ad es. la relazione tra libro e autore:
Libro -> scritto da -> Autore
Supponiamo che un libro sia scritto da un autore e che
un autore abbia scritto diversi libri. La tabella Autore avrà
allora un codice ID che identifica univocamente ogni
autore. Quindi, per associare un libro ad un autore
possiamo prevedere un campo, nella tabella Libro, che
contenga il codice dell’autore. Questo campo viene detto
chiave esterna.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
20
Chiavi esterne
Ragionando allo stesso modo anche per la
relazione edito da con la casa editrice: il
campo id_casa editrice nella tabella Libro è una
chiave esterna e corrisponde ad un campo ID (chiave
primaria) della tabella case editrici.
Fig. 5. Tabella con chiavi esterne
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
21
Relazione 1 a 1
Esempio di relazione 1 a 1 tra entità uomo-donna
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
22
Relazione 1 a N
Esempio di relazione 1 a N tra entità madre-figlio
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
23
Relazione N a N
Esempio di relazione n a N tra entità studente-esame.
Occorre creare una tabella “sostiene” con 2 chiavi
corrispondenti a quelle delle altre 2 tabelle.
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
24
Esempio di schema E/R
CodAlbum
Titolo
Anno
N
ALBUM
Contiene
CodGenere
N
Tipo
M
1
N
Realizza
Appartiene
BRANO
GENERE
Durata
1
File
TitoloBrano
CodBrano
CANTANTE
CodCantante
Nome
Gruppo
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
25
Esempio di schema E/R
Applicando le regole di derivazione possiamo trasformare il diagramma
E/R nel seguente schema relazionale con 5 tabelle:
ALBUM(CodAlbum, Titolo, Anno, CodCantante)
BRANO(CodBrano, TitoloBrano, Durata, File, CodGenere)
CANTANTE(CodCantante, Nome, Gruppo)
GENERE(CodGenere, Tipo)
CONTIENE(CodAlbum, CodBrano)
Prof. Roberto SPEDICATO
Access - Progettazione Data Base
26
Scarica

Prof. Roberto SPEDICATO