Sei sulla pagina 1di 35

Il modello Entity-Relationship

impiegato

datore

lavora in
Ente

persona

Alessandra Lumini
lumini@csr.unibo.it
Modello Entity-Relationship

Modello E/R: prime definizioni


Proposto da Peter S. Chen nel 1976, rappresenta uno standard de
facto per la progettazione concettuale di una base dati
Ha una rappresentazione grafica
Esistono molti dialetti E/R, che spesso si differenziano solo per la
notazione grafica adottata
Concetti fondamentali:
Entit (entity)
Associazione (relationship)
Attributo
e inoltre:
Vincolo di cardinalit
Identificatore
Gerarchia
Modello Entity-Relationship

Page 1

Entit

Insieme (classe) di oggetti della realt di interesse che


possiedono caratteristiche comuni (es. persone,
automobili, ) e che hanno esistenza autonoma
Listanza (elemento) di unentit uno specifico oggetto
appartenente a quella entit (es. io, la mia auto, )
Graficamente unentit si rappresenta con un
rettangolo:
Persona

Automobile

Impiegato

Modello Entity-Relationship

A livello di istanze
Studenti
Giuseppe Verdi
Mario Rossi
Daniela Bianchi

Studenti un tipo entit


i singoli studenti sono considerabili come istanze (occorrenze)
dell'entit Studenti
nel corso del tempo, il numero di istanze legato al tipo entit
Studenti pu variare
il tipo entit un'astrazione, corrispondente all'insieme di tutte le
singole entit che hanno le stesse caratteristiche
Modello Entity-Relationship

Page 2

Associazione

Rappresenta un legame logico tra entit, rilevante nella realt che


si sta considerando
Istanza di associazione: combinazione (aggregazione) di istanze
delle entit che prendono parte allassociazione
Graficamente unassociazione si rappresenta con un rombo:

Persona

Risiede

Citt

Se p unistanza di Persona e c unistanza di Citt, la coppia (p, c)


unistanza dellassociazione Risiede

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

Per definizione linsieme delle istanze di un'associazione un


sottoinsieme del prodotto Cartesiano degli insiemi delle istanze di
entit che partecipano allassociazione
Ne segue che non possono esservi istanze ripetute nellassociazione

Studente

Esame

Corso

Se s uno Studente e c un Corso, la coppia (s,c) pu comparire


ununica volta nell'insieme delle istanze di Esame

vedremo pi avanti come si pu rappresentare la possibilit di


sostenere pi volte lo stesso esame

Modello Entity-Relationship

Grado delle associazioni

il numero di istanze di entit che sono coinvolte in


unistanza dellassociazione
associazione binaria: grado = 2

Persona

Lavora

Citt

associazione ternaria: grado = 3


Impiegato

Assegnato

Progetto

Sede
Modello Entity-Relationship

Page 4

Pi associazioni tra le stesse


entit

possibile stabilire pi associazioni, di diverso significato,


tra le stesse entit

Risiede

Persona

Lavora

Citt

Modello Entity-Relationship

Associazioni ad anello (1)


Unassociazione ad anello coinvolge pi volte la stessa
entit, e quindi mette in relazione tra loro le istanze di una
stessa entit

Amico

Persona

Unassociazione ad anello pu essere o meno:


Simmetrica:
(a,b) A (b,a) A
Riflessiva:
(a,a) A
Transitiva:
(a,b) A, (b,c) A (a,c) A
Lassociazione Amico simmetrica, non riflessiva e intransitiva
Modello Entity-Relationship

10

Page 5

Associazioni ad anello (2)

Nelle associazioni ad anello non simmetriche necessario


specificare, per ogni ramo dellassociazione, il relativo ruolo
dirige

Dirige

Dipendente
diretto

Limportanza dei ruoli diventer evidente appena verranno


illustrati i vincoli di cardinalit
Modello Entity-Relationship

11

Associazioni ad anello (3)

possibile avere anelli anche in relazioni n-arie generiche


(n > 2)
dirige

Dirige

Dipendente

Progetto

diretto

Il significato di unistanza (d1,d2,p) :

il dipendente d1 dirige il dipendente d2 allinterno del


progetto p
Modello Entity-Relationship

12

Page 6

Un semplice schema E/R


(incompleto!)
base

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

nome, cognome, cod_fiscale sono tutti attributi di


Persona

Ogni attributo definito su un dominio di valori


Quindi un attributo associa a ogni istanza di entit o
associazione un valore del corrispondente dominio

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

