Sei sulla pagina 1di 124

PROGETTAZIONE DI BASE DI

DATI

Metodologie e modelli
Premessa
In questa parte del corso studieremo come
progettare una base di dati...

Ovvero,
Verra’ illustrato ed esemplificato il processo di
progettazione concettuale e logica delle basi di dati
relazionali, che permette, partendo dai requisiti di
utente, di arrivare a produrre strutture di basi di dati di
buona qualità.

2/20/2017 R Schetini - progettazione E-R 2


Premessa
•La progettazione di basi di dati è una delle attività
del processo di sviluppo dei sistemi informativi va
quindi inquadrata in un contesto più generale: il ciclo
di vita dei sistemi informativi

2/20/2017 R Schetini - progettazione E-R 3


Ciclo di vita dei
sistemi informativi
•Insieme e sequenzializzazione delle attività
svolte da analisti, progettisti, utenti, nello
sviluppo e nell’uso dei sistemi informativi

•Attività iterativa, quindi “un ciclo”

2/20/2017 R Schetini - progettazione E-R 4


Fasi del ciclo di vita
Studio di fattibilità

Raccolta e analisi
dei requisiti

Progettazione

Implementazione

Validazione e
collaudo

Funzionamento

2/20/2017 R Schetini - progettazione E-R 5


Fasi del ciclo di vita

– Studio di fattibilità: definizione costi e priorità


– Raccolta e analisi dei requisiti: studio delle proprietà
del sistema
– Progettazione: di dati e funzioni
– Implementazione: realizzazione
– Validazione e collaudo: sperimentazione
– Funzionamento: il sistema diventa operativo

2/20/2017 R Schetini - progettazione E-R 6


Ciclo di vita (modello a spirale)

Analisi Raccolta dei requisiti

1 2 3 versioni del
programma

Progetto e realizzazione Verifica e manutenzione

2/20/2017 R Schetini - progettazione E-R 7


Progettazione
• la progettazione dei dati
individua l’organizzazione e la struttura della base di
dati

• la progettazione delle applicazioni


schematizza le operazioni sui dati e progetta il
software applicativo
i dati hanno un ruolo centrale
– i dati sono più stabili Studio di fattibilità

Raccolta e analisi
dei requisiti
– si progetta prima la base dati Progettazione

e poi le applicazioni Implementazione

Validazione e
collaudo

Funzionamento

11/03/2002 Raimondo Sc hett ini - Me todologie e modelli pe r db 7

2/20/2017 R Schetini - progettazione E-R 8


Progettazione di basi di dati

•Per garantire prodotti di buona qualità è opportuno


seguire una metodologia di progetto (articolazione
in fasi/passi).

Studio di fattibilità

Raccolta e analisi
dei requisiti
Progettazione
dei dati

Realizzazione

Validazione e
collaudo

Funzionamento

11/03/2002 Raimondo Sc hett ini - Me todologie e modelli pe r db 17


2/20/2017 R Schetini - progettazione E-R 9
•Una metodologia e’ un’articolazione in
fasi/passi di guida ad una attività di
progettazione.

2/20/2017 R Schetini - progettazione E-R 10


•Metodologia di progettazione
PER PROGETTARE UN BASE DATI
serve una m etodologia di progettazione
(insieme di strumenti) che:
• permetta di suddividere la progettazione
in fasi successive indipendenti,
• fornisca strategie da seguire e criteri di scelta
in caso di alternative,
• fornisca m odelli di riferim ento (linguaggi)
per descrivere la realtà che stiamo progettando,

e che garantisca:
• generalità rispetto ai problemi da affrontare,
• qualità in termini di correttezza, completezza ed
efficienza,
• facilità d’uso
2/20/2017 R Schetini - progettazione E-R 11
Una metodologia di
progettazione di basi di dati

•Si basa su un principio semplice ma


efficace:
•separazione netta tra decisioni relative a :

cosa rappresentare
– come farlo

2/20/2017 R Schetini - progettazione E-R 12


Requisiti della base di dati

Progettazione “CHE COSA”


concettuale
Schema concettuale

Progettazione
logica
Schema logico
“COME” Progettazione
fisica
Schema fisico
2/20/2017 R Schetini - progettazione E-R 13
Progettazione
concettuale

Progettazione
logica

Progettazione
fisica
2/20/2017 R Schetini - progettazione E-R 14
La progettazione di basi di dati
La metodologia introdotta prevede 3 fasi:
progettazione concettuale
progettazione logica
progettazione fisica

Ognuna delle fasi si basa su un modello,


che permette di generare una rappresentazione
formale (schema) della base di dati ad un dato livello
di astrazione (concettuale, logico e fisico):
Schema concettuale
Schema logico
Schema fisico

2/20/2017 R Schetini - progettazione E-R 15


Fase di progettazione concettuale

Progettazione concettuale: traduce i requisiti del sistema


informatico in una descrizione formalizzata, integrata delle
esigenze aziendali, espressa in modo indipendente dalle scelte
implementative (DBMS, SW e HW).

formale: la descrizione deve essere espressa con un


