Progettazione concettuale: modello ER
Il modello ER (ER = Entity-Relationship, Entità-Associazione) è lo standard per la progettazione concettuale di una base di dati.
In esso hanno particolare rilievo i concetti di entità, associazione, attributo.
- Un’entità rappresenta una classe di oggetti (es. automobili, impiegati, studenti) o di fatti (es. conti correnti, corsi universitari). Ogni entità è caratterizzata da un nome. Ecco un esempio di rappresentazione grafica di un’entità:

- Un’associazione è un’aggregazione di due o più entità. Ogni associazione è caratterizzata da un nome. Ecco un esempio di rappresentazione grafica di un’associazione (binaria, ovvero che collega due entità):

- Un attributo è una caratteristica di un’entità o di un’associazione. Ogni attributo è caratterizzato da un nome. Ecco degli esempi di rappresentazione grafica di attributi:
Attributi legati a un’entità:

Attributo legato a un’associazione:

Ecco un esempio di un diagramma ER (non completo!) per un sistema informativo dedito alla gestione di dati riguardanti un’università:

Nota bene: il diagramma ER qui sopra è incompleto. Mancano le cardinalità delle associazioni, gli attributi, gli identificatori… Tutti concetti che approfondiremo tra poco.
Associazioni
Cardinalità di un’associazione
La cardinalità di un’associazione è un vincolo sul numero di entità coinvolte in un’associazione.
Nota bene: bisogna definire la cardinalità di un’associazione per ciascuna entità legata a tale associazione.
La cardinalità è definita dalla coppia (cardinalità minima, cardinalità massima).
La cardinalità minima può assumere i valori:
0per indicare un’associazione opzionale1per indicare un’associazione obbligatoria
La cardinalità massima può assumere i valori 1 (uno), N (molti). In base alla sola cardinalità massima, si distinguono:
Associazioni 1:1 (uno a uno)
Un esempio di associazione uno a uno:

- un reparto deve essere diretto da uno e un solo direttore (1,1)
- un direttore deve dirigere uno ed un solo reparto (1,1)
Un esempio di associazione uno a uno, con opzionalità:

- un reparto può essere diretto da uno e uno solo direttore (0,1)
- un direttore deve dirigere uno ed un solo reparto (1,1)
Associazioni 1:N (uno a molti)

- un ripiano può contenere molti oggetti (0,n)
- un oggetto può essere contenuto al più su un ripiano (0,1)
Associazioni N:M (molti a molti)

- un progetto può essere fatto da molti ingegneri (0,n)
- un ingegnere deve partecipare ad uno o più progetti (1,m)
Associazione ternaria
Un’associazione ternaria è un associazione che lega tre entità.
Pur essendo lecito creare associazioni ternarie in un diagramma ER, vedremo che l’esistenza di tali associazioni può complicare la successiva progettazione dello schema logico. Per questo, molto spesso si preferisce evitare la creazione di associazioni ternarie già nella fase di progettazione concettuale.
Ecco un esempio di associazione ternaria:

Ecco un altro esempio di diagramma ER, che considera la cardinalità delle associazioni:

Nota bene: il diagramma ER qui sopra è ancora incompleto, nonostante l’aggiunta delle cardinalità delle associazioni.
Attributi
Cardinalità degli attributi
In base a quanti valori possono essere assunti da un attributo, esso può essere:
- un attributo scalare o attributo semplice: quando l’attributo contiene uno e un solo valore (es. matricola, cognome, voto). Rappresentazione grafica di un attributo semplice (nome escluso):

- un attributo multiplo: quando l’attributo ammette molteplici valori (es. qualifica, titolo, specialità). Rappresentazione grafica di un attributo multiplo (nome escluso):

Più esplicitamente: ‘matricola’ è un esempio di attributo semplice poiché una singola entità non può avere, contemporaneamente, molteplici matricole. ‘specialità’ è un esempio di attributo multiplo poiché, in generale, un’entità potrebbe avere anche molteplici specialità.
Attributi composti
Un attributo composto (semplice) è dato dall’aggregazione di molteplici valori. es. data (gg, mm, aaaa), indirizzo (via, numero civico, città, provincia, cap).

Esisterebbero anche gli attributi composti multipli, ma li ignoreremo.
Attributi opzionali
Un attributo opzionale è un attributo per il quale è ammessa l’assenza di valore (es. numero di telefono, professione, …).

