2. Premessa
La gestione dati in una applicazione viene
affrontata a vari livelli:
• modello concettuale (nella specifica);
• modello logico (nel progetto);
• modello fisico (nell’implementazione).
In genere le applicazioni si appoggiano a
strutture di gestione dei dati
preconfezionate.
2
3. Diagramma Entità/Relazioni (ER)
Il diagramma ER rappresenta una descrizione
concettuale dei dati che costituiscono un
sistema informativo e delle relazioni logiche
esistenti tra tali dati. Esso è costituito da:
• entità;
• attributi;
• relazioni tra entità;
• attributi sulle relazioni;
• cardinalità dell’entità sulla relazione.
3
4. Entità
È la classe di oggetti appartenenti alla realtà
e che si vogliono rappresentare nel
sistema. La sua rappresentazione grafica
risulta essere:
ENTITÀ
4
5. Attributi
Ad ogni entità è associato un insieme di attributi
che caratterizzano i singoli elementi dell’entità.
Tra gli attributi gioca un ruolo importante un
particolare attributo, chiamato chiave, che
permette di identificare univocamente ogni
elemento dell’insieme di dati considerato.
Vengono rappresentati nel seguente modo:
ATTRIBUTO CHIAVE
ATTRIBUTO
ENTITÀ ATTRIBUTO LISTA
ATTRIBUTO COMPOSTO
5
6. Relazioni tra entità
Rappresentano l’associazione tra due o più entità.
Le relazioni binarie che legano un’entità a se
stessa sono dette relazioni ad anello o ricorsive;
per distinguere il ruolo che l’entità gioca nella
relazione, questi sono specificati tramite
etichette poste sui due rami della relazione. La
rappresentazione grafica risulta essere:
RELAZIONE
ENTITÀ ENTITÀ
6
7. Attributi sulle relazioni
Rappresentano proprietà legate
all’associazione tra entità. Vengono
rappresentate nel seguente modo:
RELAZIONE
ENTITÀ ENTITÀ
ATTRIBUTO SULLA
RELAZIONE 7
8. Cardinalità dell’entità sulla
relazione
Sulla relazione, e vicino ad un’entità A,
definisce il numero minimo (m) ed il
numero massimo (M) di entità B che
possono essere collegate. La
rappresentazione grafica è presto fatta:
RELAZIONE
ENTITÀ ENTITÀ
B(m,M) A(m,M)
8
9. Funzionalità di una relazione
Il modello ER fornisce una descrizione più
aderente alla realtà se si pongono dei
vincoli sul numero di volte in cui un
elemento di entità può partecipare ad una
relazione, o in altre parole sul numero di
tuple distinte alle quali esso può
appartenere. Si parla perciò di funzionalità
di una relazione.
9
11. Generalizzazione: proprietà
• Ogni occorrenza di un’entità figlia è anche
un’occorrenza dell’entità padre
• Ogni proprietà dell’entità padre (attributi,
identificatori, relationship, altre
generalizzazioni) è anche una proprietà di
ogni entità figlia (ereditarietà)
• Un’entità può essere coinvolta in più
generalizzazioni diverse
11
12. Generalizzazione: proprietà
Caratteristiche ortogonali:
• generalizzazione totale se ogni
occorrenza dell’entità padre è
un’occorrenza di almeno una delle entità
figlie, parziale altrimenti;
• esclusiva se ogni ocorrenza dell’entità
padre è al più un’occorrenza di una delle
entità figlie, sovrapposta altrimenti.
12
13. Generalizzazione: esempi
Persona Persona
Uomo Donna Studente Lavoratore
Totale ed esclusiva Parziale e sovrapposta
Studente
Uomo Donna Né studente Sia studente
né lavoratore sia lavoratore
13
Lavoratore
14. Generalizzazione: esempi
Personale Cittadino
Dipendente Esterno Cacciatore Pescatore
Totale ed esclusiva Parziale e sovrapposta
Pescatore
Dipendente Esterno Né cacciatore Sia
né pescatore cacciatore sia
pescatore
14
Cacciatore
15. Generalizzazione: esempi
Parziale: possono esistere esterni generici che
non sono né legali, né ingegneri, né economisti
ma non interessa una sottoclasse ad hoc.
Esterno
(p,e)
Legale Ingegnere Economista
15
16. Generalizzazione: esempi
Sovrapposta: possono esistere ingegneri con
competenze di meccanica, elettronica e
logistica. Le tre qualifiche non si escludono.
Ingegnere
(p,s)
Logistico Meccanico Elettronico
16
18. Sottoinsieme
Caso particolare di generalizzazione con una sola entità
figlia. La generalizzazione è sempre parziale ed
esclusiva.
ENTITÀ
ENTITÀ
18
19. Esempio finale ER
ANNI
RUOLO CORRENTE
CODICE
NOME (11,N) (1,N)
SQUADRA GIOCATORE
CITTA’
HA MILITATO IN
(1,1)
PUNTEGGIO
APPARTENENZA
CODICE
NOME
RUOLO IDEALE
STAGIONE
(1,N)
NOME
SERIE
19