linguaggio non ambiguo e capace di descrivere in modo
soddisfacente il sistema analizzato;

integrata: la descrizione deve essere in grado di descrivere


nella globalità l’ambiente analizzato;

indipendente dall’ambiente tecnologico: la descrizione deve


concentrarsi sui dati e sulle loro relazioni, e non sulle scelte
implementative.

2/20/2017 R Schetini - progettazione E-R 16


Fase di progettazione logica

La progettazione logica consiste nella traduzione dello


schema con concettuale nel modello dei dati del DBMS
Il risultato è uno schema logico, espresso nel DDL
del DBMS

In questa fase si considerano anche aspetti legati ai vincoli


ed all’efficienza

La progettazione logica si articola in due sotto-fasi:

•ristrutturazione dello schema concettuale


•traduzione verso il modello logico

2/20/2017 R Schetini - progettazione E-R 17


Fase di progettazione fisica

specifiche dei requisiti


Progettazione concettuale: traduce i
requisiti el sistema informatico in una descrizione
PROGETTAZIONE formale, integrata e indipendente dalle scelte
CONCETTUALE implementative (DBMS, SW e HW).

Progettazione logica: traduce lo schema


PROGETTAZIONE concettuale nel modello di rappresentazione
LOGICA dei dati adattato dal DBMS scelto

Progettazione fisica: completa lo


PROGETTAZIONE schema logico ottenuto con le
FISICA specifiche proprie dell’hw/sw scelto.
Il risultato e’ lo schema fisico che descrive le strutture
di memorizzazione ed accesso ai dati

2/20/2017 R Schetini - progettazione E-R 18


•Nel nostro caso
specifiche dei requisiti

PROGETTAZIONE – Schema concettuale (modello


CONCETTUALE
E-R)
PROGETTAZIONE
LOGICA – Schema logico
(Modello Relazionale)
PROGETTAZIONE
FISICA

2/20/2017 R Schetini - progettazione E-R 19


Vantaggi della progettazione concettuale

 Permette una descrizione dei dati indipendente


degli aspetti tecnologici con un livello di astrazione
intermedio fra utente e sistema. Prevale l’aspetto
intensionale.
• Rappresentazione prevalentemente grafica che
migliora la comunicazione tra i progettisti, gli utenti e
tutte le persone coinvolte nella realizzazione
dell’applicazione.

• Utile per la documentazione.

2/20/2017 R Schetini - progettazione E-R 20


Esempio di uno schema concettuale
2/20/2017 R Schetini - progettazione E-R 21
Introduzione al modello Entità -
Relazione

Studente Esame Corso

Uno schema E-R, graficamente

2/20/2017 R Schetini - progettazione E-R 22


Modello Entità-Relazione

•Il modello ENTITÀ-RELAZIONE (E-R) è un


linguaggio grafico semi-formale per la rappresentazione
di schemi concettuali
•Il modello E-R si è ormai affermato come uno
standard nelle metodologie di progetto e nei sistemi SW di
ausilio alla progettazione

•Ne esistono molte versioni, (più o meno) diverse l’una


dall’altra

•Entity-Relationship, P.P. Chen 1976

2/20/2017 R Schetini - progettazione E-R 23


I costrutti del modello E-R

•entità
•relazione
•attributo semplice
•attributo composto
•cardinalità
•cardinalità di un
attributo
•identificatore interno
•identificatore esterno
•generalizzazione
•sottoinsieme

2/20/2017 R Schetini - progettazione E-R 24


Entità
•Classe di oggetti (fatti, persone, cose) della
applicazione di interesse con proprietà comuni
e con esistenza “autonoma” e della quale si
vogliono registrare fatti specifici

•Esempi:

impiegato conto corrente


dipartimento università
città studente
2/20/2017 R Schetini - progettazione E-R 25
Rappresentazione grafica
di entità

Impiegato Dipartimento

Città Studente

2/20/2017 R Schetini - progettazione E-R 26


•Ogni entità ha un nome
•che la identifica univocamente
•nello schema:

– nomi espressivi
– opportune convenzioni
• singolare

2/20/2017 R Schetini - progettazione E-R 27


Occorrenza (o istanza) di entità
•Occorrenza (o istanza) di entità:
•oggetto della classe che l’entità rappresenta
•Nello schema concettuale rappresentiamo le
entità, non le singole istanze (“astrazione”)

CONOSCENZA ASTRATTA -> entità


CONOSCENZA CONCRETA ->istanza di
entità
2/20/2017 R Schetini - progettazione E-R 28
Esempi di istanze di entità

•il docente Rossi


•il corso Basi di dati
•l’auto AZ22893
•lo studente PNZWLM69L63C638B
•il volo AZ3313
•il percorso Milano-Roma
•la pratica VF836G

2/20/2017 R Schetini - progettazione E-R 29


Rappresentazione grafica

Cognome Età Nome

Impiegato Città

Stipendio Provincia

2/20/2017 R Schetini - progettazione E-R 30


Attributi

Ogni attributo e’ definito su un dominio di valori


Un attributo associa ad ogni istanza di entità o
associazione un valore nel corrispondente
dominio.

