Pubblicità

Che cos’è e come costruire il modello Entità Relazione (ER)

Che cos’è e come costruire il modello Entità Relazione (ER)

Il modello Entità Relazione (ER): un’introduzione completa

Il modello Entità Relazione (ER) è un metodo ampiamente utilizzato per la rappresentazione concettuale di database relazionali. Si basa su concetti chiave come entità, relazioni, attributi e vincoli per descrivere la struttura e le relazioni tra i dati in un modo chiaro e intuitivo.

I componenti fondamentali del modello ER:

  • Entità: Rappresentano oggetti o concetti distinti del mondo reale, come “Studente”, “Corso” o “Esame”. Ogni entità ha un insieme di attributi che ne descrivono le caratteristiche.

  • Relazioni: Rappresentano le associazioni tra le entità. Ad esempio, uno studente è iscritto a un corso, un corso ha un docente assegnato, e così via. Le relazioni possono essere binarie (tra due entità) o n-arie (tra più entità).

  • Attributi: Rappresentano le proprietà specifiche di un’entità. Ad esempio, l’entità “Studente” potrebbe avere attributi come “nome”, “cognome”, “matricola” e “corso di studi”.

  • Vincoli: Definiscono le regole che governano i dati e ne garantiscono l’integrità. Esempi di vincoli includono:

    • Chiave primaria: Un attributo o un insieme di attributi che identifica univocamente ogni istanza di un’entità.
    • Chiave esterna: Un attributo in un’entità che fa riferimento alla chiave primaria di un’altra entità, stabilendo una relazione tra di esse.
    • Vincoli di dominio: Definiscono i valori validi per un attributo, come un intervallo di numeri o un insieme di valori predefiniti.

Vantaggi del modello ER:

  • Visualizzazione chiara: Il modello ER utilizza diagrammi per rappresentare le entità, le relazioni e i loro attributi, facilitando la comprensione della struttura del database.
  • Facilità d’uso: I concetti del modello ER sono relativamente semplici da apprendere e da utilizzare, anche per chi non ha una formazione specifica in informatica.
  • Flessibilità: Il modello ER può essere adattato a una vasta gamma di applicazioni, da semplici database a sistemi complessi.
  • Base per la progettazione di database relazionali: Il modello ER fornisce una solida base per la progettazione di database relazionali efficienti e affidabili.
Rappresentazione grafica dei concetti nel modello Entità Relazione (modello ER)
Rappresentazione grafica dei concetti nel modello Entità Relazione (modello ER)

Esempio

Mostriamo alcuni esempi di schemi concettuali. Lo schema della figura sottostante rappresenta la realtà informativa di un campionato di calcio.

Il modello ER di un campionato di calcio
Il modello ER di un campionato di calcio

Nello schema compaiono:

  1. La entità SQUADRA rappresenta l’insieme delle squadre che partecipano al campionato. Delle squadre vogliamo conoscere il NOME (ad esempio Juventus, Roma, Milan), la CITTÀ (nei tre casi precedenti Torino, Roma, Milano), ed il COGNOME dell’allenatore.
  2. La entità GIOCATORE rappresenta i giocatori che giocano nelle squadre (in tutte le squadre). Per ogni giocatore vogliamo ricordare il NOME, il COGNOME, la DATA-DI-NASCITA (attributo composto dagli attributi GIORNO, MESE, ANNO) ed il RUOLO che ricopre nella squadra. Riguardo al RUOLO, facciamo per il momento la ipotesi che ogni giocatore abbia un unico ruolo,  sempre  fisso  nel Facciamo anche la ipotesi che anche l’insieme dei ruoli sia fisso nel tempo (ad es. Portiere, Terzino sinistro, Ala destra, ecc.), ed in tutte le squadre si adottino gli stessi ruoli.
  3. La entità PARTITA rappresenta l’insieme delle partite svolte nel campionato (ad esempio ROMA – MILAN della seconda giornata del girone di ritorno, JUVENTUS-VERONA della settima giornata del girone di andata, ecc.). Di ogni partita si vuole ricordare il GIRONE e la GIORNATA in cui si è svolta, la DATA (anche in questo caso distinta in GIORNO, MESE ed ANNO), ed il NUMERO della partita nell’ambito della giornata (ad esempio prima partita, seconda partita, ecc.).

