Un modello entità-attributo-valore è un metodo per rappresentare una raccolta di dati all’interno di un computer.Il modello è progettato per consentire a un’entità di essere descritta da un insieme ristretto di attributi selezionati da un elenco più ampio di possibili attributi. Indicizzando l’elenco più ampio di attributi, è possibile allegare solo informazioni rilevanti alla struttura dati dell’entità.Questo approccio consente a un programma o database di mantenere un elenco dinamico di tutti i possibili attributi che possono crescere secondo necessità mantenendo l’integrità dei dati già registrati.
Un modo per una persona di visualizzare il modello entità-attributo-valore è immaginare una rubrica personale in relazione a una rubrica telefonica completa. La rubrica elenca ogni persona in un’area. Una rubrica personale elenca solo quelle persone della rubrica che sono rilevanti per il proprietario. Sarebbe inefficiente portare una rubrica personale che elenca migliaia di persone sconosciute, quindi la rubrica personale contiene solo le persone che sono rilevanti al proprietario. In questo esempio, i nomi delle persone nella rubrica sono gli attributi ei loro numeri di telefono sono i valori di tali attributi.
Questo approccio alla creazione di database o altri tipi di software di gestione delle informazioni ha molti vantaggi.Tutti i possibili attributi sono memorizzati in un unico elenco, quindi ogni record non deve avere una grande quantità di dati inutilizzati variabili o campi. Ciò riduce la dimensione dei record archiviati. Mantiene inoltre le informazioni allegate a un’entità pertinenti e concise in modo che non sia necessario attraversare centinaia di campi di attributi vuoti per visualizzare i campi con un valore. È possibile aggiungere facilmente nuovi attributi senza la necessità di una conversione completa del database o anche di modifiche ai record esistenti.
Un altro vantaggio dell’utilizzo del modello entità-attributo-valore è che gli attributi nell’elenco non devono essere tutti dello stesso tipo di dati.Ogni attributo può non solo essere un diverso tipo di dati, ma in programmazione orientata agli oggetti, possono essere classi di programma completamente diverse.Questo fornisce una grande flessibilità nella progettazione di un database che si basa su questa forma di modellazione dei dati.
Il modello entità-attributo-valore non è un modello dati esclusivo.Nella maggior parte dei database, le strutture relazionali tradizionali possono essere utilizzate anche per rappresentare i dati dove è più pratico farlo.Il record di dati circostante può essere gestito relazionale mentre i campi interni sono gestiti con il modello entità-attributo-valore.
Un database o un programma che utilizza il modello entità-attributo-valore della modellazione dei dati molto probabilmente dovrà utilizzare i metadati.I metadati sono una raccolta di regole e linee guida che colma il divario tra l’utente e i dati. Può definire quali valori sono validi per un determinato attributo, come dovrebbe essere visualizzato il valore e possibilmente anche come gli attributi potrebbero essere organizzati durante la generazione di report.Senza l’implementazione di metadati, il valore dell’attributo-entità modello può diventare una struttura di database poco flessibile e ingombrante.