I domini non vengono specificati nell’E-R ma nella


documentazione associata.

E’ importante fare attenzione a dove si specificano


gli attributi.
2/20/2017 R Schetini - progettazione E-R 31
Attributi di entità
Età/intero
Dato lo schema:
Impiegato

La seguente è
una sua istanza ?
41
S1 37
S2
29
S3
S4 34

Impiegato Età intero


2/20/2017 R Schetini - progettazione E-R 32
Età/intero
Dato lo schema:
Impiegato

La seguente è
una sua istanza ? SI’!
41
S1 37
S2
29
S3
S4 34

Impiegato Età intero


2/20/2017 R Schetini - progettazione E-R 33
Età/intero
Dato lo schema:
Impiegato

La seguente è
una sua istanza ?
41
S1 37
S2
29
S3
S4 34

Impiegato Età intero


2/20/2017 R Schetini - progettazione E-R 34
Età/intero
Dato lo schema:
Impiegato

La seguente è No, l’attributo Età associa due valori a S3!


una sua istanza ? Ricordarsi che un attributo è una funzione.
41
S1 37
S2
29
S3
S4 34

Impiegato Età intero


2/20/2017 R Schetini - progettazione E-R 35
Età/intero
Dato lo schema:
Impiegato

La seguente è
una sua istanza ?
41
S1 37
S2
29
S3
S4 34

Impiegato Età intero


2/20/2017 R Schetini - progettazione E-R 36
Età/intero
Dato lo schema:
Impiegato

La seguente è No, manca il valore di età per S2! Ricordarsi


una sua istanza ? che un attributo è una funzione totale
41
S1 37
S2 ??
29
S3
S4 34
Età
Impiegato intero
2/20/2017 R Schetini - progettazione E-R 37
Esempi di attributi delle istanze di entità

•Fraternali ha nome Piero


•Bianchi ha matricola 012873
•Il recapito della ditta Rossi è via Indipendenza
22
•il peso del tornio K22 è 500 kg
•Sistemi Informativi si tiene al terzo anno

2/20/2017 R Schetini - progettazione E-R 38


Analisi dei casi dubbi

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?)

2/20/2017 R Schetini - progettazione E-R 39


Attributi composti

•Si ottengono raggruppando attributi di una


medesima entità o relazione che presentano
affinità nel loro significato o uso

•Esempio:
•Via, Numero civico e CAP
•formano un Indirizzo

2/20/2017 R Schetini - progettazione E-R 40


Entity - Relationship: esempio

•Entità studente

Nome cognome Matricola


Data nascita

Foto studente
Studente

2/20/2017 R Schetini - progettazione E-R 41


Entity - Relationship: esempio

•Entità: calciatore

nome cognome
curriculum

foto
calciatore

2/20/2017 R Schetini - progettazione E-R 42


Entity - Relationship: esempio

•Entità: calciatore

nome cognome
curriculum tipo autore anno

calciatore rappresentazione
foto
foto

2/20/2017 R Schetini - progettazione E-R 43


Entity - Relationship: esempio

•Casa editrice, per il bibliotecario

titolo autore
Casa editrice

anno libro

2/20/2017 R Schetini - progettazione E-R 44


Relazione- Associazione
•Fatto che descrive un’azione o una
situazione e che stabilisce legami logici tra
istanze di entità (associa, mette in relazione)
nella realtà che stiamo considerando

•I legami possono essere fra piu’ di due entita’. Il


numero di entità coinvolte in una relazione
determina il suo grado

•NB: spesso useremo il termine ASSOCIAZIONE o


RELATIONSHIP (per relazione) evitando confusione con la
terminologia relazionale

2/20/2017 R Schetini - progettazione E-R 45


Rappresentazione grafica
di relazione

Studente Esame Corso

Impiegato Residenza Città

2/20/2017 R Schetini - progettazione E-R 46


•Ogni relazione ha un nome che la
identifica univocamente nello
schema:

– nomi espressivi
– opportune convenzioni
• singolare
• sostantivi invece che verbi

2/20/2017 R Schetini - progettazione E-R 47


istanze di associazione
•Istanza di associazione: combinazione
(aggregazione) di istanze di entita’ che
prendono parte alla associazione

•Rossi insegna Basi di dati


•Batini appartiene all’Università di Milano
Bicocca
•La ditta Rossi ordina PC
•Bianchi lavora al magazzino 4
•Il tornio K22 è installato nell’officina 37
•il TIR 542 viaggia sulla tratta NA-MI

2/20/2017 R Schetini - progettazione E-R 48


Esempi di occorrenze

E1

S1 E2
C1
E3
S2
S3 C2

S4 E4
C3
EsameSuperato
Studente Corso
2/20/2017 R Schetini - progettazione E-R 49
Osservazione importante
Dalla semantica delle relazioni segue immediatamente
che non possono esistere due istanze della stessa
relazione che coinvolgono le stesse istanze di entità.
(S1,C1)

C4
(S2,C2)
S1
C1
S2 (S2,C3)
S3 C2
(S2,C3)