Accanto alle precedenti entità sono definite nello schema le seguenti relazioni:

  1. GIOCA-IN tra le entità GIOCATORE e SQUADRA, che rappresenta per ogni giocatore la squadra in cui gioca, ovvero, simmetricamente, per ogni squadra l’insieme dei giocatori che giocano nella squadra.
  2. TRA, definita tra le due entità SQUADRA e PARTITA, che rappresenta per ogni partita le squadre coinvolte (ad es. nella partita ROMA – MILAN sono coinvolte le squadre ROMA e MILAN). La relazione TRA ha un attributo, chiamato GIOCA-IN-CASA, che per ognuna delle due squadre coinvolte nella partita dice se  la squadra gioca o meno in casa. Il dominio di questo attributo è formato dai due  valori [SI, NO]. È importante convincersi che l’attributo GIOCA-IN-CASA è una proprietà della relazione TRA, e non della entità PARTITA o della entità SQUADRA. Infatti per assegnargli un valore noi dobbiamo conoscere la partita e la squadra cui si riferisce: è perciò una proprietà della relazione tra le due entità.

Generalizzazioni

Le Generalizzazioni mettono in relazione un insieme di entità (dette nel seguito entità figlie) con una nuova entità (detta entità padre) che di esse è astrazione appunto di generalizzazione. Possiamo ad esempio affermare che PERSONA è generalizzazione di UOMO e DONNA, ovvero che LUOGO è generalizzazione di COMUNE e STATO ESTERO. Nelle generalizzazioni potranno essere definiti attributi e relazioni che sono significativi solo per una delle entità figlie. È questo il caso dello schema dela figura seguente in cui l’attributo SITUAZIONE-MILITARE (che rappresenta lo stato della persona dal punto di vista del servizio militare: esente, arruolato, ecc.) ha senso solo per gli uomini.

Un esempio di generalizzazione (modello ER)
Un esempio di generalizzazione (modello ER)

Una fondamentale proprietà delle generalizzazioni è la seguente: in una astrazione di generalizzazione, ogni proprietà della entità padre è anche proprietà delle entità figlie. Per proprietà intendiamo gli attributi, le relazioni e le generalizzazioni cui partecipa la entità. Così se ETÀ è attributo di PERSONA e PERSONA è generalizzazione di UOMO e DONNA, ETÀ è chiaramente attributo anche di tali due nuove entità.

Si noti che una entità può essere l’entità padre di più generalizzazioni: ad esempio, in una applicazione scolastica, la entità PERSONA può essere da una parte generalizzazione nelle entità PROFESSORE e STUDENTE, e dall’altra nelle entità UOMO e DONNA.

Sottoinsiemi

Un sottoinsieme è un caso particolare di generalizzazione, quella che sussiste tra l’entità padre e una sola entità figlia. Ad esempio la entità ATTACCANTE è sottoinsieme di GIOCATORE nello schema del campionato, perché ogni giocatore attaccante è anche un giocatore, ma esistono giocatori che non sono attaccanti (per fortuna!). Anche per i sottoinsieme è definita la proprietà in precedenza definita per le generalizzazioni. Ad esempio tutti gli attributi e le relazioni associati a GIOCATORE nello schema di Figura seguente vanno automaticamente associati anche alla entità ATTACCANTE.

Esempio

Considerare lo schema Entità Relazione nell’esempio seguente.

Schema concettuale esempio completo (modello ER)
Schema concettuale esempio completo (modello ER)

