database: modello entity- relationship

Insegnamento di Informatica
CdS Scienze Giuridiche
A.A. 2007/8
database: modello entityrelationship
Prof.Valle –D.ssaFolgieri
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
1
Fasi di sviluppo di un database
• Quando si sviluppa un database si passa per tre
fasi successive:
• Analizzare le esigenze degli utenti ed
individuare i dati necessari per soddisfare tali
esigenze
• Disegnare un modello dal database
• Tradurre il modello in strutture fisiche per
utilizzare al meglio i dati
• Si suole utilizzare l’architettura standard
ANSI/SPARC a tre livelli per i DBMS (Database
Management System)
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
2
1
Architettura standard (ANSI/SPARC)
a tre livelli per DBMS
• Tre livelli di descrizione del database:
• Schema esterno:descrizione del database
dal punto di vista degli utenti
• Schema logico:descrive la base di dati nel
DBMS
• Schema fisico (interno):rappresentazione
dello schema logico con strutture fisiche di
memorizzazione
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
3
Architettura standard (ANSI/SPARC)
a tre livelli per DBMS
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
4
2
Modello concettuale per DBMS
relazionali
•
•
•
•
•
•
•
•
•
Si usa il modello Entity-relationship (entità-relazione).
E’ un modello concettuale
Mette a disposizione costrutti per descrivere la realtà
Semplice e indipendente dalla gestione dei dati
all’interno diun DBMS
Si deve a P. Chen (1977)
Dall’analisi del caso si passa al diagramma E/R
Successivamente:
Traduzione del diagramma E/R in tabelle non ottimizzate
Normalizzazione delle tabelle (grazie a teoria relazionale
di Codd)
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
5
Peter Chen
• Nel 1976 propone la tecnica EntityRelationship
• Insieme alla tecnica, ne propose una
notazione grafica (che useremo nelle
prossime slide), detta diagramma E/R
(ERD)
• Oggi il diagramma E/R è il più utilizzato
per immediatezza e semplicità
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
6
3
Fasi del disegno di una base di dati
• Si procede per fasi successive, come mostrato in figura:
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
7
Elementi principali del modello E/R
• Il modello si basa su tre elementi principali:
• entità:classi di oggetti con proprietà comuni che li
identificano come soggetti a sè
• relazione:legame (logico) tra due o più entità
• attributi:proprietà elementari di un’entità o di una
relazione
• Es. se dobbiamo creare un database di libri, avremo
l’entità libro, con attributi come anno di pubblicazione,
editore, autore, ma avremo anche l’entità autore, con
anno di nascita e biografia. Queste due entità sono
legate dalla relazione “autore ha scritto libri”(ogni autore
ha scritto più libri)
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
8
4
Altri elementi del modello E/R
• Molto importanti sono i vincoli di integrità che riguardano
i dati:
• se vi è qualche variazione negli attributi, nelle entità o
nelle relazioni, queste variazioni devono rispecchiarsi in
tutte le entità coinvolte nella relazione.
• Es. se un autore cambia nome (es. assume uno
pseudonimo), non devo andare a cambiarne il nome per
ogni libro, ma lo cambierò una sola vota, nell’entità che
lo descrive e la variazione sarà riportata
automaticamente in tutti i libri che ha scritto
• Abbiamo poi altri concetti importanti:
• Cardinalità delle Relazioni (che vedremo nel seguito)
• identificatori delle entità(chiavi)
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
9
Un esempio concreto
• Per comprendere il modello E/R partiamo da un esempio
concreto:
• dobbiamo creare un database per un agente di vendita
che si serve di diversi concessionario di automobili che
vendono a lorovolta macchine di marche diverse
• Avremo le entità, sottolineate (ed i corrispondenti
attributi, riportati sotto ognuna):
Automobile Produttore
Concessionario
Nome
modello
denominazione
Indirizzo
produttore indirizzo
Città
colore
città
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
10
5
Quante entità?
• Perché abbiamo individuato le entità viste
prima?
• In modo che ciascuna rappresenti una
categoria a sé:non possiamo
“mischiare”macchine e concessionari
perché hanno attributi diversi!
• In tal modo ci garantiamo che:
– i dati siano integri
– la memoria sia occupata il meno possibile
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
11
Il concetto di chiave primaria
• Tra i vari attributi ce ne deve essere uno che identifica
l’entitàin modo univoco. Tra gli attributi che abbiamo
segnato, non ve ne sono.
• Aggiungiamo in grassetto le chiavi primarie:
Concessionario
Automobile Produttore
P.IVA
targa
P.IVA
Nome
modello
denominazione
Indirizzo
produttore indirizzo
Città
colore
città
• Se non vi fosse un attributo che identifica un’entitàin
modo univoco, si può aggiungere un
“codice”identificativo inventato (es. per i prodotti di un
magazzino si ha il codice di inventario)
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
12
6
Le relazioni tra le entità
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
13
Il concetto di relazione
• Le relazioni servono dunque ad evidenziare i
rapporti esistenti tra le entità.
• In tal modo i dati (attributi) che descrivono le
entitàpotranno essere utilizzate (inserite,
aggiornate, interrogate) in modo corretto.
• Se le relazioni sono impostate correttamente, il
database èben disegnato.
• Abbiamo visto che a livello intuitivo èpiuttosto
semplice enunciare una relazione.
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
14
7
Le relazioni tra le entità
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
15
Il concetto di cardinalità
• La cardinalità quantifica i rapporti (relazioni) tra le entità.
• Abbiamo tre casi di cardinalità:
• 1 a 1: a un’occorrenza di un’entità corrisponde una sola occorrenza
di un’altra entità
• Un poliziotto specifico (Mario) ha un solo grado (tenente)
• 1 a molti: a una occorrenza di un’entità corrispondono più
occorrenze di un’altra entità, ma non viceversa
• Es. un concessionario vende più macchine, ma non si può dire che
una macchina specifica (fiat uno, rossa, targa 1234) sia venduta da
più concessionari!
• Molti a molti: ad un’occorrenza di un’entità corrispondono più
occorrenze di un’altra entità e viceversa
• Es. un concessionario ha a che fare con molti produttori e viceversa
un produttore tratta con più concessionari
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
16
8
Lo schema E/R
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
17
Lo schema E/R (ERD –Chen)
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
18
9
Riassumendo
•
•
•
•
•
•
•
In un modello entity-relationship si considerano:
Entità
Attributi
Relazioni
Le relazioni sono espresse:
qualitativamente, attraverso il loro significato (rapporto tra le entità)
quantitativamente: quante istanze di ciascuna entità sono coinvolte
nella relazione
• Per identificare in modo univoco un’entità, occorre individuarne la
chiave primaria (attributo univoco)
• Per collegare tra loro le entità occorre riportare, ove opportuno, un
attributo come chiave esterna
• NOTA: un’entità può essere coinvolta in più relazioni!
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
19
Traduzione del modello E/R
in struttura fisica del database
• Le entità diventano le tabelle
• Gli attributi diventano i campi (colonne) delle tabelle
• Le relazioni sono indicate tramite le chiavi (primarie ed
esterne)
• Vedremo un esempio con Microsoft Access, prima, però,
faremo qualche cenno (nella prossima lezione) al
linguaggio SQL, che serve per inserire, aggiornare ed
accedere ai dati (interrogare) presenti in un database.
• Non ci soffermeremo, invece sulla normalizzazione
(processo cui abbiamo accennato all’inizio, che consiste
nel creare una base di dati senza dati inutili, ripetuti o
ridondanti, perché è un concetto più complesso che
implica formulazioni matematiche rigorose.
Lez7 25.10.07
Trattamento dati. Database: modello entity-relationship
20
10