S4 (S3,C3)
C3
EsameSuperato
2/20/2017 R Schetini - progettazione E-R 50
•Due entità possono essere
coinvolte in più relationship

Sede di
lavoro

Impiegato Residenza Città

“Sede di Lavoro” e “Residenza” rappresentano due legami


diversi tra le stesse entità “Impiegato” e “Città”
2/20/2017 R Schetini - progettazione E-R 51
Le relationship possono coinvolgere più di
due entità

Fornitore Fornitura Prodotto

Dipartimento

2/20/2017 R Schetini - progettazione E-R 52


Relazione n-aria a livello estensionale

Fornitura
(F1,D1,P1)
F1 (F3,D2,P3) P1
F2 (F3,D4,P3)

F3 D1 P2

F4 D2 P3
D3
Fornitore
Prodotto
D4

Dipartimento
2/20/2017 R Schetini - progettazione E-R 53
La nozione di attributo di relazione

• Un attributo di relazione è una proprietà locale di una


relazione, di interesse ai fini dell’applicazione

• Un attributo della relazione R tra le entita E1,E2,…,En


modella una proprietà non di E1, non di E2,…, non di
En, ma del legame tra E1,E2,…,En rappresentato da
R

• Un attributo associa ad ogni istanza di relazione un


valore appartenente ad un insieme detto dominio
dell’attributo

2/20/2017 R Schetini - progettazione E-R 54


Sintassi: rappresentazione grafica di
attributo di relazione

Ogni attributo di relazione ha un nome che lo identifica in


modo univoco nell’ambito della relazione, ed è
rappresentato da un cerchio collegato alla relazione a cui
appartiene.

Esempio
Cognome Età Voto Nome Crediti

Studente EsameSuperato Corso

2/20/2017 R Schetini - progettazione E-R 55


Attributi di relazione binaria: livello estensionale

intero
25 19

Voto25
C4
(S2,C2)
S1
C1
(S2,C3)
S2
S3 C2

S4 (S3,C3)
C3
Esame

Studente Corso
2/20/2017 R Schetini - progettazione E-R 56
Relazioni n-arie con attributi
Esempio di relazione n-aria con attributo

Quantità

Fornitore Fornitura Prodotto

Dipartimento

2/20/2017 R Schetini - progettazione E-R 57


Attributi di relazione n-aria: livello estensionale
intero

89 37
Fornitura
(F1,D1,P1)
F1 (F3,D2,P3)
Quantità

F2 (F3,D4,P3) P1
F3 D1 P2

F4 D2 P3
D3 Prodotto
Fornitore
D4

Dipartimento
2/20/2017 R Schetini - progettazione E-R 58
Esercizio 4: un semplice schema
concettuale
Descrivere lo schema concettuale della seguente
realtà:

I docenti hanno un codice fiscale ed una età. I


docenti operano nei corsi di laurea (si dice che
afferiscono ai corsi di laurea). Interessa la data di
afferenza dei docenti ai corsi di laurea. I corsi di
laurea hanno un codice ed un nome, ed
appartengono alle facoltà. Ogni facoltà ha un nome.

2/20/2017 R Schetini - progettazione E-R 59


Esercizio 4: soluzione

CodiceFiscale Età Data Nome Codice

Docente Afferenza CorsoDiLaurea

Appartenenza

Nome
Facoltà

2/20/2017 R Schetini - progettazione E-R 60


Una associazione può coinvolgere “due o piu’ volte”
la stessa entità
(associazione ricorsiva o ad anello)

Conoscenza

Persona

2/20/2017 R Schetini - progettazione E-R 61


associazione ad anello
Conoscenza

Persona

Un’associazione 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
L’associazione conoscenza è simmetrica,
irriflessiva e intransitiva
2/20/2017 R Schetini - progettazione E-R 62
Una relazione può coinvolgere due o più
volte la stessa entità

Successione

Sovrano

Problema: in una istanza di questo schema, data una


coppia che è istanza di “Successione”, non si può individuare
chi è il sovrano predecessore e chi il sovrano successore.
2/20/2017 R Schetini - progettazione E-R 63
Relazioni sulla stessa entità
Nelle relazioni dove una stessa entità è coinvolta più volte è
necessario aggiungere la specifica dei “ruoli”

Successione

Sovrano
Successore Predecessore

2/20/2017 R Schetini - progettazione E-R 64


Esercizio 7: schema concettuale
Descrivere lo schema concettuale della seguente
realtà:
Degli impiegati interessa il codice fiscale, il nome, il
cognome, i dipartimenti ai quali afferiscono (con la
data di afferenza), ed i progetti ai quali partecipano.
Dei progetti interessa il nome, il budget, e la città in
cui hanno luogo le corrispondenti attività. Alcuni
progetti sono parti di altri progetti, e sono detti loro
sottoprogetti. Dei dipartimenti interessa il nome, il
numero di telefono, gli impiegati che li dirigono, e la
città dove è localizzata la sede. Delle città interessa
il nome e la regione.
2/20/2017 R Schetini - progettazione E-R 65
Esercizio 7: soluzione
Nome Cognome Nome Tel
Direzione

Impiegato Dipartimento