gli attributi definiti a livello di entit si riferiscono a tutte le singole


istanze della specifica entit
in ogni specifica istanza, ciascun attributo assumer un valore
particolare
Modello Entity-Relationship

15

Attributi: dellentit o
dellassociazione?

importante fare attenzione a dove si specificano gli


attributi!
data

Studente

voto

Esame

Corso

data e voto non sono propriet n di uno Studente n di


un Corso, ma del legame Studente-Corso che si crea in
occasione di un esame

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

Si noti che se A composto dagli attributi A1, A2, , An


con rispettivi domini D1, D2, , Dn, allora il dominio di
A il prodotto Cartesiano D = D1 D2 Dn

Un attributo non composto viene anche detto semplice


Modello Entity-Relationship

17

Attributi e domini: un esempio

Per lentit Persona, gli attributi e i relativi domini sono:


nome: stringa(20)
cognome: stringa(20)
cod_fiscale: stringa(16)
data_di_nascita: giorno mese anno
titolo_di_studio: stringa(50)
dove i domini giorno, mese, ed anno sono:
giorno = 1, ..., 31
mese = {Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Set,Ott,Nov,Dic}
anno = 1900, ..., 2100
nome
cognome
cod_fiscale
data_di_nascita
titolo_di_studio

Persona
Modello Entity-Relationship

18

Page 9

Uno schema E/R (ancora


incompleto!)
nome

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

Vincoli nel modello EntityRelationship


In ogni schema E/R sono presenti dei vincoli
Alcuni sono impliciti, in quanto dipendono dalla semantica stessa
dei costrutti del modello:
ogni istanza di associazione deve riferirsi a istanze di entit
istanze diverse della stessa associazione devono riferirsi a
differenti combinazioni di istanze delle entit partecipanti
all'associazione
e altri che verranno osservati in seguito
Altri vincoli sono espliciti, e vengono definiti da chi progetta lo
schema E/R sulla base della conoscenza della realt che si sta
modellando
vincoli di cardinalit (per associazioni e attributi)
vincoli di identificazione
Modello Entity-Relationship

20

Page 10

Associazioni: vincoli di
cardinalit

Sono coppie di valori (min-card,max-card) associati a ogni entit


che partecipa a unassociazione, che specificano il numero minimo
e massimo di istanze dellassociazione a cui unistanza dellentit
pu partecipare
Vale quanto gi visto, si tratta solo di un modo pi compatto per
rappresentare i vincoli
Ad esempio, se i vincoli di cardinalit per unentit E relativamente
a unassociazione A sono (1,n) questo significa:
ogni istanza di E partecipa almeno a una istanza di A
ogni istanza di E pu partecipare a pi istanze di A
Graficamente:

(1,n)

Modello Entity-Relationship

21

Vincoli di cardinalit: un esempio


Persona

(0,n)

Propriet

(0,1)

Automobile

min-card(Automobile,Propriet) = 0: esistono automobili che non


hanno un proprietario
min-card(Persona,Propriet) = 0: esistono persone che non possiedono
unautomobile
max-card(Persona,Propriet) = n: ogni persona pu essere proprietaria
di un numero arbitrario di automobili
max-card(Automobile,Propriet) = 1: ogni automobile pu avere al pi
un proprietario

Si noti che i vincoli si possono stabilire correttamente solo se ben


chiaro cosa rappresentano le diverse entit!
Modello Entity-Relationship

22

Page 11

Vincoli di cardinalit nelle


associazioni ternarie
CodL
Nome

LISTINO

QUOT.

Paese

NB

CodP
PRODOTTO
Nome

CodV

Prezzo
(0,N)

(1,N)

(0,N)
VALUTA

In un listino ci sono (1, N) quotazioni card(LISTINO, QUOT.) = (1, N)


In una valuta ci sono (0, N) quotazioni card(VALUTA, QUOT.) = (0, N)
Di un prodotto ci sono (0, N) quotazioni card(PRODOTTO, QUOT.) = (1, N)
Una ternaria NON si
legge fissando 2 entit e
cercando di esprimere le
cardinalit di conseguenza.

- Dato un listino e un prodotto, esistono pi quotazioni in valute diverse.


- Esistono pi listini in cui un prodotto quotato nella stessa valuta.
- Dato un listino e una valuta esistono pi prodotti.

Modello Entity-Relationship

23

Tipi di associazione: terminologia


