Relazioni
• Relazione: Associazione o legame logico
esistente tra due o più entità
Socio
Prenota
Campo
Grado di una relazione
• Grado di una relazione: numero di entità
partecipanti
Socio
Fornitore
Prenota
Fornitura
Beneficiario
Campo
Prodotto
Grado=2
Grado=3
Relazioni ricorsive
• Una entità può essere in relazione con se
stessa. In tal caso si utilizzano
esplicitamente nomi di ruolo per chiarire la
partecipazione
L’entità impiegato partecipa alla relazione
sovrintende sia nel ruolo di responsabile che in
quello di subordinato.
»
»
»
Impiegato
sovrintende
responsabile
subordinato
Un esempio di progetto
•
•
1.
2.
3.
4.
Vogliamo progettare il modello E-R per un database di una
azienda.
Supponiamo di aver raccolto ed analizzato i requisiti in una fase
precedente. I principali requisiti sono qui elencati:
L’azienda è organizzata in dipartimenti. Ogni dipartimento ha un
identificativo e un nome univoco; un impiegato gestisce il
dipartimento. Il dipartimento può avere più sedi dislocate sul
territorio.
Un dipartimento gestisce un numero variabile di attività
identificabili univocamente; ciascuna attività ha inoltre un nome e
si svolge in un unico luogo.
Per ciascun impiegato si desidera tenere traccia di varie
informazioni anagrafiche. Si desidera tenere traccia dei rapporti
gerarchici del personale. Da un punto di vista organizzativo
ciascun impiegato è assegnato ad un dip. Può lavorare su vari
progetti, non necessariamente gestiti dal suo dipartimento
E’ necessario inoltre tenere traccia dei famigliari di ciascun
dipendente per motivi fiscali.
Lo schema E-R del database aziendale
N
Nome
Stip
1
Ndip
Lavora_in
Nome_Dip
Sedi
Cognome
Impiegato
Data_n
Dipartimento
1
1
Dirige
CF
Indirizzo
età
Resp.
Sovrintende
1
Subord.
N
Data_ini
1
N
1
Lavora_su
Controlla
M
N
imparentato
N
Ore_lav
Progetto
Famigliare
Sede
Nprog
Nome_Prog
Nome Sesso
N_data Grado_p
Vincoli strutturali sulle relazioni
•
•
Le relazioni possono avere vincoli che limitano le
combinazioni delle entità partecipanti.
I vincoli dipendono dal contesto, cioè dalla realtà che la
relazione rappresenta.
1. Cardinalità: specifica il numero di istanze di
relazione cui le istanze di entità possono
partecipare.
2. Partecipazione:specifica se l’esistenza di una
istanze di entità dipende dal suo essere in
relazione con un’altra istanze di entità.
Cardinalità
E1
E1
E1
Le cardinalità vengono espresse normalmente
come 1:1, 1:N, M:N.
• 1:1(uno a uno), alla relazione partecipa una
singola istanze di entità per ciascuna delle 2
E2
entità partecipanti
• 1:N(uno a molti), alla relazione possono
partecipare, per una singola istanze di entità di
una delle entità partecipanti, svariate istanze
dell’altra entità.
E2
• M:N(molti a molti), vale anche il viceversa della
precedente definizione
E2
In un Dipartimento Cardinalità:
possono lavorare
svariati impiegati
N
1 Impiegato Lavora
in 1 solo
Dipartimento
1
Ndip
Lavora_in
Nome
1 impiegato
dirige 1 dip.
Cognome
Stip
Impiegato
Data_n
Dipartimento
1
1
Nome_Dip
Dirige
CF
Indirizzo
età
Resp.
Sovrintende
1
Subord.
N
1
Data_ini
1
N
Lavora_su
Controlla
M
N
imparentato
Ad 1 progetto
possono lavorare
svariati impiegati
N
Ore_lav
Progetto
Famigliare
Nprog
Nome_Prog
1 impiegato può
Nome Sesso N_data Grado_p
lavorare su vari
progetti
Sede
Partecipazione
• Si considerano due tipi di
partecipazione: totale e parziale.
– Partecipazione totale -> dipendenza esistenziale.
Ogni occorrenza di entità partecipa alla relazione
Es.: I requisiti dichiarano che un progetto (una
Dipartimento
occorrenza della entità Progetto) deve essere gestito
da un dipartimento, altrimenti non ha senso che
1
Controlla
esista.
– Partecipazione parziale -> Una occorrenza di entità
N
può partecipare alla relazione.
Progetto
Es.: Un impiegato può essere direttore di un
dipartimento, ma non necessariamente.
Linea spessa:
partecipazione
totale
Osservazioni sulla notazione
• Esistono notazioni alternative per la
rappresentazione dei vincoli.
• Si possono rappresentare per ogni entità il numero
minimo e massimo di entità partecipanti.
N.b. (min=0 partecipazione parziale, min >0
Dipartimento partecipazione totale).
(0,N)
Controlla
(1,1)
Progetto
Relazioni con grado > 2
• Possono esistere relazioni ternarie (>3 molto
improbabili).
• Molti sistemi reali non consentono di “mappare”
relazioni con grado > 2. E’ pertanto necessario
rappresentare la relazione ternaria utilizzando
relazioni binarie.
• Questa operazione però può causare perdita di
informazione se non condotta con attenzione.
Relazioni con grado > 2
F_nome
Quantità
Fornitore Fornitura
Beneficiario
B_nome
Id_prod
Prodotto
Id_prod
F_nome
Fornitore
Quantità
N
1
FF
N
SP
Fornitura
N
1
1
FB
Beneficiario
B_nome
Prodotto
Gerarchie ISA
• Rappresentano legami logici tra una entità E (padre) e
una o più entità E1, E2, ..,EN (figli). Il padre è più
generale dei figli che sono considerabili specializzazioni.
ISA : IS-A -> “è un” Es.: Un liceale è uno studente; un
universitario è uno studente.
Impiegato
Costo_orario
Contrattista
ISA
Stip_annuo
Dipendente
Gerarchie ISA
• Generalizzazione totale  ogni occorrenza della classe
padre è una occorrenza di almeno una delle figlie
• Generalizzazione esclusiva  ogni occorrenza della classe
padre è al più una sola occorrenza di una classe figlia
Persona
Parziale e
Persona
Totale ed
sovrapposta
esclusiva
ISA
ISA
Lavoratore
Studente
Uomo
Studente
lavoratore
Donna
Considerazioni sul modello E-R
• Va costruito dopo una adeguata attività di raccolta di
requisiti.
• Consente una descrizione ad alto livello dei dati.
• Aiuta a chiarire ulteriormente i requisiti
• Consente di esplicitare numerosi vincoli
• E’ soggettivo: numerose scelte sono possibili e vanno
adeguatamente ponderate.
• Se costruito in modo adeguato consente la mappatura
immediata nel modello logico relazionale. N.b. E’
comunque necessario procedere a raffinamenti e
verifiche (normalizzazione).
Progettazione concettuale
• Riorganizzare tutti gli elementi per definire un
modello astratto della base di dati.
• Il modello è un documento ufficiale
– di riferimento per i committenti
– di comunicazione verso i progettisti della fase
successiva di progettazione logica.
Astrazione
• Procedimento mentale che permette di
– evidenziare alcune proprietà (significative)
– escluderne altre (non rilevanti)
• Astrazione per
– classificazione
– aggregazione
– generalizzazione
Astrazione per classificazione
• Vengono individuate proprietà comuni in
un insieme di oggetti, esistenti nella realtà.
• Il risultato è una classe di oggetti; ciascun
oggetto è detto istanza o esemplare.
Astrazione per aggregazione
• A partire da una o più classi si genera una
nuova classe.
• Le classi di partenza diventano componenti o
proprietà della nuova classe.
• Differenze:
– Classificazione: si parte da un elenco di oggetti
– Aggregazione: si parte da un elenco di classi
– In entrambi i casi si arriva a produrre una nuova
classe.
Aggregazione debole/stretta
• Debole: gli elementi costitutivi e l’entità principale hanno
vita propria ed esistono individualmente.
Esempio: gli elementi di un computer come il
processore, la memoria e il disco fisso possono esistere
indipendentemente dalla loro presenza all’interno di un
computer. In questo caso la relazione tra questi elementi
è lasca.
• Stretta: gli oggetti costitutivi non hanno vita propria, ma
solo come elementi dell’entità contenitore.
Esempio: l’entità Persona e l’entità CartaDiIdentità. Una
carta di identità svincolata da una persona fisica non ha
senso, quindi l’aggregazione tra questi due elementi è di
tipo stretto.
Aggregazione per
generalizzazione
• Una classe è definita come unione di un
insieme di classi.
• Le generalizzazioni possono essere di due
tipi:
– Totale/Parziale. Quando ogni occorrenza
dell’entità padre è un’occorrenza di almeno una
delle entità figlie, la generalizzazione è
considerata totale, altrimenti è parziale.
– Esclusiva/Sovrapposta. Quando ogni occorrenza
dell’entità padre è al massimo un’occorrenza di
una delle entità figlie, altrimenti è sovrapposta.
Generalizzazioni
• Per esempio: l’entità Persona è una
generalizzazione delle entità Uomo e
Donna
• Per esempio: Professionista è una
generalizzazione delle entità Ingegnere,
Medico e Avvocato
• Vice versa: Uomo e Donna sono
specializzazioni dell’entità Persone, …
22
Generalizzazione: un
esempio
Persone
generalizzazione
uomini
donne
Generalizzazioni
•
Generalizzazioni: rappresentano legami logici
tra una entità E e una o più entità E1,…,En
– E: padre
– E1,…,En: figli
– E è più generale rispetto a E1,…,En, nel senso che le
comprende come caso particolare
– E è generalizzazione di E1,…,En
– E1,…,En sono specializzazioni dell’entità E
24
Generalizzazioni
• Ogni istanza di una entità figlia è anche
un’ istanza dell’entità padre
– Per esempio: un’ istanza dell’entità Avvocato
è anche un’ istanza dell’entità Professionista
25
Generalizzazioni
•
Ogni proprietà dell’entità padre (attributi,
identificatori, relazioni e altre generalizzazioni) è
anche una proprietà delle entità figlie
– Per esempio: se l’entità Persona ha attributi Cognome
ed Età, anche le entità Uomo e Donna possiedono
questi attributi
– Per esempio: l’identificatore di Persona è un
identificatore valido anche per le entità Uomo e
Donna (ereditarietà)
26
Generalizzazioni
• Per entità figlie, le proprietà ereditate non
vanno rappresentate esplicitamente
Codice fiscale
Cognome
Persona
Età
Uomo
Donna
Situazione
militare
27
Generalizzazioni
•
classificazioni per le generalizzazioni:
–
–
–
Una generalizzazione è totale se ogni occorrenza della classe
padre è una occorrenza di almeno una delle entità figlie,
altrimenti è parziale
La generalizzazione tra Persona e le entità Uomo e Donna è
totale
La generalizzazione tra Veicolo e le entità Automobile e
Bicicletta e parziale
Veicolo
Automobile
Bicicletta
28
Generalizzazioni
• classificazioni per le generalizzazioni:
– Una generalizzazione è esclusiva se ogni
occorrenza della classe padre è al più una
occorrenza di una delle entità figlie, altrimenti
è sovrapposta
– La generalizzazione tra Veicolo e le entità
Automobile e Bicicletta è esclusiva
– La generalizzazione tra persona e le entità
Studente e Lavoratore è sovrapposta
29
Generalizzazioni
• Le generalizzazioni sovrapposte possono
essere trasformate in generalizzazioni
esclusive
– Aggiungere una o più entità figlie, per
rappresentare i concetti che costituiscono le
“intersezioni” delle entità che si
sovrappongono
– Per esempio: aggiungere l’entità
StudenteLavoratore
30
Generalizzazioni
• Una stessa entità può essere coinvolta in
più generalizzazione diverse
• Posso esserci generalizzazioni su più
livelli (una gerarchia)
31
Gerarchie ISA
• Astrazioni per generalizzazione
• Gerarchie ISA (is a) (è un)
Un esempio
Modello Entità-Relazione
Costrutto
Numero
Nome
Generalizzazione
Costrutto
base
Nome
(0,N)
(1,1)
Appartenenza
(0,1)
Composizione
(1,1)
(1,N)
Figlia
Padre
(0,N)
(1,N)
Entità
Cardinalità
minima
Attributo Cardinalità
massima
Attributo
composto
Relazione
(0,N)
(0,N)
Cardinalità
massima
Partecipazione
(2,N)
Cardinalità
minima
34
Lo schema E-R del database aziendale
N
Nome
Stip
1
Ndip
Lavora_in
Nome_Dip
Sedi
Cognome
Impiegato
Data_n
Dipartimento
1
1
Dirige
CF
Indirizzo
età
Resp.
Sovrintende
1
Subord.
N
Data_ini
1
N
1
Lavora_su
Controlla
M
N
imparentato
N
Ore_lav
Progetto
Famigliare
Sede
Nprog
Nome_Prog
Nome Sesso
N_data Grado_p
Cardinalità e identificatori
(0,1)
Codice
(1,1)
Direzione
Cognome
Stipendio
(1,N)
Impiegato
(0,1)
(0,N)
Età
Afferenza
Data
afferenza
Partecipazione
Nome
Budget
(0,1)
Data consegna
(1,N)
(1,N)
Telefono
Dipartimento
(1,1)
Nome
Composizione
Data inizio
(1,N)
Città
Progetto
Sede
Indirizzo
Numero
civico
Via
CAP
36
Fine
Informatica
Introduzione alle basi di dati
Modello Entità-Relazione
• Attributi:
– Descrivono le proprietà elementari di entità o
relazioni che sono di interesse ai fini
dell’applicazione
– Per esempio:
• Cognome, Stipendio e Età sono possibili attributi
dell’entità Impiegato
• Data e Voto sono possibili attributi della relazione
Esame tra Studente e Corso
39
Modello Entità-Relazione
• Attributi:
– Un attributo associa a ciascuna occorrenza di
entità o di relazione un valore appartenente a
il dominio del attributo
• Dominio: i valori ammissibili per l’attributo
40
Modello Entità-Relazione
• Attributi:
Voto
Data esame
Matricola
Studente
Anno di
iscrizione
Nome
Esame
Corso
Anno di
corso
41
Modello Entità-Relazione
• Attributi composti:
– Può risulta comodo raggruppare attributi che
presentano affinità nel loro significato e uso
– L’insieme di attributi che si ottiene in questa
maniera viene detto attributo composto
42
Modello Entità-Relazione
• Attributi composti:
– Per esempio: raggruppare Via, Numero civico
e CAP per formare l’attributo composto
Indirizzo
Nome
Età
Persona
Sesso
Via
Indirizzo
Numero civico
CAP
43
Modello Entità-Relazione
Direzione
Codice
Cognome
Stipendio
Telefono
Impiegato
Afferenza
Dipartimento
Nome
Data
afferenza
Età
Partecipazione
Nome
Budget
Composizione
Data inizio
Città
Progetto
Sede
Indirizzo
Data consegna
Numero
civico
Via
CAP
44
Altri costrutti: cardinalità
• Cardinalità:
– Vengono specificate per ciascuna
partecipazione di entità a una relazione
– Descrivono il numero minimo e massimo di
occorrenze di relazione cui una occorrenza
dell’entità può partecipare
• Cioè: quante volte, in una relazione tra entità,
un’occorrenza di una di queste entità può essere
legata a occorrenze delle altre entità coinvolte
45
Altri costrutti: cardinalità
•
Cardinalità:
– Per esempio: relazione Assegnamento tra le entità
Impiegato e Incarico
– Impiegato (nel contesto della relazione
Assegnamento): cardinalità minima=1, massima=5
• Un impiegato può partecipare a un minimo di una occorrenza
e a un massimo di cinque occorrenze della relazione
Assegnamento
Impiegato
(1,5)
Assegnamento
(0,50)
Incarico
46
Altri costrutti: cardinalità
•
Cardinalità:
– Incarico (nel contesto della relazione
Assegnamento): cardinalità minima=0, massima=50
• Un certo incarico può partecipare o a nessuna occorrenza
oppure a 50 occorrenza al massimo della relazione
Assegnamento
• Cioè: un certo incarico può non essere assegnato a
nessun impiegato oppure può essere assegnato a un
numero di impiegati <=50
Impiegato
(1,5)
Assegnamento
(0,50)
Incarico
47
Altri costrutti: cardinalità
• Nella maggiore parte dei casi, è sufficiente
utilizzare solo tre valore:
– Zero
– Uno
– Il simbolo N: indica genericamente un intero
maggiore di uno
48
Altri costrutti: cardinalità
• Cardinalità massima - esempio 3:
Turista
(1,N)
Prenotazione
(0,N)
Viaggio
– Cardinalità massima pari a N per entrambe le
entità coinvolte
– Relazione molti a molti
49
Altri costrutti: cardinalità
• Cardinalità minima:
– Zero: la partecipazione dell’entità relativa è
opzionale
– Uno: la partecipazione dell’entità relativa è
obbligatoria
50
Altri costrutti: cardinalità
• Cardinalità massima:
– Uno: la partecipazione dell’entità relativa
associa a una occorrenza dell’entità una sola
occorrenza (o nessuna) dell’altra entità che
partecipa alla relazione
– Molti: c’è una associazione con un numero
arbitrario di occorrenze dell’altra entità
51
Altri costrutti: cardinalità
• Cardinalità massima - esempio 1:
Persona
(1,1)
Residenza
(0,N)
Città
– Ogni persona può essere residente in una e
una sola città
– Ogni città può non avere residente oppure ha
molti residenti
– Relazione uno a molti
52
Altri costrutti: cardinalità
• Cardinalità massima - esempio 2:
Ordine
(0,1)
Vendita
(1,1)
Fattura
– Cardinalità massima pari a uno per entrambe
le entità coinvolte: definisce una
corrispondenza uno a uno tra le occorrenze di
tali entità
– Relazione uno a uno
53
Altri costrutti: cardinalità
• Cardinalità minime: partecipazione
obbligatoria per tutte le entità coinvolte è
raro
– Perché quando si aggiunge una nuova
occorrenza di entità, spesso non sono note (o
non esistono) le corrispondenti occorrenze
delle entità a essa collegate
54
Altri costrutti: cardinalità
• Cardinalità degli attributi:
– Possono essere specificate per gli attributi di
entità o relazioni
– Descrivono il numero minimo e massimo di
valori dell’attributo associati a ogni occorrenza
di entità o relazione
– Nella maggior parte dei casi, la cardinalità di
un attributo è (1,1) (e viene omessa)
55
Altri costrutti: cardinalità
•
Cardinalità degli attributi:
– Il valore per un certo attributo può essere nullo:
minimo della cardinalità=0
– Possono esistere diversi valori di un certo attributo
per una occorrenza: massimo della cardinalità=N
(0,N) Targa automobile
Persona
Cognome
(0,1)
Numero patente
56
Altri costrutti: cardinalità
• Cardinalità degli attributi:
– Cardinalità minima=0: l’attributo è opzionale
(l’informazione potrebbe essere non
disponibile)
– Cardinalità minima=1: l’attributo è obbligatorio
– Cardinalità massima=N: l’attributo è
multivalore
57
Altri costrutti: identificatori delle entità
• Identificatori delle entità:
– Descrivono i concetti (attributi e/o entità) che
permettono di identificare univocamente le
occorrenza delle entità
– In molti casi, uno o più attributi di una entità
sono sufficienti a individuare un identificatore
• Un identificatore interno (o chiave)
58
Altri costrutti: identificatori delle entità
• Identificatori delle entità:
– Per esempio: non possono esistere due
automobili con la stessa targa
– Targa può essere un identificatore interno per
l’entità Automobile
Targa
Automobile
Modello
Colore
59
Altri costrutti: identificatori delle entità
• Identificatori delle entità:
– L’entità Persona con gli attributi Nome,
Cognome, Indirizzo e Data di nascita
– Un identificatore interno per Persona può
essere Nome, Cognome e Data di nascita
Data di nascita
Persona
Cognome
Nome
Indirizzo
60
Altri costrutti: identificatori delle entità
• Identificatori delle entità:
– Alcune volte gli attributi di una entità non sono
sufficienti a identificare univocamente le sue
occorrenze
Matricola
Anno
iscrizione
Cognome
Nome
Studente
Università
Iscrizione
(1,1)
(1,N)
Città
Indirizzo
61
Altri costrutti: identificatori delle entità
•
Identificatori delle entità:
– Due studenti iscritti a università diverse possono
avere lo stesso numero di matricola
– Per identificare univocamente uno studente serve,
oltre al numero di matricola, anche la relativa
università
Matricola
Anno
iscrizione
Cognome
Nome
Studente
Università
Iscrizione
(1,1)
(1,N)
Città
Indirizzo
62
Altri costrutti: identificatori delle entità
•
Identificatori delle entità:
– Un identificatore corretto per l’entità studente è
costituito dall’attributo Matricola e dall’entità
Università
– Questa identificazione è resa possibile dalla relazione
Iscrizione tra Studente e Università
Matricola
Anno
iscrizione
Cognome
Nome
Studente
Università
Iscrizione
(1,1)
(1,N)
Città
Indirizzo
63
Altri costrutti: identificatori delle entità
• Identificatori delle entità:
– Una entità E può essere identificata da altre
entità solo se tali entità sono coinvolte in una
relazione cui E partecipa con cardinalità (1,1)
– Identificatore esterno: quando l’identificazione
di una entità è ottenuta utlizzando altre entità
64
Altri costrutti: identificatori delle entità
•
Identificatori delle entità: considerazione generali
– Un identificatore può coinvolgere uno o più attributi,
ognuno dei quali deve avere cardinalità (1,1)
– Una identificazione esterna può coinvolgere una o più
entita, ognuna delle quali deve essere membro di una
relazione alla quale l’entità da identificare partecipa
con cardinalità (1,1)
65
Altri costrutti: identificatori delle entità
• Identificatori delle entità: considerazione
generali
– Una identificazione esterna può coinvolgere
una entità che è a sua volta identificata
esternamente, purché non vengano generati
cicli di identificazione esterne
– Ogni entità deve avere almeno un
identificatore, ma ne avere in generale più di
uno
66
Cardinalità e identificatori
(0,1)
Codice
(1,1)
Direzione
Cognome
Stipendio
(1,N)
Impiegato
(0,1)
(0,N)
Età
Afferenza
Data
afferenza
Partecipazione
Nome
Budget
(0,1)
Data consegna
(1,N)
(1,N)
Telefono
Dipartimento
(1,1)
Nome
Composizione
Data inizio
(1,N)
Città
Progetto
Sede
Indirizzo
Numero
civico
Via
CAP
67
Fine
Scarica

Generalizzazione