Afferenza
CodiceFiscale

Partecipazione Sede
Data
Parte

Sottoprogetto
Progetto
Progetto Luogo Città

Budget Nome Regione Nome


2/20/2017 R Schetini - progettazione E-R 66
Scelta tra entità e attributo
Un concetto verrà modellato come
• una entità
– se le sue istanze sono concettualmente significative
indipendentemente da altre istanze
– se ha o potrà avere delle proprietà indipendenti dagli
altri concetti
– se il concetto è importante nell’applicazione
• un attributo di una entità o relazione
– se le sue istanze non sono concettualmente
significative
– se non ha senso considerare una sua istanza
indipendentemente da altre istanze
– se serve solo a rappresentare una proprietà locale di
un altro concetto
2/20/2017 R Schetini - progettazione E-R 67
Scelta tra entità e attributo

Le scelte possono cambiare durante l’analisi.


Esempio:
Nome Codice CittàNascita

Persona
Interessa anche la regione:
Città diventa una entità

Persona Nascita Città

Nome Codice Nome Regione


2/20/2017 R Schetini - progettazione E-R 68
Scelta tra entità e attributo

Cognome Codice CittàNascita Nome Budget

Persona Dipartimento

Interessa anche la città in


cui ha sede un dipartimento

Persona Nascita Città Sede Dipartimento

Cognome Codice Nome Nome Budget


2/20/2017 R Schetini - progettazione E-R 69
Scelta tra entità e relazione

Un concetto verrà modellato come


• una entità
– se le sue istanze sono concettualmente significative
indipendentemente da altre istanze
– se ha o potrà avere delle proprietà indipendenti dagli
altri concetti
– se ha o potrà avere relazioni con altri concetti
• una relazione
– se le sue istanze non sono concettualmente
significative indipendentemente da altre istanze, cioè
se le sue istanze rappresentano n-ple di altre istanze
– se non ha senso pensare alla partecipazione delle sue
instanze ad altre relazioni
2/20/2017 R Schetini - progettazione E-R 70
Un esempio di schema E-R

2/20/2017 R Schetini - progettazione E-R 71


Entity - Relationship: esempio

•Casa editrice, per il libraio

distributore
titolo autore
nome indirizzo

anno libro pubblicazione Casa editrice

2/20/2017 R Schetini - progettazione E-R 72


Entity - Relationship: esempio

•Calcio: un giocatore gioca in una


squadra

nome allenator ruolo


presidente nome indirizzo
e

squadra composizione giocatore

anno

2/20/2017 R Schetini - progettazione E-R 73


Un esempio di schema E-R

2/20/2017 R Schetini - progettazione E-R 74


Esercizio: Lo zoo
Individuare le entità, gli attributi e le relazioni

•Ogni zoo è diviso in aree diverse a seconda che si tratti di rettili, pesci,
uccelli, scimmie, grandi mammiferi, … Ogni area è dotata di: nome,
indirizzo, dimensione, numero di sezioni.
•Per ogni tipo di animale ci sono informazioni che riguardano:
classificazione zoologica, nome comune (giraffa, elefante, serpente,
tartaruga, …), habitat, alimentazione, ... Per ogni tipo di animale c'è un
diverso veterinario specialista, dipendente dello zoo.
•Ogni tipo di animale è rappresentato da esemplari e relativi dati
anagrafici: nome proprio (giraffa Enrico, giraffa Giulia, ...), data di nascita,
Paese di provenienza, data di arrivo allo zoo, ...
•Ogni esemplare è dotato di piu’ schede sanitarie contenenti ognuna : la
data della visita, referto, dieta, nome del veterinario, ...

2/20/2017 R Schetini - progettazione E-R 75


Esercizio: Lo zoo
Nome indirizzo dimens. Nome indirizzo
sezioni

AREA
composizione ZOO

tipo collocazione Nome Cognome indirizzo

Classificaz.

TIPO ANIMALE assegnazione VETERINARIO


Nome
comune
controllo
esemplare
Data arrivo

ESEMPLARE appartenenza SCHEDA SANITARIA

Nome Datanascita Paese prov data referto dieta

2/20/2017 R Schetini - progettazione E-R 76


IL MODELLO ENTITÀ-RELAZIONE

Gli altri costruttori


Cardinalità delle relazioni

•Coppia di valori che si associa a ogni entità


che partecipa a una relazione

•specificano il numero minimo e massimo di


occorrenze delle relazione cui ciascuna
occorrenza di una entità può partecipare

2/20/2017 R Schetini - progettazione E-R 79


Esempio di cardinalità

Attività
Lavoro lavorativa
(0,n) (1,n)

Persona

(1,1) (1,n)
Nascita Città

2/20/2017 R Schetini - progettazione E-R 80


•per semplicità usiamo solo tre simboli:

•0 e 1 per la cardinalità minima:


– 0 = “partecipazione opzionale”;
– 1 = “partecipazione obbligatoria”

•1 e “N” per la massima:


– “N” non pone alcun limite

2/20/2017 R Schetini - progettazione E-R 81


Occorrenze di Residenza