Nel caso di unassociazione binaria A tra due entit E1 ed E2 (non
necessariamente distinte), si dice che:
A uno a uno se le cardinalit massime di entrambe le entit
rispetto ad A sono 1
A uno a molti se max -card(E1,A) = n e max-card(E2,A) = 1, o
max -card(E2,A) = n e max-card(E1,A) = 1
A molti a molti se max-card(E1,A) = n e max-card(E2,A) = n
Si dice inoltre che:
La partecipazione di E1 in A opzionale se min-card(E1,A) = 0
La partecipazione di E1 in A obbligatoria (o totale) se
se min-card(E1,A) = 1
La partecipazione di E1 in A a valore singolo se
se max-card(E1,A) = 1
La partecipazione di E1 in A a valore multiplo se
se max-card(E1,A) > 1
Modello Entity-Relationship

24

Page 12

Tipi di associazione: esempi


Persona

(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

Attributi: vincoli di cardinalit


Anche per gli attributi possibile specificare il numero minimo e
massimo di valori dellattributo che possono essere associati ad
unistanza della corrispondente associazione o entit
Graficamente si pu indicare la coppia (min-card,max-card) sulla
linea che congiunge lattributo all'associazione/entit, o di fianco al
nome dellattributo
se non si indica niente il valore di default (1,1)

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

Vincoli di cardinalit: un esempio


(1,1)

(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

Attributi ripetuti e composti


Nel caso di presenza di pi attributi multivalore, la
creazione di un attributo composto pu rendersi
necessaria per evitare ambiguit
Ad esempio, se una persona ha pi indirizzi

Persona

(1,n)

via
n.civico
citt
CAP

indirizzo

non si pu rappresentarlo cos!


via (1,n)
n.civico (1,n)

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

Identificatori interni ed esterni (1)


CF

Persona

cognome
turno_lab

Studente

PC

identificatore interno semplice

identificatore interno composto

matricola

Studente

(1,1)

Iscritto

(0,n)

denominazione

Universit

indirizzo

identificatore esterno composto (misto)


nome

cognome

una matricola univoca


solo allinterno della stessa Universit
Modello Entity-Relationship

30

Page 15

Identificatori interni ed esterni (2)


Modello

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

Identificatori: alcune osservazioni

Se E identificata esternamente attraverso lassociazione A, allora


si ha min-card(E,A) = max-card(E,A) =1
Se basta E1, tramite A, a identificare E, allora max-card(E1,A) =1; in
caso contrario max-card(E1,A) = n
Ogni entit deve avere almeno un identificatore, in generale pu
averne pi di uno
Alle volte si dice che E unentit debole se ha solo identificatori
esterni, e forte se ha solo identificatori interni
possibile evidenziare graficamente unentit debole disegnando
il rispettivo rettangolo con una doppia linea

Studente
Modello Entity-Relationship

32

Page 16

Identificatori: esempi da non seguire

A1

Attenzione al formalismo grafico usato per gli


identificatori esterni. La figura riporta tre errori
molto comuni.

B1
E1

E2

R
(1,1)

(1,N)

Titolo

FILM

Nome
(1,N)

Per utilizzare ATTORE nellidentificazione di


FILM la cardinalit card(FILM, RECITA)
dovrebbe essere (1,1), ma ci in netto contrasto
con la semantica del problema.

ATTORE

RECITA
(1,N)

Numero Piano

AULA

PIANO

IN
(1,1)

(O,N)

Numero

Codice Edificio
EDIFICIO

IN
(1,1)

(1,N)

Non possibile utilizzare EDIFICIO nellidentificazione di AULA dato


che non esiste un legame diretto. Una soluzione possibile quella di
utilizzare lidentificatore composto mixed {Numero, PIANO}.
Modello Entity-Relationship

33

Uno schema E/R completo!


nome

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

Note sugli attributi di una


associazione (1)

importante fare attenzione alluso di attributi in


unassociazione!
R

a1
a2
...
an

b1
b2
...
bm

r1, r2, ...,rs

Ogni istanza rk dellassociazione R dotata di un proprio


valore per lattributo d; daltro canto la semantica dellE/R
impedisce di usare d per identificare le istanze di R.
R
r1, r2, ...,rs

d
Modello Entity-Relationship

35

Note sugli attributi di una


associazione (2)
(0, N)

(0, N)

UOMO

DONNA

MATRIM.

Non possono esservi due istanze


dellassociazione (Ui,Dj,d1) e
(Ui,Dj,d2), dunque un uomo e una
donna non possono risposarsi.

data

(0, N)

(0, N)

UOMO

MATRIM.
(1, N)

DONNA

Un uomo pu risposare la stessa


donna pi volte

data

NB: entrambi gli schemi consentono che un uomo (o una donna)


possano sposarsi pi volte nella stessa data

Modello Entity-Relationship

36

Page 18

Note sugli attributi di una


associazione (3)
UOMO

Un uomo e una donna possono risposarsi.

(0, N)

Un uomo non pu contrarre pi di matrimonio


nello stesso giorno.

CONTRAE_D
(1, 1)
MATRIMONIO

data

(1, 1)
CONTRAE_U
(0, N)
DONNA

Modello Entity-Relationship

37

Note sugli attributi di una


associazione (4)
Se gli attributi sono pi di uno e ripetuti, la soluzione pi elegante
consiste nellintroduzione di una nuova entit.
MEDICO

MEDICO

(0, N)

(0, N)

esito

esito
VISITA
(0, N)

(1, N)

VISITA

(1, N)
(0, N)

data

PAZIENTE

un medico pu visitare una


sola volta un paziente:
ASSURDO !

data

PAZIENTE

ERRATO: non possibile


associare lesito della visita alla
data in cui stata effettuata
Modello Entity-Relationship

38

Page 19

Note sugli attributi di una


associazione (5)
MEDICO

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

nellipotesi che un medico non visiti lo


stesso paziente pi di una volta nello
stesso giorno
Modello Entity-Relationship

39

Gerarchie di generalizzazione

Unentit E una generalizzazione di un gruppo di entit E1, E2, ..., En


se ogni istanza di E1, E2, ..., En anche unistanza di E
Le entit E1, E2, ... En sono dette specializzazioni di E
Graficamente:
E

E1

E2

En

Per le gerarchie di generalizzazione va anche specificato il tipo di


copertura
Le propriet di E sono ereditate da E1, E2, ... En : ogni Ei ha gli attributi
di E e partecipa alle associazioni definite per E (non vanno quindi
replicati nello schema, sarebbe un errore!)
Modello Entity-Relationship

40

Page 20

Propriet di copertura esempi


persona

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.

alcuni manager possono


ricoprire entrambi i ruoli

(p,s)

TECNICO

COMMERC.

AMMINISTR

esistono anche altri tipi di impiegati; alcuni


impiegati possono avere pi mansioni

Modello Entity-Relationship

42

Page 21

Ereditariet delle propriet

Gli attributi comuni lungo una gerarchia vanno riferiti allentit


pi generica in cui sono presenti obbligatoriamente
Analogamente per le associazioni

Quindi questo schema non corretto:

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

Non ha ovviamente senso parlare di tipo di copertura


nome

Persona

Studente

data_nascita

matricola

Modello Entity-Relationship

44

Page 22

Uno schema E/R con gerarchie


nome

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

ancora sulle gerarchie (1)


Nellambito della progettazione concettuale E/R le
gerarchie di generalizzazione non sono normalmente
impiegate per modellare aspetti dinamici della realt di
interesse. Ad esempio:
Nome
PERSONA
Data di nascita
(t,e)
Nome
Data di nascita

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

ancora sulle gerarchie (2)


Attenzione a non confondere entit con istanze di entit
tentando di modellare attraverso gerarchie la conoscenza di
specifiche istanze.
Esempio: ... un campeggio diviso in tre aree (spiaggia, centrale,
ingresso) ognuna delle quali caratterizzata da una certa tariffa ...
AREA
AREA

SPIAGGIA

Tariffa
spiaggia

CENTRALE

INGRESSO

Tariffa centrale

Tariffa ingresso

Tipo Area
Tariffa

Modello Entity-Relationship

47

per finire sulle gerarchie


Attenzione a non modellare attraverso gerarchie i ruoli che
unentit assume in diversi periodi temporali o in relazione
ad altre entit:
Esempio: ... un circolo di tennis organizza periodicamente alcuni tornei
riservati ai soci.... gli arbitri delle partite sono soci che non partecipano
al torneo...
Tessera
Nome

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

Note sulle ternarie (1)


Quando in unassociazione ternaria esistono dipendenze
funzionali tra le entit in gioco preferibile sostituire la
ternaria con una coppia di binarie (che modellano
esplicitamente i vincoli del problema).
CORSO
Esempio:
CORSO
(1, 3)
DI

(1, 3)
SI TIENE

(0, 40)

preferibile

(1, 1)

AULA

LEZIONE

giornata

(1, 1)

(0, N)

SI TIENE
(0, 40)

GIORNO

AULA

Si supponga che in un GIORNO


possa tenersi solo una lezione (in
una specifica AULA) di un CORSO,
ovvero:
CORSO, GIORNO AULA

Modello Entity-Relationship

49

Note sulle ternarie (2)


False Ternarie:
Se una (o pi) entit partecipano con cardinalit massima 1 a
unassociazione ternaria siamo in presenza di una falsa ternaria che
pu essere sempre modellata attraverso due binarie.
Esempio:
SQUADRA

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

Note sulleffetto del tempo


Fotografia dei corsi attivati in un anno accademico
cod_corso nome ciclo
(1,1)

Corso

(0,n)

responsabile

nome
cognome
data_nascita
cod_doc

Docente

La storia considerando pi anni accademici


AA

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

Lorario dei treni, i ritardi e le


prenotazioni
si vuole mantenere lorario dei treni, e i ritardi che questi hanno.
Inoltre si vogliono gestire le prenotazioni dei clienti
Il seguente schema (semplificato) non corretto:
n_treno

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

Ritardi e prenotazioni variano


nel tempo!

Lerrore consiste nel mischiare specifiche che riguardano aspetti


statici (lorario) con specifiche dinamiche (ritardi e
prenotazioni)
La soluzione consiste nellintrodurre una nuova entit:

n_treno

Treno

staz_p staz_a ora_p

(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

Soluzioni a problemi comuni


In molti schemi E/R si ritrovano dei pattern comuni,
ovvero soluzioni a problemi che si presentano di
frequente
Non esiste una codifica di questi pattern; rivisitiamo
solo alcuni esempi particolarmente significativi gi
introdotti in precedenza:

Le aree del campeggio


Farsi visitare pi volte dallo stesso medico, ma non
lo stesso giorno!
Ovvero no, non pu ridare lesame tra 1 ora!
Io non tengo mai pi di una lezione al giorno!
Lorario dei treni, i ritardi e le prenotazioni
Modello Entity-Relationship

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

Documentazione di schemi E/R (1)

Dizionario dei dati: una tabella per le entit e una per le


associazioni

Entit

Relazioni

Descrizione

Attributi

Descrizione

Identificatore

Componenti Attributi

Luso del dizionario raccomandato nel caso in cui lo schema sia


particolarmente complesso e risulti pesante specificare direttamente
su di esso tutti gli attributi di entit e relazioni
Modello Entity-Relationship

56

Page 28

Documentazione di schemi E/R (2)


Regole

di Vincolo e di Derivazione

Vincolo: rappresenta un vincolo di integrit non


direttamente esprimibile con i costrutti del modello
E-R
Si possono esprimere con frasi del tipo
<concetto> deve/non deve <espressione su concetti>
Es. un impiegato NON DEVE avere uno stipendio maggiore
del direttore del dipartimento a cui afferisce

Derivazioni: rappresenta un concetto che pu essere


ottenuto da altri concetti dello schema
Si possono esprimere con frasi del tipo:
<concetto> si ottiene <operazioni su concetti>
Es. il numero degli impiegati di un dipartimento si ottiene
contando gli impiegati che vi afferiscono

Modello Entity-Relationship

57

Documentazione di schemi E/R (3)


I

vincoli e le derivazioni essere opportunamente


codificate nel modello logico e fisico
Alcuni possibili approcci:
Clausole appropriate del linguaggio SQL
Opportune procedure in un linguaggio di programmazione

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

Dizionario dei dati (entit)


Entit
Impiegato
Progetto

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

Dizionario dei dati (relationship)

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

Vincoli non esprimibili


Vincoli di integrit sui dati
(1) Il direttore di un dipartimento deve a afferire a tale
dipartimento
(2) Un impiegato non deve avere uno stipendio
maggiore del direttore del dipartimento al quale
afferisce
(3) Un dipartimento con sede a Roma deve essere
diretto da un impiegato con pi di dieci anni di
anzianit
(4) Un impiegato che non afferisce a nessun
dipartimento non deve partecipare a nessun un
progetto
Modello Entity-Relationship

62

Page 31

Esercizi

1. (gerarchie) Le persone hanno CF, nome, cognome ed et; gli uomini


anche la posizione militare; gli impiegati hanno lo stipendio e
possono essere segretari, direttori o progettisti (un progettista pu
essere anche responsabile di progetto); gli studenti hanno un numero
di matricola; esistono persone che non sono n impiegati n studenti
(ma i dettagli non ci interessano)
2. I concetti sinora introdotti per il modello E/R possono essere
modellati disegnando uno schema E/R (!?)
Ad esempio:
Ogni entit ha almeno un identificatore (interno o esterno)
Ogni associazione, in base al suo grado, collegata a n entit
Ogni attributo ha un nome (univoco allinterno dellentit o
associazione cui si riferisce)
e la stessa cosa si pu fare per i concetti del modello relazionale!

Modello Entity-Relationship

63

E/R: varianti ed estensioni

Tra le notazioni equivalenti pi note:


ALLIEVO

SCUOLA

Le associazioni sono denotate


da segmenti privi di rombo.

un allievo iscritto a una sola scuola: card(1,1)

card (0,1)

Le cardinalit sono espresse


graficamente dalla parte
dell'entit di destinazione.

card (0,N)

card (1,N)

Talvolta viene introdotto il concetto di entit associativa per la


modellazione di associazioni con attributi
Alcune versioni E/R prevedono meccanismi per semplificare la
modellazione concettuale in presenza di esigenze di storicizzazione
dei dati (E/R temporali)
Modello Entity-Relationship

64

Page 32

E/R: formalismi diversi

Diverse notazioni grafiche sono utilizzate dai tool commerciali; quella


impiegata da DB-MAIN
:

Entit

Associazione

Attributi : sono elencati allinterno del simbolo grafico di entit o


associazione
Identificatori: gli attributi facenti parte dellidentificatore sono
sottolineati

Gerarchie

Modello Entity-Relationship

65

Le astrazioni nel modello E/R

Riassumendo quanto visto, nel modello E/R i


meccanismi di astrazione sono usati come segue:

Classificazione: usata per definire


entit (a partire dalle istanze)
attributi (a partire dai valori)

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

Riassunto della notazione grafica

Entit

Associazione

Attributo

Attributo composto

Identificatore

Gerarchia di
generalizzazione

Subset

Vincoli di cardinalit

(min-card,max-card)
Modello Entity-Relationship

67

Utilit del modello E/R


Uno schema E/R pi espressivo di uno schema relazionale, inoltre
pu essere utilizzato con successo per alcuni compiti diversi dalla
progettazione, ad esempio:
Documentazione
La simbologia grafica del modello E/R pu essere facilmente
compresa anche dai non addetti ai lavori
Reverse engineering
A partire da un DB esistente si pu fornirne una descrizione in
termini E/R allo scopo di migliorare lanalisi del contesto
applicativo ed eventualmente procedere a unoperazione di
riprogettazione
Integrazione di sistemi
Essendo indipendente dal modello logico dei dati, possibile
usare il modello E/R come linguaggio comune in cui
rappresentare DB eterogenei, allo scopo di costruire un DB
integrato
Modello Entity-Relationship

68

Page 34

Limiti del modello E/R


Per contro, per quanto pi espressivo di uno schema relazionale,
uno schema E/R non sufficiente a rappresentare tutti gli aspetti di
interesse
I limiti sono di due tipi:
i nomi dei vari concetti possono non essere sufficienti per
comprenderne il significato
non tutti i vincoli di integrit sono esprimibili in uno schema
E/R
Ad esempio:
per sostenere un esame necessario avere sostenuto tutti gli
esami propedeutici
un laureando deve aver sostenuto almeno tutti gli esami dei
primi anni
In fase di progettazione bisogna quindi fornire unulteriore
documentazione appropriata a corredo dello schema
Modello Entity-Relationship

69

Sommario
9

Il modello E/R un modello concettuale molto utilizzato per la


progettazione di basi di dati

Esistono molti dialetti E/R, che spesso si differenziano solo per la


notazione grafica adottata

I principali costrutti del modello sono lentit, lassociazione e


lattributo, a cui si aggiungono identificatori, gerarchie e vincoli di
cardinalit

Lespressivit del modello E/R non normalmente sufficiente in fase


di progettazione, e ci comporta la necessit di documentazione di
supporto

Va infine ricordato che come conoscere un linguaggio di


programmazione non significa di per s saper programmare, cos
conoscere il modello E/R non significa saper progettare basi di dati!
tuttavia comunque un buon punto di partenza :-)
Modello Entity-Relationship

70

Page 35