Un attributo opzionale può essere sia semplice sia multiplo, sia composto sia non composto.
Ecco un esempio completo che mostra diversi tipi di attributo, riferiti a un’entità ‘studente’:

In sintesi, per ogni attributo che si desidera creare, bisogna chiedersi:
- l’attributo dev’essere semplice o multiplo?
- l’attributo dev’essere composto o non composto?
- l’attributo dev’essere opzionale o non opzionale?
Identificatori
Un’identificatore è un attributo o un insieme di attributi che caratterizza in modo univoco ciascuna singola istanza di un’entità. In altri termini, non possono esserci due istanze di una stessa entità le quali abbiano lo stesso identificatore.
Se l’identificatore è un singolo attributo, esso si rappresenta con un “pallino nero”, così:

Se l’identificatore è composto, ovvero è formato da molteplici attributi, esso si rappresenta così:

Entità deboli
Si dicono deboli le entità la cui identificazione dipende da quella di altre entità, dette forti. Ecco un esempio:

Nell’esempio qui sopra, l’entità ‘studente’ è debole, poiché la sua identificazione dipende da quella dell’entità forte ‘università’.
…Non ho capito. Può rispiegare? In termini più semplici, la matricola di uno studente identifica un singolo studente all’interno di una singola università. Tuttavia, considerando studenti di università differenti, essi potrebbero avere la stessa matricola. Ma noi, attraverso un diagramma ER, vogliamo identificare univocamente uno studente qualsiasi. Quindi, bisogna considerare sia la matricola dello studente, sia l’università cui è iscritto.
Gerarchie di generalizzazione
Una gerarchia di generalizzazione è un legame logico tra un’entità padre E ed alcune entità figlie E1, E2.. En dove:
- E è la generalizzazione di E1, E2.. En
- E1, E2.. En sono specializzazioni di E
tale per cui:
- ogni istanza di Ek è anche istanza di E
- una istanza di E può essere una istanza di Ek
Le entità figlio ereditano le proprietà (attributi, relazioni, identificatori) dell’entità padre.
Un esempio:

Ogni gerarchia è:
- o totale o parziale
- o esclusiva o overlapping
Gerarchie totali o parziali
Una gerarchia è detta totale (t) quando ogni istanza dell’entità padre deve fare parte di una delle entità figlie. Nell’esempio precedente, la gerarchia è totale: il personale dell’azienda si divide (completamente) in esterni e dipendenti.
Una gerarchia è detta parziale (p) quando le istanze dell’entità padre possono far parte di una delle entità figlie. Si consideri l’esempio seguente:

Le entità figlie ‘studente’, ‘lavoratore’, ‘anziano’ sono un sottoinsieme dell’entità padre ‘cittadino’, quindi la gerarchia è parziale. In altri termini, la gerarchia è parziale perché esistono cittadini che non sono né studenti, né lavoratori, né anziani.
Gerarchie esclusive od overlapping
Una gerarchia è detta esclusiva quando ogni istanza dell’entità padre non può far parte di più di una delle entità figlie.
Nell’esempio riguardante il personale di un’azienda, la gerarchia si può considerare esclusiva: il personale o è dipendente, oppure è esterno: non esistono, nel diagramma ER dell’esempio, dipendenti che siano esterni all’azienda.
Una gerarchia è detta overlapping quando ogni istanza dell’entità padre può far parte di più di una delle entità figlie.
Nell’esempio riguardante i cittadini, la gerarchia si può considerare overlapping: è ad esempio possibile che un cittadino sia, nel contempo, studente e lavoratore.
In sintesi, esistono quattro tipi di gerarchie:
- (t, e): gerarchia totale ed esclusiva. Questo è il tipo di gerarchia predefinito: quando non si esplicita il tipo della gerarchia, si assume che essa sia totale ed esclusiva.
- (t, o): gerarchia totale e overlapping
- (p, e): gerarchia parziale ed esclusiva
- (p, o): gerarchia parziale e overlapping
Fonti
- Progettazione concettuale, corso di Basi di dati 1, PoliMi
- Strategie di progettazione concettuale, corso di Basi di dati 1, PoliMi
Argomenti evitati
- auto-associazione
- attributo composto multiplo