Lez 7: Le relazioni nel diagramma ER
In un DBMS Relazionale i dati che descrivono una entità, i suoi attributi, sono raggruppati in un forma tabellare, ma cosa succede quando dobbiamo mettere in relazione più entità?
Introduciamo tre diverse tipologie di relazioni possibili:
- Uno a Molti
- Molti a Molti
- Uno ad Uno
La progettazione ER passa per tre punti principali:
- Individuazione delle entità;
- Individuazione degli attributi relativi ad ogni entità;
- Strutturazione delle relazioni tra le entità;
Vediamo con degli esempi come vengono esplicitati.
Uno a Molti
Immaginiamo di ricevere la seguente richiesta:
Si richiede lo sviluppo di un DataBase in grado di gestire i dati relativi ai clienti e le carte fedeltà di un franchising con molte filiali.
Di ogni cliente si vuole tener traccia di nome, cognome ed indirizzo email, ogni carta fedeltà è caratterizzata da un numero, ed il negozio in cui è stata attivata.
Iniziamo con l’individuazione delle entità e posizioniamole sul diagramma vuoto:
- Cliente
- Carta Fedeltà
Una volta individuate le entità esplicitiamone gli attributi:
Completato l’inserimento degli attributi dobbiamo esplicitare la relazione che intercorre tra cliente e carta fedeltà individuando un verbo che possa essere letto in entrambi i sensi. Ovviamente scegliamo un primo verso di lettura e molto probabilmente cambiando il verso questo verbo otterrà una forma riflessiva.
Prendendo come punto di partenza della relazione il cliente, il verbo che descrive meglio la relazione è possiede, questo nel diagramma ER ha come simbolo rappresentativo un rombo che si frappone tra le entità che va ad unire.
Una volta stabilito il verbo della relazione, percorriamola nel senso prestabilito ponendo una freccia che unisce l’entità di partenza con la relazione.
Il numero di test (triangoli indicatori) della freccia, sta ad indicare che “il cliente possiede una o più carte fedeltà”. Questa tipologia di freccia indica quindi la presenza di una molteplicità rispetto all’entità di destinazione.
Questa relazione quindi indica che il cliente possiede una o più carte fedeltà ma non prevede la presenza in DataBase di un cliente che non possiede alcuna carta. Per rendere opzionale l’associazione, e quindi il possesso, di una o più carte fedeltà, introduciamo un elemento grafico sulla freccia della relazione che può essere letto come “può”.
Il diagramma aggiornato potrà essere letto quindi come “il cliente può possedere una o più carte fedeltà”, specificando che può averne una, più di una oppure nessuna.
Il diagramma a questo punto può essere letto da sinistra verso destra ma non al contrario perché è incompleto. Esplicitiamo ora la relazione che intercorre tra carta fedeltà e cliente.
Il diagramma, partendo dalla carta fedeltà può essere letto come “una carta fedeltà è posseduta da un cliente”.
Possiamo facilmente dedurre che il la testa singola della freccia indica che la relazione è con un solo elemento dell’altra entità e l’assenza di della barra verticale sulla relazione indica che non c’è opzionalità nella relazione, quindi non esiste una carta fedeltà senza cliente che la possiede.
Il diagramma a questo punto è completo e notiamo subito dei punti fondamentali per la sua lettura e comprensione:
- Per la lettura di un diagramma si parte sempre dal singolare (motivo per cui l’entità è nominata al singolare).
- La relazione è espressa da un verbo che nella maggior parte delle volte viene letto in forma normale in un verso e nel verso opposto assume un valore riflessivo.
- La relazione è una freccia che parte da un’entità e va sempre verso il rombo della relazione.
- La molteplicità viene esplicitata dal numero di teste della freccia, due per una relazione multipla, una per una singola.
- L’opzionalità della relazione tra un’à e l’altra può essere espressa con una barra verticale che “interrompe” la relazione.