R1
S1
C1
S2 C2
S3 R2

S4
R3 C3
S5
R4
Studente Città
2/20/2017 R Schetini - progettazione E-R 82
Cardinalità di Residenza

(1,1) (1,N)
Studente Residenza Città

2/20/2017 R Schetini - progettazione E-R 83


Classificazione di relazioni

•Con riferimento alle cardinalità massime,


abbiamo relazioni:
– uno a uno, se le cardinalita’ massime di
entrambe le entita’ sono uno.
– uno a molti,
– molti a molti

2/20/2017 R Schetini - progettazione E-R 84


Relazioni “molti a molti”

(0,N) (0,N)
Studente Esame Corso

(0,N) (1,N)
Montagna Scalata Alpinista

(1,N) (1,N)
Macchinista Abilitazione Locomotore

2/20/2017 R Schetini - progettazione E-R 85


Relazioni “uno a molti”

(0,1) (1,N)
Persona Impiego Azienda

(1,1) (1,N)
Persona Nascita Città

(1,1) (1,N)
Comune Ubicazione Provincia

2/20/2017 R Schetini - progettazione E-R 86


Relazioni “uno a uno”

(0,1) (1,1)
Ordine Vendita Fattura

(1,1) (0,1)
Professore Docenza Corso

(0,1) (1,1)
Impiegato Direzione Progetto

2/20/2017 R Schetini - progettazione E-R 87


Esempio

2/20/2017 R Schetini - progettazione E-R 88


Cardinalità (minima e massima):
definizione
Un vincolo di cardinalità tra una entita’ E e una relazione R
esprime un limite minimo (cardinalita’ minima) ed un limite
massimo (cardinalita’ massima) di istanze della relazione R a cui
può partecipare ogni istanza dell’entità E.
Serve a caratterizzare meglio il significato di una relazione.

Vincolo di cardinalita’

E R

e1 2
e2 1

2/20/2017 R Schetini - progettazione E-R 89


Esempio di vincolo di cardinalità
• Ad ogni impiegato sono assegnati da 1 a 5 progetti
• Ogni progetto è assegnato ad al più 50 impiegati

(1,5) (0,50)
Impiegato Assegnazione Progetto

Istanza dello schema:

Istanze(Impiegato) = { a,b,c }
istanze(Progetto) = { x,y,v,w,z }
istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) }
2/20/2017 R Schetini - progettazione E-R 90
Esempio di vincolo di cardinalità:
cardinalita’ minima di Impiegato in Assegnazione
• Ad ogni impiegato sono assegnati da 1 a 5 progetti
• Ogni progetto è assegnato ad al più 50 impiegati

(1,5) (0,50)
Impiegato Assegnazione Progetto

Istanza:
a,b,c compaionono in almeno
istanze(Impiegato) = { a,b,c } una istanza di Assegnazione
istanze(Progetto) = { x,y,v,w,z }
istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w),
(c,z) }
2/20/2017 R Schetini - progettazione E-R 91
Esempio di vincolo di cardinalità:
cardinalita’ minima di Progetto in Assegnazione
• Ad ogni impiegato sono assegnati da 1 a 5 progetti
• Ogni progetto è assegnato ad al più 50 impiegati

(1,5) (0,50)
Impiegato Assegnazione Progetto

Istanza:
X non compare nelle
istanze(Impiegato) = { a,b,c } istanze di Assegnazione
istanze(Progetto) = { x,y,v,w,z }
istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) }
2/20/2017 R Schetini - progettazione E-R 92
Esempio di vincolo di cardinalità:
cardinalita’ massima di Impiegato in
Assegnazione
• Ad ogni impiegato sono assegnati da 1 a 5 progetti
• Ogni progetto è assegnato ad al più 50 impiegati

(1,5) (0,50)
Impiegato Assegnazione Progetto

2/20/2017 R Schetini - progettazione E-R 93


Esempio di vincolo di cardinalità:
cardinalita’ massima di Progetto in Assegnazione
• Ad ogni impiegato sono assegnati da 1 a 5 incarichi
• Ogni incarico è assegnato al più a 50 impiegati

(1,5) (0,50)
Impiegato Assegnazione Progetto

• Inoltre, ci sono progetti (ad esempio lanciati da poco


tempo) che possono non essere assegnati a nessun
impiegato

2/20/2017 R Schetini - progettazione E-R 94


Cardinalità di attributi

•E’ possibile associare delle cardinalità anche


agli attributi, con due scopi:

– indicare opzionalità
– indicare attributi multivalore

2/20/2017 R Schetini - progettazione E-R 95


Rappresentazione grafica

(0,N) Targa auto

Impiegato Nome

(0,1) Numero patente

2/20/2017 R Schetini - progettazione E-R 96


Esempio

2/20/2017 R Schetini - progettazione E-R 97


Identificatore di una entità

•“strumento” per l’identificazione univoca


delle occorrenze di un’entità
•costituito da:
– attributi dell’entità
– identificatore interno
– (attributi +) entità esterne attraverso
relationship
– identificatore esterno

2/20/2017 R Schetini - progettazione E-R 98


