Entity Data Model
EDM (Entity Data Model) è un set di concetti che descrivono la struttura dei dati, indipendentemente dal form archiviato. EDM è mutuato dal modello entità-relazione descritto da Peter Chen nel 1976, ma è anche basato su tale modello di cui estende gli utilizzi tradizionali.
EDM consente di superare le difficoltà derivanti dall'archiviazione dei dati in più form. Si pensi, ad esempio, a un'azienda che archivia i dati in database relazionali, file di testo, file XML, fogli di calcolo e rapporti. Ne derivano difficoltà considerevoli nella modellazione dati, nella progettazione di applicazioni e nell'accesso ai dati. Quando si progetta un'applicazione orientata ai dati, è difficile scrivere un codice efficiente e gestibile senza sacrificare accesso ai dati, archiviazione e scalabilità efficienti. Quando la struttura dei dati è relazionale, l'accesso ai dati, l'archiviazione e la scalabilità sono molto efficienti, ma la scrittura di un codice efficiente e gestibile diventa più difficile. Quando la struttura dei dati è basata sugli oggetti, si verifica il contrario: per scrivere un codice efficiente e gestibile, è necessario rinunciare ad accesso ai dati, archiviazione e scalabilità efficienti. Anche se è possibile trovare un giusto equilibrio tra queste due condizioni, nuove difficoltà sorgono quando i dati vengono spostati da un form a un altro. Entity Data Model risolve questi problemi descrivendo la struttura dei dati in termini di entità e relazioni indipendenti da qualsiasi schema di archiviazione. In questo modo il form di dati archiviato risulta irrilevante per la progettazione e lo sviluppo di applicazioni. E, poiché le entità e le relazioni descrivono la struttura dei dati utilizzata in un'applicazione (non nel form archiviato), possono evolvere esattamente come un'applicazione.
Un conceptual model è una rappresentazione specifica della struttura di dati come entità e relazioni e viene in genere definito in un linguaggio specifico di dominio che implementa i concetti del modello EDM. CSDL (Conceptual Schema Definition Language) è un esempio di tale linguaggio specifico di dominio. Entità e relazioni descritte in un modello concettuale possono essere considerate come astrazioni di oggetti e associazioni in un'applicazione. In questo modo gli sviluppatori hanno la possibilità di concentrarsi sul modello concettuale senza preoccuparsi dello schema di archiviazione e di scrivere il codice avendo come obiettivo l'efficienza e la manutenibilità. Nel frattempo i progettisti dello schema di archiviazione possono concentrarsi sull'efficienza di accesso ai dati, archiviazione e scalabilità.
In questa sezione
Negli argomenti di questa sezione vengono descritti i concetti relativi a Entity Data Model. I linguaggi specifici di dominio che implementano EDM devono includere i concetti descritti di seguito. Si noti che ADO.NET Entity Framework utilizza CSDL per definire i modelli concettuali. Per ulteriori informazioni, vedere Conceptual Schema (CSDL).
Concetti chiave di Entity Data Model
Entity Data Model: spazi dei nomi
Entity Data Model: tipi di dati primitivi
Entity Data Model: ereditarietà
entità finale dell'associazione
molteplicità di entità finale dell'associazione
set di associazioni (Entity Data Model)
entità finale del set di associazioni
funzione dichiarata dal modello
vincolo di integrità referenziale
Vedere anche
Altre risorse
ADO.NET Entity Data Model Tools
.edmx File Overview
CSDL Specification