Lo schema rappresenta varie proprietà di uomini e donne rilevanti, ad esempio, nell’analisi di un sistema anagrafico. Ipotizziamo che l’interesse degli utenti di tale sistema sia legato agli effetti del servizio di leva obbligatorio sulla capacità delle  famiglie di produrre reddito. Vorremmo rappresentare quindi le persone, le città in cui vivono, la loro relazione con il servizio militare ecc. Attraverso astrazioni di classificazione vengono perciò definite alcune entità principali (PERSONA, CITTÀ), mentre operazioni di generalizzazione producono le altre entità (UOMO, DONNA, MILITARE,  LAVORATRICE).

Da questo primo frammento di schema possiamo poi passare a considerare le proprietà fondamentali delle entità fin qui trovate, ricordando che le entità sono null’altro che aggregazioni di attributi (definizione intensionale di entità). Del numero potenzialmente illimitato di attributi, è facile identificare quelli più immediatamente rilevanti per il nostro universo del discorso: il nome ed il cognome (elementi di identificazione personale), l’età e l’altezza (legati all’idoneità al servizio di leva), la provincia e la regione di residenza (vincoli alla destinazione finale del militare di leva).

Si può notare che accanto all’entità CITTÀ non sono state introdotte anche le entità PROVINCIA e REGIONE, malgrado i citati vincoli  sulle  destinazioni  dei  militari  di leva facciano riferimento ala regione di residenza. Nel caso di classi di oggetti la cui estensione è delimitata, magari in seguito a norme o a standard di qualsiasi natura, come è il caso della CITTÀ o della REGIONE, vale una evidente regola di economia che suggerisce di elevare al rango di entità soltanto una, normalmente la più numerosa, e rappresentare le altre come attributi della prima. Al termine di questo passo, gli attributi sono sparsi nello schema senza un particolare ordine.

Passando alle relazioni, si può notare che i concetti anagrafici di luogo di residenza e di luogo di nascita sono stati rappresentati non tramite nuove entità (ad esempio CITTÀ_DI_RESIDENZA) ma come relazioni tra entità esistenti (PERSONA e CITTÀ): appare chiaramente che la relazione è il costrutto che permette di introdurre nuove classi “mettendo a fattore” quelle già definite.

Detto questo, si lascia al lettore la scelta di procedere con i seguenti passi.

  1. Ristrutturare lo schema tenendo conto della proprietà fondamentale delle generalizzazioni descritta in precedenza
  2. Lo schema rappresenta solo le lavoratrici donne; modificare lo schema rappresentando ora tutti i lavoratori, uomini e donne
  3. Tra le proprietà delle città, l’attributo regione può essere visto anche come un attributo del concetto Ristrutturare lo schema in tal senso.

Cardinalità

Le cardinalità sono proprietà di relazioni; la cardinalità minima di una entità definita in una relazione è il minimo numero di volte che ogni occorrenza della entità può essere coinvolta in una occorrenza della relazione. Il valore 0 significa che può esistere una occorrenza di entità non coinvolta in alcuna occorrenza di relazione. Il valore 1 (n) significa che non può esistere occorrenza senza essere coinvolta in 1 (n) relazioni. Analoga definizione vale per la cardinalità massima. Le cardinalità minime e massime n ed m di una entità in una relazione sono indicate con il simbolo (n,m) accanto alla entità. Ad esempio, nella relazione TRA dello schema concettuale di un campionato di calcio, le cardinalità sono:

  1. (2,2) per la entità PARTITA (una partita si svolge esattamente tra due squadre).
  2. (1,1) per la entità SQUADRA (una squadra è coinvolta esattamente una volta in una partita).

Nella relazione GIOCA-IN le cardinalità sono:

  1. (11, n) per la entità SQUADRA (una squadra deve avere come minimo 11 giocatori, ma in generale ne ha molti di più).
  2. (1,1) per la entità GIOCATORE (un giocatore, in un campionato, gioca esattamente in una squadra).

PubblicitàPubblicità

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *