Vincoli di integrità
Il modello ER fornisce costrutti per definire:
Vincoli di cardinalità, sia per associazioni
1. che per attributi
Vincoli di identificazione, per entità
2. 24
Vincoli di cardinalità per associazioni
Cardinalità minima:
Numero minimo di istanze di un’associazione a cui le
istanze delle entità coinvolte nell’associazione possono
partecipare
Cardinalità massima:
Numero massimo di istanze di un’associazione a cui le
istanze delle entità coinvolte nell’associazione possono
partecipare
Graficamente, data un’entita E ed un’associazione A
la cardinalità minima e massima di E rispetto ad A si
indica tramite la coppia (c_min,c_max) sulla linea
che congiunge E ad A 25
Esempio
(0,3) (0,1) Video
Cliente Noleggia
Un cliente può:
Non avere in noleggio video (c_min = 0)
Averne contemporaneamente in noleggio non più di 3
(c_max = 3)
Un video può:
Non essere correntemente in noleggio (c_min = 0)
Essere noleggiato da non più di un cliente
contemporaneamente (c_max = 1) 26
Vincoli di cardinalità per associazioni
Valori più comuni:
c_min: 0, 1
c_max: n, ovvero qualunque intero > 1
Data un’entità E ed un'associazione A:
c_min=0 esistono istanze di E che non
⇒
partecipano ad alcuna istanza di A, la
partecipazione di E ad A è opzionale
c_min=1 ogni istanza di E partecipa almeno ad
⇒
una istanza di A, la partecipazione di E ad A è
obbligatoria 27
Vincoli di cardinalità per associazioni
Data un’entità E ed un'associazione A:
c_max=1 ogni istanza di E può partecipare a non più di
⇒
una istanza di A
c_max=c_min=1 ogni istanza di E partecipa ad una ed
⇒
una sola istanza di A
c_max=n non esiste limite al numero massimo di
⇒
istanze di A a cui ogni istanza di E può partecipare
c_min=0, c_max=n ogni istanza di E può partecipare ad
⇒
un numero qualsiasi di istanze di A, anche nessuna
Se in un diagramma ER si omettono i vincoli di
cardinalità per le associazioni, si assume (0,n) come
valore di default 28
Vincoli di cardinalità per associazioni
Esempio:
(0,n)
(1,1)
Video Contiene Film
c_min di Video rispetto a Contiene è 1: ogni video contiene
almeno un film
c_min di Film rispetto a Contiene è 0: possono esistere
film in catalogo per cui al momento non sono presenti
video
c_max di Video rispetto a Contiene è 1: ogni video
contiene al più un film
c_max di Film rispetto a Contiene è n: ogni film può essere
contenuto in un numero arbitrario di video 29
Vincoli di cardinalità per associazioni
Un'associazione binaria A tra due entità E ed
1
E (o unaria con E = E ) si dice:
2 1 2
uno a uno: se c_max di E ed E rispetto ad A è 1
1 2
uno a molti: se c_max di E rispetto ad A è n e
1
c_max di E rispetto ad A è 1, oppure c_max di E
2 1
rispetto ad A è 1 e c_max di E rispetto ad A è n
2
molti a molti: se c_max di E ed E rispetto ad A è n
1 2 30
Vincoli di cardinalità per attributi
Numero minimo (c_min) e massimo (c_max) di
valori dell'attributo che possono essere associati ad
un'istanza della corrispondente associazione od
entità
Nei diagrammi ER si indicano\ mediante la coppia
(c_min,c_max) sulla linea che congiunge l'attributo
all'associazione/
-
Gestione dati e archivi - progettazione logica 2
-
Gestione dati e archivi - progettazione concettuale 3/esempio di progettazione concettuale
-
Gestione dati e archivi - esempio progettazione concettuale
-
Gestione dati e archivi - progettazione concettuale 1