L'associazione (in inglese Relationship) descrive eventuali legami concettuali tra una, due o più entità. Per semplicità conviene considerare, per ora, solo le associazioni binarie, cioè quelle che legano solo due entità (che chiameremo prima entità e seconda entità).
Le associazioni possono essere classificate in base a quanti elementi appartenenti ad un'entità sono coinvolte nel legame stabilito con l'altra entità (caratteristica che in alcuni casi è chiamata moltemplicità dell'associazione). In particolare le associazioni possono essere dei seguenti tipi:
legano un solo elemento appartenente alla prima entità con più elementi della seconda entità; inoltre, viceversa, legano un solo elemento della seconda con uno della prima; rivedere a tal proposito l'esempio Gli alunni e le classi
legano un solo elemento appartenente alla prima entità con più elementi della seconda altra entità; viceversa, inoltre, legano un solo elemento della seconda con più elementi della prima;
legano un solo elemento appartenente alla prima entità con quello della seconda entità e viceversa.
Nello schema E-R ogni tipo di associazione viene rappresentato sempre con il classico rombo, quello che cambia è solo l'aspetto del segmento che unisce l'associazione con le entità, ovvero, il rombo con il rettangolo.
Il numero (1 opppure N) vicino ad ogni entità legata all'associazione, indica la molteplicità con cui l'entità è coinvolta nel legame:
quando, nell'associazione, si parla di "molti elementi" non è necessario indicare precisamente quanti siano, basta sapere solo che ce ne sarà più di uno, scrivendo N; |
quando il legame coinvolge un solo elemento, basta scrivere 1. |
In alternativa ai numeri si possono usare degli speciali simboli posti agli estremi dei segmenti, come indicato nell seguente figura.
Oltre alla molteplicità bisogna stabilire se il legame dell'associazione sia obbligatorio oppure opzionale, per esempio: è necessario domandarsi se sia obbligatorio o meno che ogni alunno iscritto all'istituto faccia sempre parte di una classe, oppure, possano esistere nel database alcuni alunni che non appartengano a nessuna classe; inoltre, viceversa, se possano esistere nel database classi che non contengono nessun alunno.
Esempio 2.2. C'è una classe vuota