Modello E-R: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ZimbuBot (discussione | contributi)
m WPCleaner v2.04 - Disambigua corretto un collegamento - Inglese
m Generalità: Corretto wikilink
 
(26 versioni intermedie di 13 utenti non mostrate)
Riga 1:
{{NN|informatica|novembre 2013}}
[[File:ER Diagram MMORPG.pngsvg|thumbminiatura|Un esempio di diagramma E-R]]
In [[informatica]], nell'ambito della [[Progettazione di basi di dati|progettazione dei database]], il '''modello entità-relazione'''<ref group="N">La locuzione è [[calco (linguistica)|calco]] dell'[[Lingua inglese|inglese]] ''entity-relationship model''.</ref> (o ''modello entità-associazione''; più comunecomunemente '''modello E-R''') è un modello teorico per la rappresentazione concettuale e grafica dei [[dati]] a un alto livello di [[Astrazione (informatica)|astrazione]], formalizzato dal prof.da Peter Chen nel 1976<ref name="Peter-Chen-paper">[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.123.1085 "The Entity Relationship Model: Toward a Unified View of Data"] for entity–relationship modeling.</ref>.
 
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 del dominio|analisi di un determinato dominio]] in uno schema concettuale, detto '''diagramma entità-relazione''' (o '''diagramma E-R''').<ref> Meno comune ''schema entità-relazione'', anche rispetto a ''schema E-R''.</ref>
 
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 del dominio|analisi di un determinato dominio]] in uno schema concettuale, detto '''diagramma entità-relazione''' (o '''diagramma E-R''').<ref> group="N">Meno comune ''schema entità-relazione'', anche rispetto a ''schema E-R''.</ref>
 
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 [[computer|elaboratori]]. Infatti, pur essendo orientato alla progettazione di basi di dati, il modello [[Astrazione (informatica)|prescinde]] dai criteri specifici di organizzazione fisica dei dati persistenti nei [[sistema informatico|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 [[dominio applicativo|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 [[Object Modeling TechnicqueTechnique|OMT]] poi confluita in [[Unified Modeling Language|UML]].
 
Tramite una superchiave identificativa (campi: ID_codice padre, ID_codice figlio), lo schema Entità-Associazione rappresenta un [[Albero (grafo)|grafo ad albero]] su un numero di livelli a piacere (in particolare anche una [[distinta base]]), assai diffusa nel mondo informatico. La ''Sunburst Chart'' consente una agevole e diffusa rappresentazione grafica di dati gerarchici.
 
== I costrutti principali del modello ==
Riga 27 ⟶ 25:
È 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 ===
Riga 33 ⟶ 31:
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 ==
Riga 57 ⟶ 55:
 
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 ===
Riga 71 ⟶ 69:
* 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 presentatada inpersona figuraa 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.
Riga 79 ⟶ 77:
* 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) ==
Riga 85 ⟶ 84:
* 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#BI come tecnologia|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<ref>{{cita pubblicazione|url=https://www.researchgate.net/publication/226977364_Using_the_Entity-Attribute-Value_Model_for_OLAP_Cube_Construction|titolo= Using the Entity-Attribute-Value Model for OLAP Cube Construction|lingua=en|autore=Peter Thanisch, Tapio Niemi, Marko Niinimaki, Jyrki Nummenmaa|accesso= 17 Maggio 2018|data= 6 Ottobre 2011|DOI= 10.1007/978-3-642-24511-4_5|ISSN= 1865-1348|rivista= ''Conference paper'' selezionato in: ''Perspectives in Business Informatics Research: 10th International Conference'', BIR 2011. Proceedings|città= Riga, Latvia}}</ref>.
 
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 [[Efficienza (informatica)|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 [[Progettazione di basi di dati|rappresentazione concettuale e logica]] efficace.
 
== Documentazione di schemi E-R ==
Riga 103 ⟶ 102:
* una derivazione ovvero un concetto che può essere ottenuto attraverso un'inferenza o un calcolo aritmetico da altri concetti dello schema.
 
Per le regole del primo tipo è chiaramente impossibile definire una [[sintassi]] precisa e si fa in genere ricorso a frasi in linguaggio naturale. Queste regole vengono tipicamente rappresentate tramite forma di glossari, raggruppando le descrizioni in maniera opportuna.
 
Le regole che descrivono vincoli di integrità e derivazioni sono invece più adatte a definizioni formali con sintassi più o meno complesse. Dato però che non esistono standardizzazioni e che ogni formalismo scelto rischia di non essere sufficientemente espressivo faremo ricorso ancora a definizioni in linguaggio naturale avendo però cura di strutturare in maniera adeguata tali definizioni.
Riga 128 ⟶ 127:
Il nome di ogni entità corrisponde all'intestazione di una tabella-matrice, avente tante colonne quanti sono gli attributi della entità. Se l'attributo è una chiave primaria o parte di una superchiave composta da più attributi, esso non potrà assumere il valore NULL (attributo non opzionale, obbligatorio) e non potrà assumere due occorrenze dello stesso valore (valori univoci, non ripetuti).
 
Se l'associazione fra due o più entità, ha uno o più attributi, normalmente l'associazione darà luogo a una tabella avente come chiave identificativa l'insieme delle chiavi primarie di tutte le entità collegate dalla relazione (con qualsiasi cardinalità) e come campi gli attributi posti sulla relazione nello schema E-R. Questo passaggio, di carattere logico, non va confuso con la [[Reificazione (informatica)|reificazione]] di una associazione in entità, passaggio avente carattere concettuale che si può realizzare nello schema E-R.
 
In un secondo passaggio, il numero delle tabelle può essere significativamente ridotto, tenendo conto della cardinalità massima (unitaria, n-aria) che collega due tabelle.
 
== Note ==
;Annotazioni
<references />
<references group="N"/>
;Fonti
<references />
 
== Bibliografia ==
Riga 142 ⟶ 144:
 
== Altri progetti ==
{{interprogetto|preposizione=sul}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|entity-relationship model|entity-relationship model}}
 
{{Controllo di autorità}}