Sintassi dei vincoli di identificazione di entità

• Notazione per gli identificatori interni:


– Se l’dentificatore è formato da un solo attributo, si annerisce il
corrispondente pallino.
– Se l’dentificatore è formato da più attributi, si uniscono gli attributi con
una linea che termina con pallino annerito.

• Notazione per gli identificatori esterni:


– Se l’identificatore è formato da attributi e relazioni (o meglio ruoli), si
indica unendo gli attributi ed i ruoli con una linea che termina con pallino
annerito.

2/20/2017 R Schetini - progettazione E-R 99


Identificatori interni

Targa

Automobile Modello

Data Nascita

Persona Cognome

Nome
Indirizzo
2/20/2017 R Schetini - progettazione E-R 100
Identificatore esterno

Cognome Matricola Nome

(1,1) (0,N)
Studente Iscrizione Università

Anno di corso Indirizzo

2/20/2017 R Schetini - progettazione E-R 101


Alcune osservazioni

•ogni entità deve possedere almeno un


identificatore, ma può averne in generale più di uno

•una identificazione esterna è possibile solo


attraverso una relationship a cui l’entità da
identificare partecipa con cardinalità (1,1)

•perché non parliamo degli identificatori delle


relationship?

2/20/2017 R Schetini - progettazione E-R 102


Cognome (0,1) (1,1) Telefono
Direzione (1,N)

Impiegato Dipartimento
(0,1) (1,N)
Afferenza Nome
Codice (0,N) (1,1)
(0,1) Composizione
Partecipazione
Data
(1,N) (1,N)
Data
Sede
Progetto
Via
Indirizzo Città
Budget Nome
CAP
2/20/2017 R Schetini - progettazione E-R 103
Relazione IS-A (o IS-A) tra entità
• Fino ad ora non abbiamo detto nulla sul fatto se due
entità possano o no avere istanze in comune

• E’ facile verificare che, in molti contesti, può


accadere che tra due classi rappresentate da due
entità nello schema concettuale sussista la relazione
IS-A (o relazione di sottoinsieme), e cioè che ogni
istanza di una sia anche istanza dell’altra. (Es.
Studente, Studente della laurea breve)

• La relazione IS-A nel modello ER si può definire tra


due entità, che si dicono “entità padre” ed “entità
figlia” (o sottoentità, cioè quella che rappresenta un
sottoinsieme della entità padre) (Es Studente e’
entita’ padre di Studente della laurea breve)
2/20/2017 R Schetini - progettazione E-R 104
Sintassi: rappresentazione grafica della
relazione ISA tra entità

La relazione ISA si rappresenta nel diagramma


dello schema concettuale mediante una freccia
dalla sottoentità alla entità padre

Esempio

Persona Si dice che Studente è


in relazione ISA con
Persona, o, in
alternativa, che
Studente ISA Persona
Studente

2/20/2017 R Schetini - progettazione E-R 105


Ereditarietà su entità nel modello ER
Principio di ereditarietà: ogni proprietà dell’entità padre è
anche una proprietà della sottoentità, e non si riporta
esplicitamente nel diagramma. L’entità figlia può avere
ovviamente ulteriori proprietà

Dal fatto che Cognome Età


Cognome,
1. Ogni istanza di Persona
Età ereditati
ha una Età da Persona,
2. Ogni istanza di Studente Persona Matricola
è istanza di Persona ulteriore
segue logicamente che proprietà
3. Ogni istanza di Studente
ha una Età
Studente

Matricola
2/20/2017 R Schetini - progettazione E-R 106
Ereditarietà delle relazioni
Cognome Età Nome Tipo

Persona Pratica Sport

1. Ogni istanza di Persona può essere


Studente coinvolta in un numero qualunque di
istanze della relazione Pratica
Matricola
2. Ogni istanza di Studente è una istanza
di Persona
quindi
3. Ogni istanza di Studente può essere
coinvolta in un numero qualunque di
istanze della relazione Pratica
2/20/2017 R Schetini - progettazione E-R 107
La nozione di generalizzazione tra entità
Finora, abbiamo considerato la relazione ISA che stabilisce
che l’entità padre è più generale della sottoentità. Talvolta,
però, l’entità padre può generalizzare diverse sottoentità
rispetto ad un unico criterio. In questo caso si parla di
generalizzazione.
Nella generalizzazione, le sottoentità hanno insiemi di istanze
disgiunti a coppie (anche se in alcune varianti del modello ER,
si può specificare se due sottoentità della stessa entità padre
sono disgiunte o no).
Una generalizzazione può essere di due tipi:
• Completa: l’unione delle istanze delle sottoentità è
uguale all’insieme delle istanze dell’entità padre
• Non completa
2/20/2017 R Schetini - progettazione E-R 108
Generalizzazione

•mette in relazione una o più entità E1,


E2, ..., En con una entità E, che le
comprende come caso particolare

– E è generalizzazione di E1, E2, ..., En


– E1, E2, ..., En sono specializzazioni (o
sottotipi) di E

2/20/2017 R Schetini - progettazione E-R 109


Sintassi: rappresentazione della generalizzazione

La generalizzazione si indica collegando mediante un arco le


sottoentità, e collegando con una freccia tale arco alla entità
padre. La freccia è annerita se la generalizzazione è
completa.
Esempio
Entità
Generalizzazion padre
e Persona
completa

Sottoentit Sottoentit
à à
Uomo Donna
2/20/2017 R Schetini - progettazione E-R 110
Sintassi: rappresentazione della generalizzazione

La freccia è non è annerita se la generalizzazione non è


completa.

Esempio
Entità
Generalizzazion padre
e Persona
non completa

Sottoentit Sottoentit
à à
Studente Docente
2/20/2017 R Schetini - progettazione E-R 111
Generalizzazioni ed ereditarietà
Il principio di ereditarietà vale anche per le generalizzazioni:
ogni proprietà dell’entità padre è anche una proprietà della
sottoentità, e non si riporta esplicitamente nel diagramma.
L’entità figlia può avere ovviamente ulteriori proprietà.
Cognome Età Nome Regione

Persona Sede Città

Codice

Studente Docente Insegna Corso

Matricola
2/20/2017 R Schetini - progettazione E-R 112
2/20/2017 R Schetini - progettazione E-R 113
Proprietà delle generalizzazioni

Se E (genitore) è generalizzazione di E1, E2,


..., En (figlie):
– ogni proprietà di E è significativa per E1, E2,
..., En
– ogni occorrenza di E1, E2, ..., En è
occorrenza anche di E

2/20/2017 R Schetini - progettazione E-R 114


Città
(0,N)
Nascita Codice
(1,1) fiscale

Persona Nome

Età
Stipendio

Lavoratore Studente

2/20/2017 R Schetini - progettazione E-R 115


Diverse generalizzazioni della stessa classe

La stessa entità può essere padre in diverse


generalizzazioni

Persona

Uomo Donna Impiegato Studente

Concettualmente, non c’è alcuna correlazione tra


due generalizzazioni diverse, perchè rispondono a
due criteri diversi di classificare le istanze della
entità padre
2/20/2017 R Schetini - progettazione E-R 116
Differenza tra due is-a e una generalizzazione

Persona

Uomo Donna Impiegato Sportivo

Le due sottoclassi derivano da Le due sottoentità sono


uno stesso criterio di indipendenti, nel senso che il loro
classificazione significato non deriva dallo stesso
delle istanze della superclasse criterio di classificazione delle
istanze della entità padre
2/20/2017 R Schetini - progettazione E-R 117
Ereditarietà

•tutte le proprietà (attributi, relationship,


altre generalizzazioni) dell’entità genitore
vengono ereditate dalle entità figlie e non
rappresentate esplicitamente

2/20/2017 R Schetini - progettazione E-R 118


Altre proprietà

• possono esistere gerarchie a più livelli e


multiple generalizzazioni allo stesso livello

• un'entità può essere inclusa in più gerarchie,


come genitore e/o come figlia

• se una generalizzazione ha solo un’entità figlia


si parla di sottoinsieme

2/20/2017 R Schetini - progettazione E-R 119


Vincoli non esprimibili nel diagramma ER

• Gli schemi ER permettono di cogliere la maggior


parte delle interrelazioni tra i dati del dominio
d’interesse

• Tuttavia alcune interrelazioni non possono essere


colte direttamente da uno schema ER

• Tali interrelazioni vanno in ogni caso tenute presenti


attraverso delle asserzioni aggiuntive dette vincoli
esterni al diagramma, o semplicemente vincoli
esterni

2/20/2017 R Schetini - progettazione E-R 120


Vincoli non esprimibili nel diagramma ER

• Come rappresentiamo tali vincoli?

• Attraverso formalismi opportuni (es, in


logica matematica)

• Attraverso delle asserzioni in linguaggio


naturale (che devono essere il più possibile
precise e non ambigue)

2/20/2017 R Schetini - progettazione E-R 121


Esempio di schema concettuale ...
Cognome Stipendio (0,1) (1,1) Telefono
Direzione (1,n)
Codice

Impiegato Dipartimento
(0,1) (1,n)
Anzianità
Afferenza Nome
(0,n) (1,1)
(0,1)
Partecipazione Composizione
Data
(1,n)
(1,n)

Sede
Progetto
Via
Indirizzo
Budget Nome Città
2/20/2017
CAP
R Schetini - progettazione E-R 122
… con vincoli esterni

Vincoli di integrità esterni


(1) Il direttore di un dipartimento deve afferire a tale
dipartimento da almeno 5 anni
(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 non può partecipare ad un numero di
progetti maggiore di due volte il numero di
dipartimenti ai quali afferisce

2/20/2017 R Schetini - progettazione E-R 123


Schema E-R che descrive il modello E-R
2/20/2017 R Schetini - progettazione E-R 124
Concetto
– se ha proprietà significative e descrive oggetti con
esistenza autonoma
– entità
– se è semplice e non ha proprietà
– attributo
– se correla due o più concetti
– relazione
– se è caso particolare di un altro
– generalizzazione

2/20/2017 R Schetini - progettazione E-R 125