Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
PROGETTAZIONE CONCETTUALE
Modello entità-relazione (ER)
Modello concettuale di dati utilizzato per i database, diviso in:
- Livello intensionale => schema concettuale, ne descrive la struttura (tabelle)
- Livello estensionale => istanze dello schema (tuple che compongono la tabella)
Entità
Una entità è una classe di oggetti con esistenza autonoma e proprietà comuni.
Semantica: Dato uno schema S in cui è definita un entità E, in ogni istanza I dello
schema S è associato un insieme di oggetti {e1, e2, e3, … } detto estensione di E nella
istanza I dello schema S (istanze(I,E))
Sintassi:
Attributo di entità
Un attributo di entità è una proprietà locale dell’entità, associa ad ogni sua istanza un
valore appartenente ad un insieme, detto dominio dell’attributo.
Semantica: data I istanza di uno schema S dove A è un attributo dell'entità E su un
istanze(I,A), istanze(I,E),
dominio D, è un insieme di coppie (x,y) tali che x è in y è in D, ed
istanze(I,A) istanze(I,E).
esiste una ed una sola coppia in per ogni x in
A : istanze(I, E ) → D
Ovvero
Sintassi:
ATTENZIONE attributo è una funzione totale, quindi ad ogni entità deve essere associato
1 ed un solo valore del dominio 6
OSS l’attributo può anche essere definito su un
dominio complesso e quindi diventare composto
Relazione
Rappresenta un legame tra due o più entità su cui è definita, il numero di entità coinvolte
nella relazione ne determina il grado.
Semantica: Dato uno schema S in cui è definita una relazione R sulle entità E e F, in ogni
istanza I di S, alla relazione R è associato un insieme di coppie {(x , y ), (x , y ), (x , y ), …}
1 1 2 2 3 3
istanze(I,R).
detto estensione di R nella istanza I dello schema S
istanze(I, R) ⊆ istanze(I, E ) x istanze(I, F )
Ovvero: istanze(I, R) ⊆ istanze(I, E ) x . . . x istanze(I, E )
Nella versione n-aria diventa: 1 n
ATTENZIONE quindi non possono esistere 2 istanze di R che coinvolgono le stesse
istanze di entità (tutte le coppie riferite alla stessa relazione sono diverse)
Sintassi:
Attributo di relazione
Un attributo di relazione è una proprietà locale della relazione, ovvero rappresenta un
attributo appartenente al legame tra le relazioni ma non alle relazioni stesse, questo
avviene associando ad ogni istanza di relazione un valore appartenente ad un insieme
detto dominio dell’attributo.
Semantica: data I istanza dello schema S dove A è un attributo della relazione R sul
istanze(I,A) istanze(I,R),
dominio D, è un insieme di coppie (x,y) tale che x è in y è in D, ed
istanze(I,A) istanze(I,R).
esiste una ed una sola coppia in per ogni x in
A : istanze(I, R) → D
Ovvero
Sintassi:
ATTENZIONE l’attributo non è parte intrinseca della natura della relazione e quindi non
può distinguerne le istanze (serve reificazione) 7
La reificazione
Consiste nel trasformare una relazione in una entità, così facendo è possibile trasformare
il semplice attributo di relazione in un elemento in grado di distinguere le istanze.
Così non si hanno più 2 coppie uguali ma una tripla comprendente l’attributo reificato.
Il ruolo
Serve nel caso di relazione che coinvolge più volte le stesse entità, permette di
specificare quale ruolo ha ogni istanza nella relazione.
Semantica: In ogni istanza I dello schema S, una relazione R tra le entità E , E , …, E
1 2 n
(non necessariamente tutte distinte) con rispettivi ruoli U , U , …, U (tutti distinti) è
1 2 n
istanze(I,R)
costituita da un insieme in cui ogni elemento è una n-pla etichettata
istanze(I,E
(U :x , U :x , …, U :x ) tale che ogni x appartiene a ), con i da 1 a n.
1 1 2 2 n n i i
Sintassi:
Relazione ISA
Relazione di sottoinsieme, cioè si ha un “entità figlia” nella quale ogni istanza è anche
istanza di “entità padre”, essa è quindi un sottoinsieme del padre ed eredita tutte le sue
proprietà: attributi, partecipazioni in relazioni e vincoli.
Entità figlia inoltre aggiunge a queste istanze nuovi elementi.
ATTENZIONE ogni entità può avere al massimo un entità padre (no ereditarietà multipla),
al contrario però ogni entità può avere più entità figlie, le quali possono avere anche
istanze in comune in comune. Inoltre vale proprietà di trasitività. ⊆
Semantica: istanze(I,E istanze(I,E
in ogni istanza I dello schema S con E ISA E : ) )
1 2 1 2
Sintassi: 8
Generalizzazioni
Altra relazione di sottoinsieme, questa volta però generalizza diverse sottoentità rispetto
un unico criterio, quindi le sottoentità hanno insieme di istanze disgiunti a coppie.
Similmente ad ISA esistono quindi un “entità padre” e più “entità figlia” sottoinsieme di
essa che eredita tutte le istanze con rispettivi: attributi, partecipazioni in relazioni e vincoli.
ATTENZIONE anche in questo caso ogni entità può avere al massimo un entità padre
(no ereditarietà multipla)
Possono essere di 2 tipi:
- Generalizzazione completa => l’unione dell’insieme delle sottoentità è uguale
all’insieme delle istanze dell'entità padre
- Generalizzazione non completa => esistono istanze che non appartengono a
nessuna delle sottoentità
Semantica: in uno schema S in cui è definita una generalizzazione tra un entità padre F e
⊆
istanze(I,E istanze(I,F)
le sottoentità E , E , …, E , in ogni istanza I di S si ha: ) e inoltre
1 2 n i
∩ ∅ 1 ≤ i, k ≥ n, i ≠ k
istanze(I,E istanze(I,E
) ) = , per ogni .
i k ∪ ∪
istanze(I,E istanze(I,E istanze(I,F)
Con generalizzazione completa vale anche: ) … ) =
1 n
Sintassi:
OSS quindi la differenza con le ISA sta nel fatto che nelle generalizzazioni non si possono
avere istanze in comune tra le sottoentità.
Extra
1. Uso corretto di generalizzazione al posto di ISA
2. Differenza tra entità basate su stesso criterio ed indipendenti 9
ISA e generalizzazioni tra relazioni
Gli stessi concetti si possono applicare anche sulle relazioni, nel caso ISA o
generalizzazione tra una relazione figlia R ed una relazione padre Qbisogna però tener
conto di alcune condizioni:
- Entrambe le relazioni hanno lo stesso grado
- Entrambe le relazioni hanno gli stessi ruoli
- Per ogni ruolo U, l'entità corrispondete ad U in R è un entità figlia dell’entità
corrispondente ad U in quel ruolo
Sintassi v1 (relazioni in ISA su stesse entità):
Sintassi v2 (relazioni in ISA su diverse entità):
ATTNZIONE la relazione in ISA può definirsi solo su entità che a loro volta sono in ISA con
entità in relazione con la sua relazione padre, inoltre è importante specificare che
entrambe hanno lo stesso ruolo di partecipazione
Sintassi v3 (generalizzazione di entità): 10
Vincoli di integrità modello ER
Regole che si esprimono nello schema e devono essere rispettate da ogni istanza
Vincoli di cardinalità sulle relazioni
Determina quante volte ogni istanza di un entità può partecipare ad una relazione in un
determinato ruolo, ovvero quante volte l'istanza dell'entità può comparire nella stessa
istanza della relazione.
Semantica: dato uno schema S in cui è definito un vincolo di cardinalità (x,y) associato
ad un ruolo U (corrispondente ad un entità E) in una relazione R, allora in ogni istanza di I
istanze(I,E),
nello schema S, per ogni e in il numero di istanze di R che in I hanno e come
x ≤ numero istanze ≤ y
componente nel ruolo U è:
Sintassi: Ogni impiegato può avere da 1 fino a 5 incarichi
Ogni incarico può essere assegnato fino a 50 volte
OSS mancanza del vincolo esplicito implica (0,n)
ATTENZIONE nel caso di ISA tra entità l'entità figlia eredita anche il vincolo, nel caso si
voglia modificarlo questo può essere solo più ristretto.
Vincoli di cardinalità sugli attributi
Di base gli attributi hanno cardinalità implicita (1,1), è possibile modificarla per avere:
- Opzionalità (valore può non essere presente, NULL)
- Attributi multivalore
Semantica: dato uno schema S su cui è definito un attributo A in n entità E , E , …, E ,
1 2 n
rispettivamente con domini D , D , …, D , e con cardinalità (x , y ), (x , y ), … (x , y ), in
1 2 n 1 1 2 2 1 n
ogni istanza I di S, A è una relazione del tipo:
⊆ ∪ ∪ ∪
∪
istanze(I,A) istanze(I,E
(istanze(I,E ) … )) x D , (D … D )
1 n 1 2 n
∈ istanze(I,E istanze(I,A)
e tale che, per ogni i vale: se a ), allora il numero di coppie (a,b) in
i ∈ ∈
istanze(I,A),
è soggetto ad i vincoli di cardinalità (x , y ), e per ogni (a,b) si ha che b D
i i i
OSS nel caso in cui due entità dovessero avere lo stesso attributo questo farebbe parte
dello stesso dominio, quindi se non sono disgiunte deve corrispondere in entrambe
Sintassi: 11
Vincoli di identificazione di identità
Insieme di proprietà (attributi e/o relazioni) che permettono di identificare univocamente le
istanze di un entità, ovvero non esistono 2 istanze dell'entità che hanno lo stesso valore
per tutte le proprietà che compongono l’identificatore, possono essere di 2 tipi:
- Interno => formato solo da attributi dell'entità
- Esterno => formato da ruoli nelle relazioni ed eventuali attributi (id debole)
ATTENZIONE ogni attributo e ruolo deve avere cardinalità (1,1)
Semantica: dato uno schema S in cui è definito un vincolo di identificazione che
specifica un identificatore per l’entità E formato dagli attributi A , A , …, A e/o dalle
1 2 n
relazioni relazioni R (U ), R (U ), …, R (U ) (tutti con cardinalità (1,1)), allora in ogni istanza
1 1 2 2 n n istanze(I,E),
I di S, prese due istanze qualunque e ed e in esse differiscono almeno in un
1 2
valore A o almeno nella partecipazione con ruolo U in una R
i i i
OSS gli identificatori di una sola entità possono essere molteplici.
Sintassi v1 (vincoli interni):
Sintassi v2 (vincoli esterni):
Extra
Se un entità E ha un
identificatore (1,1) su una
relazione ed almeno un altra
entit&a