impiegato
datore
lavora in
Ente
persona
Alessandra Lumini
lumini@csr.unibo.it
Modello Entity-Relationship
Page 1
Entit
Automobile
Impiegato
Modello Entity-Relationship
A livello di istanze
Studenti
Giuseppe Verdi
Mario Rossi
Daniela Bianchi
Page 2
Associazione
Persona
Risiede
Citt
Modello Entity-Relationship
A livello di istanze
entit E1
istanza di E1
entit E2
associazione
A tra E1 ed E2
istanza di A
Modello Entity-Relationship
Page 3
Istanze di associazioni
Studente
Esame
Corso
Modello Entity-Relationship
Persona
Lavora
Citt
Assegnato
Progetto
Sede
Modello Entity-Relationship
Page 4
Risiede
Persona
Lavora
Citt
Modello Entity-Relationship
Amico
Persona
10
Page 5
Dirige
Dipendente
diretto
11
Dirige
Dipendente
Progetto
diretto
12
Page 6
Studente
Corso
esame
segue
propedeutico
avanz
commissione
docente
offre
Professore
CorsodiLaurea
iscritto
Modello Entity-Relationship
13
Attributi
Un attributo una propriet elementare di unentit o di
unassociazione
Graficamente:
nome
cognome
cod_fiscale
Persona
Modello Entity-Relationship
14
Page 7
A livello di istanze
nome
cognome
sesso
data di n.
Studenti
nome: Mario
cognome: Rossi
sesso: M
data di n. : 15/1/79
nome: Giuseppe
cognome: Verdi
sesso: M
data di n. : 21/5/79
nome: Daniela
cognome: Bianchi
sesso: F
data di n. : 3/2/79
15
Attributi: dellentit o
dellassociazione?
Studente
voto
Esame
Corso
Modello Entity-Relationship
16
Page 8
Attributi composti
Sono attributi che si ottengono aggregando altri (sotto-)
attributi, i quali presentano una forte affinit nel loro
uso e significato
via, n. civico, citt e CAP formano lattributo composto
indirizzo
Persona
indirizzo
via
n.civico
citt
CAP
17
Persona
Modello Entity-Relationship
18
Page 9
nome ciclo
telefono
matricola
Studente
esame
voto
base
Corso
propedeutico
avanz
indirizzo
via
data
segue
commissione
docente
citt
Professore
nome
iscritto
nome
cognome
data_nascita
cod_id
offre
CorsodiLaurea
Modello Entity-Relationship
19
20
Page 10
Associazioni: vincoli di
cardinalit
(1,n)
Modello Entity-Relationship
21
(0,n)
Propriet
(0,1)
Automobile
22
Page 11
LISTINO
QUOT.
Paese
NB
CodP
PRODOTTO
Nome
CodV
Prezzo
(0,N)
(1,N)
(0,N)
VALUTA
Modello Entity-Relationship
23
24
Page 12
(1,1)
Studente
(1,1)
Persona
(0,n)
Studente
(0,n)
Professore
(0,n)
Risiede
Risiede
Lavora
Esame
Insegna
(1,n)
Citt
(0,n)
Citt
(0,n)
(0,n)
(0,1)
Citt
Corso
Corso
Modello Entity-Relationship
25
Si parla di attributi:
opzionali: se la cardinalit minima 0 (es. n. patente)
monovalore: se la cardinalit massima 1 (es. cod_fiscale)
multivalore (o ripetuti): se la cardinalit massima n (es. telefono)
telefono
n.patente
cod_fiscale
(0,n)
(0,1)
Persona
Modello Entity-Relationship
26
Page 13
(0,n)
telefono
(0,1)
n.patente
cod_fiscale
data_nascita
(0,n)
Persona
nome
(1,n)
Risiede
(0,n)
Lavora
Citt
(1,n)
nome
CAP
regione
cognome
Modello Entity-Relationship
27
Persona
(1,n)
via
n.civico
citt
CAP
indirizzo
Persona
citt (1,n)
CAP (1,n)
Modello Entity-Relationship
28
Page 14
Identificatori
Un identificatore ha lo scopo di permettere lindividuazione
univoca delle istanze di unentit
Deve valere anche la propriet di minimalit: nessun sottoinsieme
proprio dellidentificatore deve a sua volta essere un identificatore
Per definire un identificatore per unentit E si hanno due
possibilit di base:
Identificatore interno: si usano uno o pi attributi di E
Identificatore esterno: si usano altre (una o pi) entit, collegate
a E da associazioni, pi eventuali attributi di E
Talvolta quando lidentificatore usa sia altre entit sia attributi
propri si parla di identificatore misto
Se il numero di elementi (attributi o entit) che costituiscono
lidentificatore pari a 1 si parla di identificatore semplice,
altrimenti lidentificatore composto
Modello Entity-Relationship
29
Persona
cognome
turno_lab
Studente
PC
matricola
Studente
(1,1)
Iscritto
(0,n)
denominazione
Universit
indirizzo
cognome
30
Page 15
AUTOMOBILE
Identificatore misto
Nome
(1,1)
CASA COSTR.
COSTR.
(1,N)
I1 esterno e composto
I2 misto
Numero Linea
Codice Ord.
ORDINE
DETTAGLIO
ORDINE
DI
(1,N)
(1,1)
Codice Prod.
I1
I2
PRODOTTO
PER
(1,1)
(1,N)
NB: si assume che nello stesso ordine un prodotto non possa comparire pi
di una volta su linee dordine diverse
Modello Entity-Relationship
31
Studente
Modello Entity-Relationship
32
Page 16
A1
B1
E1
E2
R
(1,1)
(1,N)
Titolo
FILM
Nome
(1,N)
ATTORE
RECITA
(1,N)
Numero Piano
AULA
PIANO
IN
(1,1)
(O,N)
Numero
Codice Edificio
EDIFICIO
IN
(1,1)
(1,N)
33
ciclo
telefono (0,n)
matricola
(0,n)
Studente
data
voto
(0,n)
esame
(0,n)
nome
Corso
via
citt
segue
commissione
(1,n)
(1,1)
(0,n)
docente
(1,1)
(1,n)
Professore
nome
cognome
data_nascita
cod_id
offre
(1,n)
(1,1)
iscritto
propedeutico
avanz
(0,n)
(3,5)
indirizzo
base (0,n)
nome
(0,n)
CorsodiLaurea
Modello Entity-Relationship
34
Page 17
a1
a2
...
an
b1
b2
...
bm
d
Modello Entity-Relationship
35
(0, N)
UOMO
DONNA
MATRIM.
data
(0, N)
(0, N)
UOMO
MATRIM.
(1, N)
DONNA
data
Modello Entity-Relationship
36
Page 18
(0, N)
CONTRAE_D
(1, 1)
MATRIMONIO
data
(1, 1)
CONTRAE_U
(0, N)
DONNA
Modello Entity-Relationship
37
MEDICO
(0, N)
(0, N)
esito
esito
VISITA
(0, N)
(1, N)
VISITA
(1, N)
(0, N)
data
PAZIENTE
data
PAZIENTE
38
Page 19
MEDICO
(0, N)
(0, N)
FA_VISITA
(1, 1)
VISITA
VISITA
(1, N)
(0, N)
data
(1, 1)
esito
IN_VISITA
PAZIENTE
data
(0, N)
PAZIENTE
CORRETTO
ma poco leggibile
39
Gerarchie di generalizzazione
E1
E2
En
40
Page 20
veicolo
(t,e)
maschio
(p,e)
femmina
auto
persona
moto
laureato
(t,s)
ingegnere
femmina
(p,s)
ingegnere
maschio
fisico
Modello Entity-Relationship
41
Un esempio di copertura
PERSONA
esistono anche altri ruoli
(t,e)
UOMO
(p,e)
DONNA
MANAGER
IMPIEGATO
(t,s)
MANAGER
TECNICO
MANAGER
AMMINISTR.
(p,s)
TECNICO
COMMERC.
AMMINISTR
Modello Entity-Relationship
42
Page 21
CdL
(0,n)
Iscritta
matricola (0,1)
(0,1)
Persona
dipartimento (0,1)
(t,e)
nome
Studente
Professore
nome
Modello Entity-Relationship
43
Subset
un caso particolare di gerarchia in cui si evidenzia una
sola classe specializzata
Studente eredita le propriet di Persona e in pi ha la matricola
ogni Studente anche una Persona
Persona
Studente
data_nascita
matricola
Modello Entity-Relationship
44
Page 22
ciclo
telefono (0,n)
matricola
data
(0,n)
Studente
nome
voto
(0,n)
esame
(0,n)
Corso
citt
via
docente
(1,n)
Laureando
(1,1)
relatore
(0,n)
(0,n)
(1,1)
commissione
segue
propedeutico
avanz
(0,n)
(3,5)
indirizzo
base (0,n)
(1,n)
Professore
titolo_tesi
nome
cognome
data_nascita
cod_id
offre
(1,n)
(1,1)
iscritto
(1,1)
nome
(0,n)
CorsodiLaurea
Modello Entity-Relationship
45
UOMO
UOMO
(0, N)
CONTRAE_D
Nome moglie
Data nasc. moglie
(1, 1)
UOMO
SPOSATO
MATRIMONIO
data_matrimonio
(1, 1)
data di matrim.
CONTRAE_U
(0, N)
DONNA
Modello Entity-Relationship
46
Page 23
SPIAGGIA
Tariffa
spiaggia
CENTRALE
INGRESSO
Tariffa centrale
Tariffa ingresso
Tipo Area
Tariffa
Modello Entity-Relationship
47
SOCIO
(t,e)
GIOCATORE
Tessera
Nome
SOCIO
Data
ARBITRO
arbitra
Data
arbitra
PARTITA
PARTITA
Il ruolo di ARBITRO
temporaneo (in un altro
torneo lo stesso SOCIO
potrebbe partecipare come
GIOCATORE). Il vincolo
che gli arbitri delle partite di
un torneo non partecipino al
torneo stesso deve essere
modellato dinamicamente.
Modello Entity-Relationship
48
Page 24
(1, 3)
SI TIENE
(0, 40)
preferibile
(1, 1)
AULA
LEZIONE
giornata
(1, 1)
(0, N)
SI TIENE
(0, 40)
GIORNO
AULA
Modello Entity-Relationship
49
SQUADRA
(0, N)
(0, N)
(0, N)
(0, N)
SFIDA
IN CASA
SFIDA
SFIDA
FUORI
(1,1)
(1,1)
(1,1)
PARTITA
PARTITA
Modello Entity-Relationship
50
Page 25
Corso
(0,n)
responsabile
nome
cognome
data_nascita
cod_doc
Docente
ciclo
(1,1)
Corso_AA
(0,n)
responsabile
Docente
nome
cognome
data_nascita
cod_doc
(1,1)
attivato
(0,n)
cod_corso
nome
Corso
Modello Entity-Relationship
51
Treno
staz_p
(1,n)
Di
(1,1)
cod_cliente
staz_a
(0,n)
Tratta
Prenota
(1,n)
Cliente
(1,n)
data
ora_p
rit_a
ora_a rit_p
Il problema in Tratta
Modello Entity-Relationship
52
Page 26
n_treno
Treno
(1,n)
Di
(1,1)
Tratta
ora_a
(1,n)
T-TG rit_p
rit_a
cod_cliente
(1,1)
data
TrattaGiornaliera
(0,n)
Prenota
(1,n)
Cliente
Modello Entity-Relationship
53
54
Page 27
Osservazioni generali
In tutti i casi visti si pu dire che il problema nasceva da
unanalisi poco accurata, che portava a soluzioni
intuitive ma non adeguate
I nomi di entit e associazioni alle volte traggono in
inganno: bene quindi, nel caso si presentino situazioni
poco chiare, provare a ragionare anche in termini di
istanze (cosa contiene effettivamente questa
entit/associazione?)
Quando, come praticamente sempre accade, interviene
la variabile tempo bene chiedersi quali sono gli
aspetti che si vogliono modellare che sono indipendenti
dal tempo e quali viceversa variano dinamicamente
Problemi simili a quelli visti nellultimo pattern si
presentano anche in assenza di aspetti temporali (ad es:
libri e copie di libri)
Modello Entity-Relationship
55
Entit
Relazioni
Descrizione
Attributi
Descrizione
Identificatore
Componenti Attributi
56
Page 28
di Vincolo e di Derivazione
Modello Entity-Relationship
57
Regole di vincolo
Regole di derivazione
Modello Entity-Relationship
58
Page 29
Un esempio completo
(0,1)
Cognome
Impiegato
Telefono
(1,N)
(0,N)
(0,1)
(0,N)
Codice
(1,1)
Direzione
Afferenza
(0,1)
Partecipazione
Data
(1,N)
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Progetto
Via
Budget
Indirizzo
Nome
CAP
Citt
Modello Entity-Relationship
59
Descrizione
Dipendente
dell'azienda
Progetti
aziendali
Dipartimento Struttura
aziendale
Sede
Sede
dell'azienda
Attributi
Codice,
Cognome,
Stipendio
Nome,
Budget
Nome,
Telefono
Citt,
Indirizzo
Identificatore
Codice
Nome
Nome,
Sede
Citt
Modello Entity-Relationship
60
Page 30
Relazioni
Direzione
Afferenza
Partecipazione
Composizione
Descrizione
Direzione di un
dipartimento
Afferenza a un
dipartimento
Partecipazione
a un progetto
Composizione
dell'azienda
Componenti Attributi
Impiegato,
Dipartimento
Impiegato,
Data
Dipartimento
Impiegato,
Progetto
Dipartimento,
Sede
Modello Entity-Relationship
61
62
Page 31
Esercizi
Modello Entity-Relationship
63
SCUOLA
card (0,1)
card (0,N)
card (1,N)
64
Page 32
Entit
Associazione
Gerarchie
Modello Entity-Relationship
65
Aggregazione:
entit (a partire dagli attributi)
associazione (a partire da entit e attributi)
attributo composto (a partire da altri attributi)
Generalizzazione:
gerarchie di generalizzazione
Modello Entity-Relationship
66
Page 33
Entit
Associazione
Attributo
Attributo composto
Identificatore
Gerarchia di
generalizzazione
Subset
Vincoli di cardinalit
(min-card,max-card)
Modello Entity-Relationship
67
68
Page 34
69
Sommario
9
70
Page 35