Vincoli di integrità
Il modello ER fornisce costrutti per definire:
Vincoli di cardinalità
- Per associazioni
- Per attributi
Vincoli di identificazione
Per entità.
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’entità 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.
Esempio
- (0,3) (0,1) VideoCliente 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)
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
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.
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.
Vincoli di cardinalità per associazioni
Un'associazione binaria A tra due entità E1 ed E2 (o unaria con E1 = E2) si dice:
- uno a uno: se c_max di E1 ed E2 rispetto ad A è 1
- uno a molti: se c_max di E1 rispetto ad A è n e c_max di E2 rispetto ad A è 1, oppure c_max di E1 rispetto ad A è 1 e c_max di E2 rispetto ad A è n
- molti a molti: se c_max di E1 ed E2 rispetto ad A è n
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 o 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