3.1. Corso di Elementi di Basi di dati Il modello Entita

Transcript

3.1. Corso di Elementi di Basi di dati Il modello Entita
Costrutti fondamentali del modello
Entità-Relazione
3.1. Corso di Elementi di Basi di dati
Il modello Entita’ Relazione (72)
• Entità
• Attributi di entità
• Relazioni
• Attributi di relazione
• IS-A e Generalizzazioni
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 1
Maurizio Lenzerini
Una entità è una classe di oggetti (fatti, persone,
cose) che:
•sono di interesse per l’applicazione,
•hanno esistenza autonoma, e che
•hanno proprietà comuni
Ogni entità ha nome che la identifica in modo univoco nello
schema, ed è rappresentata graficamente da un rettangolo
nel diagramma che descrive lo schema stesso
Esempi:
Esempi:
impiegato
vendita
dipartimento
ordine
città
studente
Basi di Dati
Progettazione concettuale - 2
Rappresentazione grafica di entità
La nozione di entità
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 3
Impiegato
Dipartimento
Città
Acquisto
Maurizio Lenzerini
Entità e istanze d’entità
• Una entità (nello schema concettuale S) denota un
insieme (o classe) di oggetti “simili”
• Una istanza dell’entità (in una istanza di S) denota un
oggetto dell’insieme rappresentato dall’entità
Basi di Dati
Progettazione concettuale - 4
Entità, commenti
• Una entita’ puo’ essere vista come astrazione di
classificazione delle sue istanze.
• Ogni entità ha un nome che la identifica univocamente
nello schema:
– nomi espressivi (es. Impiegato e non Imp o I05)
– opportune convenzioni
Nota: nello schema concettuale rappresentiamo le entità,
non le singole istanze (“astrazione”)
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 5
• singolare
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 6
1
Esempio
Esempio
• Vogliamo rappresentare in uno schema entita’ relazione diversi
aspetti della vita universitaria:
• Gli studenti, suddivisi in due gruppi, quelli della laurea breve e quelli
della laurea specialistica.
• I professori, suddivisi in professori associati e professori ordinari
• Il personale amministrativo ed il personale tecnico
• Come rappresentiamo questi aspetti? Con quanti concetti?
• Non dobbiamo anche rappresentare una entita’ chiamata
Universita’?
Studente
Laurea breve
Studente
Laurea spec.
Professore
associato
Amministrativo
Maurizio Lenzerini
Professore
ordinario
Tecnico
Basi di Dati
Progettazione concettuale - 7
La nozione di attributo di entità
• Un attributo di entità è una proprietà locale di
un’entità, di interesse ai fini dell’applicazione,
cioe’ una proprieta’ il cui valore in ogni istanza
della entita’ dipende solamente dall’istanza della
entita’, e non da altri elementi dello schema
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 8
Rappresentazione grafica di attributo
Ogni attributo di entità ha nome che lo identifica in modo
univoco nell’ambito della entità, ed è rappresentato da un
cerchio collegato alla entità a cui appartiene.
Esempi:
Cognome Età Stipendio
Impiegato
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 9
Maurizio Lenzerini
Entita’ e attributi
Basi di Dati
Progettazione concettuale - 10
Esempio
• Ogni entita’ puo esser vista come astrazione di
aggregazione dei suoi attributi
Cognome Età Stipendio
• Se nel nostro schema universita’ vogliamo rappresentare per gli
studenti il nome, cognome, matricola, data di nascita e comune di
residenza, come facciamo?
Studente
Laurea breve
Nome
Cognome
Data nascita
Comune residenza
Impiegato
Studente
Laurea spec.
Nome
Cognome
Data nascita
Comune residenza
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 11
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 12
2
Esempio
La nozione di relazione
• Potremmo rappresentare la stessa realta’ con una sola entita’? Se si,
come?
Nome
Cognome
Data nascita
Studente
Laurea breve
Comune residenza
Nome
Cognome
Data nascita
Studente
Laurea spec.
Esempi
Comune residenza
Maurizio Lenzerini
Residenza (tra Persona e Città)
Nome
Cognome
Data nascita
Studente
universitario
Una relazione (o associazione) si definisce su due o
più entità, e rappresenta un legame fra tali entità.
Il numero di entità coinvolte in una relazione
determina il suo grado
Afferenza (tra Impiegato e Dipartimento)
Comune residenza
Tipo laurea
Basi di Dati
Progettazione concettuale - 13
Maurizio Lenzerini
Basi di Dati
Sintassi: rappresentazione grafica di
relazione
Ogni relazione ha un nome che la identifica in modo
univoco nello schema, ed è rappresentata nel diagramma
che descrive lo schema da un rombo collegato alle entità
sulle quali è definita la relazione
Progettazione concettuale - 14
Notazione
• Nel libro di Atzeni et al. le relazioni sono chiamate
relationship (per non confonderle con le relazioni nel
modello relazionale)
Esempio di relazione di grado 2 (relazione binaria):
Cognome
Nome
Età
Studente
Maurizio Lenzerini
Crediti
Corso
EsameSuperato
Basi di Dati
Progettazione concettuale - 15
Maurizio Lenzerini
Basi di Dati
Relazione a livello di istanze
(S1,C1)
C4
Progettazione concettuale - 16
Relazione, commenti
• Una relazione puo’ essere vista come astrazione di
aggregazione delle entita’ su cui e’ definita.
(S2,C2)
S1
C1
S2
Cognome
(S2,C3)
S3
S4
(S3,C3)
Nome
Età
Crediti
C2
C3
Studente
EsameSuperato
Corso
EsameSuperato
Corso
Studente
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 17
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 18
3
Due entità possono essere coinvolte in più relazioni
Relazione, commenti
Esempio:
• Ogni relationship ha un nome che la identifica
univocamente nello schema:
– nomi espressivi
– opportune convenzioni
• singolare
• sostantivi invece che verbi (se possibile)
Sede di
lavoro
Impiegato
Residenza
Città
“Sede di Lavoro” e “Residenza” rappresentano due legami
diversi tra le stesse entità “Impiegato” e “Città”
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 19
Esercizio
Maurizio Lenzerini
Basi di Dati
Corso
Progettazione concettuale - 21
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à
Studente
Maurizio Lenzerini
Voto
EsameSuperato
Basi di Dati
Progettazione concettuale - 20
• 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
Frequentato
In passato
Frequenta
Basi di Dati
La nozione di attributo di relazione
Come possiamo rappresentare, tra studenti e corsi, i due legami logici
di corso che frequenta quest’anno e corso frequentato negli anni scorsi ?
Studente
Maurizio Lenzerini
Nome
Crediti
Corso
Progettazione concettuale - 23
• Un attributo e’ una funzione che associa ad ogni
istanza di relazione un valore appartenente ad un
insieme detto dominio dell’attributo
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 22
Esercizio 1: 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 l’
afferenza dei docenti ai corsi di laurea, con la
relativa data di inizio. I corsi di laurea hanno un
codice ed un nome, ed appartengono alle facoltà.
Ogni facoltà ha un nome.
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 24
4
Esercizio 1: soluzione
Scelta delle entita’
Nome
CodiceFiscale Età
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 l’
afferenza dei docenti ai corsi di laurea, con la
relativa data di inizio. I corsi di laurea hanno un
codice ed un nome, ed appartengono alle facoltà.
Ogni facoltà ha un nome e un preside.
Docente
Codice
CorsoDiLaurea
Nome
Facoltà
Preside
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 25
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 26
Esercizio 1: soluzione
Scelta delle relazioni
CodiceFiscale Età
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 l’
afferenza dei docenti ai corsi di laurea, con la
Docente
relativa data di inizio. I corsi di laurea hanno un
codice ed un nome, ed appartengono alle facoltà.
Ogni facoltà ha un nome e un preside.
Nome
Data
Afferenza
Basi di Dati
Progettazione concettuale - 27
CorsoDiLaurea
Appartenenza
Nome
Preside
Maurizio Lenzerini
Codice
Maurizio Lenzerini
Esercizio 2: schema concettuale
Basi di Dati
Facoltà
Progettazione concettuale - 28
Troviamo le entita’
Descrivere lo schema concettuale della seguente
realtà:
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à. 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.
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à. 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.
Maurizio Lenzerini
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 29
Basi di Dati
Progettazione concettuale - 30
5
Esercizio 2: soluzione
Esercizio 2: schema concettuale
Impiegati - 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.
Progetti - Dei progetti interessa il nome, il budget, e
la città in cui hanno luogo le corrispondenti attività.
Nome Cognome
Impiegato
Basi di Dati
Progettazione concettuale - 31
Dipartimento
CodiceFiscale
Dipartimenti - Dei dipartimenti interessa il nome, il
numero di telefono, gli impiegati che li dirigono, e la
città dove è localizzata la sede.
Citta’ - Delle città interessa il nome e la regione.
Maurizio Lenzerini
Nome Tel
Progetto
Progetto
Budget
Città
Nome
Maurizio Lenzerini
Progettazione concettuale - 32
Esercizio 2: soluzione
Troviamo le relazioni
Impiegati - 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.
Progetti - Dei progetti interessa il nome, il budget, e
la città in cui hanno luogo le corrispondenti attività.
Nome Cognome
Nome Tel
Direzione
Impiegato
Dipartimento
Afferenza
CodiceFiscale
Sede
Partecipazione
Dipartimenti - Dei dipartimenti interessa il nome, il
numero di telefono, gli impiegati che li dirigono, e la
città dove è localizzata la sede.
Citta’ - Delle città interessa il nome e la regione.
Maurizio Lenzerini
Basi di Dati
Nome
Regione
Basi di Dati
Progettazione concettuale - 33
Progetto
Progetto
Budget
Data
Luogo
Nome
Maurizio Lenzerini
Città
Regione
Basi di Dati
Nome
Progettazione concettuale - 34
Scelta tra entità e attributo
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 in futuro 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 (Eta’ = 25 ha
esistenza indipendente?)
– se serve solo a rappresentare una proprietà locale
di un altro concetto
Le scelte possono cambiare durante l’analisi. Esempio:
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 35
Nome Codice CittàNascita
Persona
Interessa anche la regione:
Città diventa una entità
Persona
Nome
Maurizio Lenzerini
Nascita
Città
Nome
Codice
Basi di Dati
Regione
Progettazione concettuale - 36
6
Scelta tra entità e attributo
Scelta tra entità e relazione
Le scelte possono cambiare durante l’analisi. Esempio:
Cognome Codice CittàNascita
Nome
Persona
Budget
Dipartimento
Interessa anche la città in
cui ha sede un dipartimento
Persona
Nascita
Cognome Codice
Maurizio Lenzerini
Città
Nome
Basi di Dati
Sede
Dipartimento
Nome Budget
Progettazione concettuale - 37
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 insiemi di altre
istanze
– se non ha senso pensare alla partecipazione delle sue
instanze ad altre relazioni
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 38
Relazione ISA tra entità
• Fino ad ora non abbiamo detto nulla sul fatto se due
entità possano o no avere istanze in comune
Relazione (o legame) Is-A (o ISA)
tra entita’
• E’ facile verificare che, in molti contesti, può
accadere che tra due classi rappresentate da due
entità nello schema concettuale sussista la relazione
ISA (o relazione di sottoinsieme), e cioè che ogni
istanza di una sia anche istanza dell’altra. (Es.
Studente, Studente della laurea breve)
• La relazione ISA 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)
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 39
Sintassi: rappresentazione grafica della
relazione ISA tra entità
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 40
Sintassi: regole sulla relazione ISA tra
entità
La relazione ISA si rappresenta nel diagramma
dello schema concettuale mediante una freccia
dalla sottoentità alla entità padre
ATTENZIONE: vige la regola che una entità può
avere al massimo una entità padre. In altre parole,
il modello ER non ammette ereditarietà multipla
Esempio
Esempio
Persona
Si dice che Studente è
in relazione ISA con
Persona, o, in
alternativa, che
Studente ISA Persona
Studente
StudenteLavoratore
Studente
Maurizio Lenzerini
Basi di Dati
Lavoratore
Progettazione concettuale - 41
Maurizio Lenzerini
Basi di Dati
Questo schema è
scorretto!
Progettazione concettuale - 42
7
Ereditarietà su entità nel modello ER
Principio di ereditarietà: ogni proprietà dell’entità padre
(attributo, relazione, ecc.) è anche una proprietà della
sottoentità, e non si riporta esplicitamente nel diagramma.
L’entità figlia può avere ovviamente ulteriori proprietà
Dal fatto che
1. Ogni istanza di Persona
ha una Età
2. Ogni istanza di Studente
è istanza di Persona
segue logicamente che
3. Ogni istanza di Studente
ha una Età
Cognome
Età
Cognome,
Età ereditati
da Persona,
Matricola
ulteriore
proprietà
Persona
Studente
Ereditarietà della relazione ISA:
transitività
Principio di ereditarietà: anche la relazione ISA si eredita.
Questo conferma che la relazione ISA è transitiva (oltre a
essere rieflessiva)
Cognome
Dal fatto che
1. Ogni istanza di Studente è
una istanza di Persona
2. Ogni istanza diFuoriCorso
è una istanza di Studente
segue logicamente che
3. Ogni istanza di FuoriCorso
è una istanza di Persona
Età
Persona
Matricola
Studente
AnnoFC
FuoriCorso
Matricola
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 43
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 44
Generalizzazione tra entità
Generalizzazione tra entita’
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 45
Rappresentazione della generalizzazione
La generalizzazione si indica collegando mediante un arco le
sottoentità, e collegando con una freccia tale arco alla entità
padre.
Esempio
Entità
padre
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.
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 46
Tipi di eneralizzazione tra entità
Una generalizzazione può essere di due tipi:
• Completa: l’unione delle istanze delle
sottoentità è uguale all’insieme delle
istanze dell’entità padre
• Non completa
Persona
Sottoentità
Sottoentità
Uomo
Maurizio Lenzerini
Donna
Basi di Dati
Progettazione concettuale - 47
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 48
8
Esempio di generalizzazione completa
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
Generalizzazione
completa
Entità
padre
Sottoentità
Uomo
Maurizio Lenzerini
Progettazione concettuale - 49
Nome
Sede
Persona
Sottoentità
Sottoentità
Maurizio Lenzerini
Docente
Basi di Dati
Progettazione concettuale - 50
Esercizio 3: relazione ISA e generalizzazioni
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à.
Età
Entità
padre
Studente
Generalizzazioni ed ereditarietà
Persona
Esempio
Donna
Basi di Dati
Cognome
La freccia è non è annerita se la generalizzazione non è
completa.
Generalizzazione
non completa
Persona
Sottoentità
Esempio di generalizzazione non completa
Regione
CodFisc
CodFisc
Studente
Salario
Matricola
Esenzione
Città
Lavoratore
StudenteLavoratore
Questo schema è
scorretto
Codice
Studente
Docente
Insegna
Corso
Si può ristrutturare lo schema in modo che lo schema
risultante sia corretto, e colga sostanzialmente lo stesso
significato?
Matricola
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 51
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 52
Esercizio 3: soluzione 2
Esercizio 3: soluzione 1
CodFisc
CodFisc
StudenteOLavoratore
StudenteOLavoratore
StudenteNonLav
Matricola
StudenteLavoratore
Matricola
Esenzione Salario
LavoratoreNonSt
Basi di Dati
Progettazione concettuale - 53
Salario
Matricola
Salario
Ogni eventuale sottoentità di Studente si spezzerà in una sottoentità di
StudenteNonLav ed una sottoentità di StudenteLavoratore. Analogamente,
ogni sottoentità di Lavoratore si spezzerà in una sottoentità di
LavoratoreNonSt ed una sottoentità di StudenteLavoratore
Maurizio Lenzerini
Studente
Esenzione
StudenteLavoratore
Salario
Maurizio Lenzerini
Basi di Dati
LavoratoreNonSt
Ogni eventuale sottoentità di
Lavoratore si spezzerà in una
sottoentità di LavoratoreNonSt
ed una sottoentità di
StudenteLavoratore
Progettazione concettuale - 54
9
Diverse generalizzazioni della stessa classe
Esercizio 3: soluzione 3
CodFisc
StudenteOLavoratore
La stessa entità può essere padre in diverse
generalizzazioni
Persona
Lavoratore
Matricola
Salario
Ogni eventuale sottoentità di
Studente si spezzerà in una
sottoentità di StudenteNonLav
ed una sottoentità di
LavoratoreStudente
Esenzione
LavoratoreStudente
Matricola
Maurizio Lenzerini
StudenteNonLav
Basi di Dati
Progettazione concettuale - 55
Uomo
Donna
Studente
Impiegato
Concettualmente, non c’è alcuna correlazione tra due
generalizzazioni diverse, perchè rispondono a due
criteri diversi di classificare le istanze della entità
padre
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 56
Differenza tra due isa e una generalizzazione
Persona
Uomo
Donna
Impiegato
Le due sottoclassi derivano da
uno stesso criterio di classificazione
delle istanze della superclasse
Maurizio Lenzerini
Cardinalita’ delle entita’
nelle relazioni
Sportivo
Le due sottoentità sono indipendenti,
nel senso che il loro significato non
deriva dallo stesso criterio di
classificazione delle istanze della
entità padre
Basi di Dati
Progettazione concettuale - 57
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 58
Esempio di vincolo di cardinalità
Cardinalità
Un vincolo di cardinalità tra una entita’ E e una
relazione R impone 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.
• Ad ogni impiegato sono assegnati da 1 a 5 incarichi
• Ogni incarico è assegnato ad al più 50 impiegati
(1,5)
Impiegato
(0,50)
Assegnazione
Incarico
Istanza:
istanze(Impiegato) = { a,b,c }
istanze(Incarico) = { x,y,v,w,z }
istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) }
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 59
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 60
10
Esempio di vincolo di cardinalità:
cardinalita’ minima
Esempio di vincolo di cardinalità:
cardinalita’ minima
• Ad ogni impiegato sono assegnati da 1 a 5 incarichi
• Ogni incarico è assegnato ad al più 50 impiegati
• Ad ogni impiegato sono assegnati da 1 a 5 incarichi
• Ogni incarico è assegnato ad al più 50 impiegati
(1,5)
Impiegato
(0,50)
(1,5)
Incarico
Assegnazione
Istanza:
Impiegato
(0,50)
Incarico
Assegnazione
Istanza:
istanze(Impiegato) = { a,b,c }
a,b,c compaionono in almeno
una istanza di Assegnazione
istanze(Impiegato) = { a,b,c }
X non compare nelle
istanze di assegnazione
istanze(Incarico) = { x,y,v,w,z }
istanze(Incarico) = { x,y,v,w,z }
istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) }
istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) }
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 61
Maurizio Lenzerini
Basi di Dati
Progettazione concettuale - 62
Esempio di vincolo di cardinalità:
cardinalita’ massima
Esempio di vincolo di cardinalità:
cardinalita’ massima
• Ad ogni impiegato sono assegnati da 1 a 5 incarichi
• Ogni incarico è assegnato ad al più 50 impiegati
• Ad ogni impiegato sono assegnati da 1 a 5 incarichi
• Ogni incarico è assegnato ad al più 50 impiegati
(1,5)
Impiegato
(0,50)
Assegnazione
Maurizio Lenzerini
Basi di Dati
(1,5)
Incarico
Progettazione concettuale - 63
Cardinalità maggiormente utilizzate
• Le cardinalità di interesse sono tipicamente tre: 0, 1, n.
• Per la cardinalità minima:
•
0 significa “partecipazione opzionale”
•
1 significa “partecipazione obbligatoria”
(1,5)
Impiegato
Impiegato
Assegnazione
Maurizio Lenzerini
Basi di Dati
Incarico
Progettazione concettuale - 64
Cardinalità maggiormente utilizzate
• Le cardinalità di interesse sono tipicamente tre: 0, 1, n.
• Per la cardinalità massima:
•
1 significa: “l’entità partecipa al più una volta sola
alla relazione”
•
n significa: “l’entità partecipa un numero qualsiasi
di volte alla relazione”
Nuovo esempio (diverso dal precedente)
(0,50)
Assegnazione
Incarico
(1,1)
Impiegato
Maurizio Lenzerini
(0,50)
Basi di Dati
Progettazione concettuale - 65
Maurizio Lenzerini
(0,n)
Assegnazione
Basi di Dati
Incarico
Progettazione concettuale - 66
11
Cardinalità maggiormente utilizzate
• La non presenza del vincolo di cardinalità è
equivalente alla coppia (0,n)
Esempi di vincolo di cardinalità
Studente
(0,1)
(0,n)
(1,1)
Impiegato
Assegnazione
Incarico
Studente
Studente
Basi di Dati
Progettazione concettuale - 67
(0,n)
Basi di Dati
(0,1)
Ordine
• Con riferimento alle cardinalità massime, si dice anche,a
seconda dei valori possibili delle cardinalita’ massime
che le relazioni binarie possono essere di tipo:
– uno a uno Æ cardinalita’ massime <1 e 1>
– uno a molti Æ cardinalita’ massime <1 e n>
– molti a molti Æ cardinalita’ massime <n e n>
Professore
(1,1)
(0,1)
Maurizio Lenzerini
(1,1)
Persona
Studente
Città
Montagna
Maurizio Lenzerini
(1,n)
Ubicazione
Basi di Dati
Direzione
Progetto
Basi di Dati
Progettazione concettuale - 70
Provincia
Macchinista
(0,n)
Corso
Esame
(0,n)
(1,n)
Scalata
Alpinista
(1,n)
(1,1)
Comune
Corso
(1,1)
(0,n)
Azienda
(0,n)
Nascita
(0,1)
Relazioni binarie “molti a molti”
(1,n)
Impiego
Fattura
Docenza
(0,1)
Relazioni binarie “uno a molti”
Persona
(1,1)
Vendita
Impiegato
Progettazione concettuale - 69
Progettazione concettuale - 68
Relazioni binarie “uno a uno”
• Discutiamo la cardinalità massime sulle relazioni binarie
Basi di Dati
Città
Residenza
Maurizio Lenzerini
Classificazione di relazioni binarie
Maurizio Lenzerini
Città
Residenza
(1,1)
Maurizio Lenzerini
Città
Residenza
Progettazione concettuale - 71
Maurizio Lenzerini
(1,n)
Abilitazione
Basi di Dati
Locomotore
Progettazione concettuale - 72
12

Documenti analoghi

ER e UML

ER e UML Esercizio 5: schema concettuale Descrivere lo schema concettuale della seguente

Dettagli

Basi di dati - Materiale Didattico Informatica

Basi di dati - Materiale Didattico Informatica CORSI(Corso, Docente, Aula) AULE(Nome, Edificio, Piano) – l’istanza, costituita dai valori attuali, che possono cambiare molto e rapidamente (aspetto estensionale); nell’esempio, il “corpo” di cias...

Dettagli

Basi di dati - Classe dei corsi di laurea in Fisica

Basi di dati - Classe dei corsi di laurea in Fisica • A livello estensionale una relazione R tra le entità E ed F è costituita da un insieme di coppie (x,y), tali che x è una istanza di E, ed y è una istanza di F. Ogni coppia è detta istanza della r...

Dettagli