Entity Data ModelEntity Data Model

EDM (Entity Data Model) è un set di concetti che descrivono la struttura dei dati, indipendentemente dal form archiviato.The Entity Data Model (EDM) is a set of concepts that describe the structure of data, regardless of its stored form. EDM è mutuato dal modello entità-relazione descritto da Peter Chen nel 1976, ma è anche basato su tale modello di cui estende gli utilizzi tradizionali.The EDM borrows from the Entity-Relationship Model described by Peter Chen in 1976, but it also builds on the Entity-Relationship Model and extends its traditional uses.

EDM consente di superare le difficoltà derivanti dall'archiviazione dei dati in più form.The EDM addresses the challenges that arise from having data stored in many forms. Si pensi, ad esempio, a un'azienda che archivia i dati in database relazionali, file di testo, file XML, fogli di calcolo e rapporti.For example, consider a business that stores data in relational databases, text files, XML files, spreadsheets, and reports. Ne derivano difficoltà considerevoli nella modellazione dati, nella progettazione di applicazioni e nell'accesso ai dati.This presents significant challenges in data modeling, application design, and data access. Quando si progetta un'applicazione orientata ai dati, è difficile scrivere un codice efficiente e gestibile senza sacrificare accesso ai dati, archiviazione e scalabilità efficienti.When designing a data-oriented application, the challenge is to write efficient and maintainable code without sacrificing efficient data access, storage, and scalability. 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.When data has a relational structure, data access, storage, and scalability are very efficient, but writing efficient and maintainable code becomes more difficult. 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.When data has an object structure, the trade-offs are reversed: Writing efficient and maintainable code comes at the cost of efficient data access, storage, and scalability. 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.Even if the right balance between these trade-offs can be found, new challenges arise when data is moved from one form to another. Entity Data Model risolve questi problemi descrivendo la struttura dei dati in termini di entità e relazioni indipendenti da qualsiasi schema di archiviazione.The Entity Data Model addresses these challenges by describing the structure of data in terms of entities and relationships that are independent of any storage schema. In questo modo il form di dati archiviato risulta irrilevante per la progettazione e lo sviluppo di applicazioni.This makes the stored form of data irrelevant to application design and development. E, poiché le entità e le relazioni descrivono la struttura dei dati usata in un'applicazione (non nel form archiviato), possono evolvere esattamente come un'applicazione.And, because entities and relationships describe the structure of data as it is used in an application (not its stored form), they can evolve as an application evolves.

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.A conceptual model is a specific representation of the structure of data as entities and relationships, and is generally defined in a domain-specific language (DSL) that implements the concepts of the EDM. Linguaggio di definizione di schema concettuale (CSDL) è riportato un esempio di tale linguaggio specifico di dominio di.Conceptual schema definition language (CSDL) is an example of such a domain-specific language. Entità e relazioni descritte in un modello concettuale possono essere considerate come astrazioni di oggetti e associazioni in un'applicazione.Entities and relationships described in a conceptual model can be thought of as abstractions of objects and associations in an application. 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à.This allows developers to focus on the conceptual model without concern for the storage schema, and allows them to write code with efficiency and maintainability in mind. Nel frattempo i progettisti dello schema di archiviazione possono concentrarsi sull'efficienza di accesso ai dati, archiviazione e scalabilità.Meanwhile storage schema designers can focus on the efficiency of data access, storage, and scalability.

Contenuto della sezioneIn This Section

Negli argomenti di questa sezione vengono descritti i concetti relativi a Entity Data Model.Topics in this section describe the concepts of the Entity Data Model. I linguaggi DSL che implementano EDM devono includere i concetti descritti di seguito.Any DSL that implements the EDM should include the concepts described here. Si noti che il ADO.NET Entity Framework Usa CSDL per definire i modelli concettuali.Note that the ADO.NET Entity Framework uses CSDL to define conceptual models. Per ulteriori informazioni, vedere specifica CSDL.For more information, see CSDL Specification.

Concetti chiave di Entity Data ModelEntity Data Model Key Concepts

Entity Data Model: spazi dei nomiEntity Data Model: Namespaces

Entity Data Model: tipi di dati primitiviEntity Data Model: Primitive Data Types

Entity Data Model: ereditarietàEntity Data Model: Inheritance

estremità dell'associazioneassociation end

molteplicità di estremità dell'associazioneassociation end multiplicity

set di associazioniassociation set

estremità del set di associazioniassociation set end

tipo di associazioneassociation type

tipo complessocomplex type

contenitore di entitàentity container

chiave di entitàentity key

set di entitàentity set

tipo di entitàentity type

facetfacet

proprietà di chiave esternaforeign key property

funzione dichiarata dal modellomodel-declared function

funzione definita dal modellomodel-defined function

proprietà di navigazionenavigation property

proprietàproperty

vincolo di integrità referenzialereferential integrity constraint

Vedere ancheSee Also

Strumenti di ADO.NET Entity Data ModelADO.NET Entity Data Model Tools
Cenni preliminari sui file con estensione edmx.edmx File Overview
Specifica CSDLCSDL Specification