Il modello Entità Relazione (ER)

Il modello Entità Relazione (ER)

In questa sezione descriviamo un particolare modello concettuale, che adotta in certa misura le astrazioni descritte nell’articolo dedicato ai modelli concettuali dei database. Una caratteristica interessante del modello Entità Relazione o modello ER è l’adozione per i concetti di una rappresentazione grafica, che riportiamo nella figura seguente.

Rappresentazione grafica dei concetti nel modello Entità Relazione (modello ER)
Rappresentazione grafica dei concetti nel modello Entità Relazione (modello ER)

Nel modello sono definiti cinque tipi di strutture di rappresentazione: entità, relazioni, attributi, sottoinsiemi, generalizzazioni. Sono anche definibili alcuni vincoli di integrità, che rappresentano proprietà esprimibili sui concetti presenti nello schema. Nel seguito esamineremo un particolare tipo di vincolo di integrità, le cardinalità.

Entità

Le entità corrispondono a classi di oggetti del mondo reale (oggetti che chiameremo in seguito istanze della entità) che hanno proprietà omogenee ai fini della applicazione. Tra queste le proprietà elementari (cioè non strutturabili in  proprietà più atomiche) sono dette attributi semplici. A un attributo semplice è associato un insieme di valori, detto anche dominio, che rappresentano l’insieme dei valori elementari che l’attributo può assumere. Così, ad esempio, PERSONA è una entità tipica di uno schema anagrafico, e NOME, COGNOME, ETÀ, SESSO, sono proprietà elementari che noi siamo interessati a descrivere di ogni persona, e quindi sono nel modello attributi della entità PERSONA; la entità può quindi vedersi come astrazione di classificazione delle singole persone e come astrazione di aggregazione delle quattro proprietà NOME, COGNOME, ETÀ, SESSO. Accanto agli attributi semplici è comodo poter definire attributi composti, che costituiscono aggregazioni di attributi. Ad esempio DATA può vedersi come attributo composto dagli attributi GIORNO, MESE, ANNO.

Relazioni

Le relazioni corrispondono a classi di fatti del mondo reale che sono significativi ai fini della applicazione; tali fatti mettono in relazione istanze di due o più entità. Ad esempio, in un censimento della popolazione possiamo essere interessati ad esprimere la relazione tra le persone e le città in cui sono nati, e chiamare tale relazione  È-NATO;  tale  relazione può vedersi come astrazione di aggregazione applicata alle due entità PERSONA e CITTÀ. Accanto ad essa, possiamo essere interessati ad altre relazioni definite sulle stesse entità: ad esempio la relazione tra la persona e il luogo di residenza (relazione RISIEDE), la relazione tra persona e luoghi in cui ha avuto residenza (HA- RISIEDUTO). Mostriamo lo schema costituito dalle tre relazioni e le due entità nella figura corrispondente all’esempio completo (quella nel paragrafo sottoinsiemi).

Ancora riguardo alle relazioni, è bene osservare che accanto a relazioni definite tra due entità, come tutte le precedenti, ci possono essere relazioni definite su più di due entità. Un esempio è la relazione FORNITA, tra le entità FORNITORE, PARTE,  PRODOTTO. Una parte può essere fornita da diversi fornitori, e per diversi prodotti. Se vogliamo cogliere la situazione più generale possibile, dobbiamo rappresentare questo tipo di fatti per mezzo di terne di informazioni (un fornitore, una parte, un prodotto), e dunque, nello schema, per mezzo di una relazione tra tre entità. In questo caso, la relazione ha un attributo, che rappresenta la generica QUANTITÀ che un fornitore fornisce per una certa parte e per un certo prodotto.

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).

 

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 *