In informatica, nell'ambito della progettazione dei database, il modello entità-relazioneLa locuzione è calco dell'inglese entity-relationship model. (o modello entità-associazione; più comunemente modello E-R) è un modello teorico per la rappresentazione concettuale e grafica dei dati a un alto livello di astrazione, formalizzato da Peter Chen nel 1976"The Entity Relationship Model: Toward a Unified View of Data" for entity–relationship modeling..
Il modello entità-relazione viene spesso utilizzato nella prima fase della progettazione di una base di dati, nella quale è necessario tradurre le informazioni risultanti dall'analisi di un determinato dominio in uno schema concettuale, detto diagramma entità-relazione (o diagramma E-R).Meno comune schema entità-relazione, anche rispetto a schema E-R.
Nell'ambito della progettazione ingegneristica delle basi di dati si distinguono tre livelli indipendenti e consecutivi di progettazione: progettazione concettuale, progettazione logica, progettazione fisica. Propriamente, il modello E-R è la tecnica-principe per la fase di progettazione concettuale, il modello relazionale per quella di progettazione logica. Solamente nell'ultima fase di progettazione fisica, si prendono in considerazione i software e hardware applicativi, proprietari e non, esistenti sul mercato. Generalità Il modello E-R si basa su un insieme di concetti molto vicini alla realtà di interesse: quindi facilmente intuibili dai progettisti (e in genere considerati sufficientemente comprensibili e significativi anche per i non-tecnici), ma non implementabili sugli elaboratori. Infatti, pur essendo orientato alla progettazione di basi di dati, il modello prescinde dai criteri specifici di organizzazione fisica dei dati persistenti nei sistemi informatici. Esistono tecniche per la traduzione dei concetti ad alto livello (meglio comprensibili per gli umani) in concetti di più basso livello tipici dei vari modelli logici (ad esempio il modello relazionale) implementati nei diversi DBMS esistenti.
Il modello E-R ha rappresentato per lungo tempo (e forse ancora oggi) uno degli approcci più solidi per la modellazione di domini applicativi in ambito informatico; per questo motivo, è stato spesso usato anche al di fuori del contesto della progettazione di database, ed è stato utilizzato come modello di riferimento per numerose altre notazioni per la modellazione. Al modello E-R era ispirata, tra l'altro, la notazione OMT poi confluita in UML.
Tramite una superchiave identificativa (campi: ID_codice padre, ID_codice figlio), lo schema Entità-Associazione rappresenta un grafo ad albero su un numero di livelli a piacere (in particolare anche una distinta base), assai diffusa nel mondo informatico.
I costrutti principali del modello Analisi dei principali costrutti del modello E-R: entità, associazioni e attributi. Entità Rappresentano classi di oggetti (fatti, cose, persone, ...) che hanno proprietà comuni ed esistenza autonoma ai fini dell'applicazione di interesse. Un'occorrenza di un'entità è un oggetto o istanza della classe che l'entità rappresenta. Non si parla qui del valore che identifica l'oggetto ma dell'oggetto stesso. Un'interessante conseguenza di questo fatto è che un'occorrenza di entità ha un'esistenza indipendente dalle proprietà ad essa associate. In questo, il modello E-R presenta una marcata differenza rispetto al modello relazionale nel quale non possiamo rappresentare un oggetto senza conoscere alcune sue proprietà.
In uno schema ogni entità ha un nome che la identifica univocamente e viene rappresentata graficamente tramite un rettangolo con il nome dell'entità al suo interno.
Associazione Le associazioni (dette anche relazioni) rappresentano un legame tra due o più entità. Il numero di entità legate è indicato dal grado dell'associazione: un buono schema E-R è caratterizzato da una prevalenza di associazioni con grado due. È possibile legare un'entità con se stessa (attraverso un'associazione ad anello), nonché legare le stesse entità con più associazioni.
Di norma viene rappresentata graficamente da un rombo contenente il nome dell'associazione. Il nome può essere un verbo in modo da fornire una direzione di lettura, oppure può essere un sostantivo in modo da non dare una direzione di lettura. L'orientamento accademico e professionale più recente propende per l'utilizzo del sostantivo proprio per evitare di dare un verso all'associazione.
Attributi Le entità e le associazioni possono essere descritte usando una serie di attributi. Tutti gli oggetti della stessa classe entità (o associazione) hanno gli stessi attributi: questo è ciò che si intende quando si parla di oggetti simili. La scelta degli attributi riflette il livello di dettaglio con il quale vogliamo rappresentare le informazioni sulle entità e sulle relazioni. Per ciascuna classe entità o associazione si definisce una chiave. La chiave è un insieme minimale di attributi che identifica univocamente un'istanza di entità o associazione. L'attributo si rappresenta con un'ellisse al cui interno viene specificato il nome dell'attributo o anche semplicemente, nel caso di diagrammi complessi, indicandone solo il nome, eventualmente in corrispondenza. In caso di chiave primaria, il nome dell'attributo viene sottolineato o cerchiato.
Altri costrutti del modello Cardinalità delle associazioni Vengono specificate per ciascuna entità che partecipa a una associazione e indicano quante volte, in una associazione tra entità, un'occorrenza di una di queste entità può essere legata ad occorrenze delle altre entità coinvolte nell'associazione (indica il minimo e il massimo delle occorrenze).
Cardinalità degli attributi È possibile definire vincoli di cardinalità anche sugli attributi, con due scopi: indicare opzionalità; indicare attributi multivalore. Se la specifica del vincolo manca, come avviene nella maggioranza dei casi, la cardinalità dell'attributo è (1,1). Consideriamo il seguente esempio:
Poiché sul Nome manca la specifica del vincolo di cardinalità, vuol dire che la cardinalità è (1,1).
(0,1) NumeroPatente, vuol dire che un impiegato può avere una patente ma anche non averla, o meglio un impiegato può avere al più una patente. (0,n) NumeroTelefono, vuol dire che un impiegato può avere molti numeri di telefono, ma può anche non aver alcun numero di telefono. (1,n) TitoloStudio, vuol dire che un impiegato può avere molti titoli di studio, ma deve averne almeno uno.
Identificatori delle entità
Costituiscono un sottoinsieme degli attributi di un'entità che identificano in maniera univoca ogni occorrenza della stessa entità. Un esempio può essere costituito dall'attributo CodiceFiscale dell'entità CittadinoItaliano. È infatti noto che ogni occorrenza dell'entità CittadinoItaliano, ossia ogni cittadino residente nel territorio della Repubblica Italiana, può essere inequivocabilmente identificato dal suo codice fiscale. Questo significa che non possono esistere due cittadini italiani aventi lo stesso codice fiscale (a meno che non si verifichi un caso di omocodia).
Generalizzazioni Rappresentano dei legami logici esistenti tra due o più entità. Tra le entità coinvolte si distinguono: una ed una sola entità padre; una o più entità figlie.
Le entità figlie costituiscono dei "casi particolari" dell'entità padre. Ogni attributo dell'entità padre è anche attributo delle entità figlie, ma le entità figlie possono avere degli attributi che le differenziano dal padre e dai fratelli. Nell'esempio seguente si evidenzia che: ogni persona è identificata da un codice fiscale ed è caratterizzata da un cognome, un nome e un'età; ogni persona si distingue in uomo o donna; può essere valutata anche la posizione militare.
Le generalizzazioni si distinguono in "totali" e "parziali". Una generalizzazione è totale quando l'unione dei sottoinsiemi dei figli costituisce l'insieme del padre. Ad esempio la generalizzazione da persona a uomo o donna è totale poiché tutte le persone sono o uomini o donne, quindi, unendo i sottoinsiemi degli uomini e delle donne si ottiene l'insieme delle persone. Una generalizzazione è parziale quando invece l'unione dei sottoinsiemi dei figli non identifica globalmente l'insieme del padre. Ad esempio un'entità padre MezzoDiLocomozione con le entità figlie Bicicletta ed Automobile è una generalizzazione parziale, in quanto oltre alle biciclette ed alle automobili esistono altri mezzi di locomozione come ciclomotori, treni, navi, ecc. L'unione dei sottoinsiemi Bicicletta e Automobile non è quindi sufficiente per identificare l'insieme padre MezziDiLocomozione.
Una generalizzazione può essere inoltre "esclusiva" o "sovrapposta". Una generalizzazione è esclusiva quando l'intersezione dei sottoinsiemi dei figli è vuota; è invece sovrapposta quando l'intersezione dei sottoinsiemi dei figli non è vuota. Un'entità padre Lavoratore con le entità figlie Impiegato e Studente identifica una generalizzazione sovrapposta in quanto possono esistere degli impiegati che sono contemporaneamente studenti. In conclusione, una generalizzazione può essere: totale esclusiva (t,e); totale sovrapposta (t,s); parziale esclusiva (p,e); parziale sovrapposta (p,s). Talvolta, le sigle (t,e) e queste ultime appena indicate, possono apparire negli schemi ER per aggiungere informazioni sul tipo di generalizzazione; il loro uso dentro lo schema grafico ER non è, tuttavia, vincolante.
Modello dei dati Entity–attribute–value (EAV) Un modello dei dati Entity–attribute–value (EAV) è utilizzato vantaggiosamente nei casi in cui le basi di dati sono costituite da: singoli attributi di tipo variabile nel tempo; centinaia di tabelle o categorie di numerosità variabile nel tempo, ma che al loro interno restano composte da poche decine di righe o istanze; e un numero di tabelle relativamente piccolo, ma aventi ciascuna migliaia o milioni di righe o istanze.
Nell'ambito della business intelligence, una struttura informativa di questo tipo potrebbe essere un cubo OLAP multidimensionale, del quale l'utente ha spesso l'esigenza di aggiungere qualche dimensione di analisi, di numero non prevedibile e variabile nel tempo: le tabelle EAV danno una rappresentazione di sintesi quando i dati da analizzare sono estremamente sparsi, ad esempio in una base di conoscenza biomedicale. Lo stesso modello EAV può anche essere utilizzato per importare le tabelle EAV direttamente nel cubo OLAP.
Un modello E-R presenterebbe il limite di gestire tutte le tabelle nel solito modo, anche dal punto di vista visivo, a prescindere dalla loro dimensione ed importanza. L’Entity–attribute–value model è un modello dei dati che supera questo limite, e permette di rappresentare i concetti in un modo efficiente dal punto di vista informatico, nelle situazioni in cui le singole entità sono descritte da un numero di attributi (proprietà, o parametri) relativamente molto più piccolo di quelli potenzialmente idonei ad una rappresentazione concettuale e logica efficace.
Documentazione di schemi E-R Uno schema E-R non è quasi mai sufficiente da solo a rappresentare nel dettaglio tutti gli aspetti di un'applicazione per varie ragioni. Innanzitutto in uno schema E-R compaiono solo i nomi dei vari concetti in esso presenti ma questo può essere insufficiente per comprenderne il significato. Nel caso di schemi particolarmente complessi può accadere di non riuscire a rappresentare in maniera comprensibile ed esaustiva i vari concetti.
Per questo motivo risulta indispensabile corredare ogni schema E-R con una documentazione di supporto che possa servire a facilitare l'interpretazione dello schema stesso e a descrivere proprietà dai dati rappresentati che non possono essere espressi direttamente dai costrutti del modello. Ecco quindi l'esigenza di avere degli strumenti a completamento dello schema.
Regole aziendali