Entity Data ModelEntity Data Model

Entity Data Model (EDM) es un conjunto de conceptos que describen la estructura de los datos, independientemente del formato en el que estén almacenados.The Entity Data Model (EDM) is a set of concepts that describe the structure of data, regardless of its stored form. EDM se basa en el modelo entidad-relación (Entity-Relationship Model) descrito por Peter Chen en 1976, pero también incorpora nuevas funciones y amplía sus usos tradicionales.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 soluciona los desafíos que plantea el tener datos almacenados en muchos formatos.The EDM addresses the challenges that arise from having data stored in many forms. Considere, por ejemplo, un negocio que almacena los datos en bases de datos relacionales, archivos de texto, archivos XML, hojas de cálculo e informes.For example, consider a business that stores data in relational databases, text files, XML files, spreadsheets, and reports. Esto presenta importantes desafíos en el modelado de datos, el diseño de aplicaciones y el acceso a los datos.This presents significant challenges in data modeling, application design, and data access. Al diseñar una aplicación orientada a datos, el desafío consiste en escribir un código eficaz y que se pueda mantener sin sacrificar la eficacia del acceso a los datos, el almacenamiento y la escalabilidad.When designing a data-oriented application, the challenge is to write efficient and maintainable code without sacrificing efficient data access, storage, and scalability. Cuando los datos tienen una estructura relacional, el acceso a los datos, el almacenamiento y la escalabilidad resultan muy eficaces, pero es más difícil escribir un código eficaz y que se pueda mantener.When data has a relational structure, data access, storage, and scalability are very efficient, but writing efficient and maintainable code becomes more difficult. Cuando los datos tienen una estructura de objeto, se invierten las ventajas; es decir, la escritura de un código eficaz y que se pueda mantener se consigue a costa de la eficacia en el acceso a los datos, el almacenamiento y la escalabilidad.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. Aunque es posible encontrar el equilibrio adecuado entre ambos métodos, surgen nuevos desafíos cuando se mueven los datos de un formato a otro.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 resuelve estos desafíos describiendo la estructura de los datos en forma de entidades y relaciones que son independientes de cualquier esquema de almacenamiento.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. Esto hace que el formato en el que están almacenados los datos sea irrelevante a la hora de diseñar y desarrollar las aplicaciones.This makes the stored form of data irrelevant to application design and development. Y, dado que las entidades y las relaciones describen la estructura de los datos tal como se usan en una aplicación (no el formato en el que están almacenados), pueden evolucionar al mismo tiempo que la aplicación.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 modelo conceptual (conceptual model) es una representación específica de la estructura de los datos en forma de entidades y relaciones, y normalmente se define mediante un lenguaje específico de dominio (DSL) que implementa los conceptos de 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. Lenguaje de definición de esquemas conceptuales (CSDL) es un ejemplo de este tipo de lenguaje específico de dominio.Conceptual schema definition language (CSDL) is an example of such a domain-specific language. Las entidades y relaciones descritas en un modelo conceptual se pueden considerar como abstracciones de objetos y asociaciones en una aplicación.Entities and relationships described in a conceptual model can be thought of as abstractions of objects and associations in an application. Esto permite a los desarrolladores centrarse en el modelo conceptual sin tener que preocuparse por el esquema de almacenamiento, así como escribir el código teniendo en cuenta la eficacia y el mantenimiento.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. Mientras tanto, los diseñadores del esquema de almacenamiento pueden centrarse en la eficacia en el acceso a los datos, el almacenamiento y la escalabilidad.Meanwhile storage schema designers can focus on the efficiency of data access, storage, and scalability.

En esta secciónIn This Section

Los temas de esta sección describen los conceptos de Entity Data Model.Topics in this section describe the concepts of the Entity Data Model. Cualquier ADSL que implemente EDM debe incluir los conceptos descritos a continuación.Any DSL that implements the EDM should include the concepts described here. Tenga en cuenta que el ADO.NET Entity Framework usa CSDL para definir los modelos conceptuales.Note that the ADO.NET Entity Framework uses CSDL to define conceptual models. Para obtener más información, consulte especificación de CSDL.For more information, see CSDL Specification.

Conceptos clave de Entity Data ModelEntity Data Model Key Concepts

Entity Data Model: Espacios de nombresEntity Data Model: Namespaces

Entity Data Model: Tipos de datos primitivosEntity Data Model: Primitive Data Types

Entity Data Model: HerenciaEntity Data Model: Inheritance

extremo de asociaciónassociation end

multiplicidad de extremo de asociaciónassociation end multiplicity

conjunto de asociacionesassociation set

extremo del conjunto de asociacionesassociation set end

tipo de asociaciónassociation type

tipo complejocomplex type

contenedor de entidadesentity container

clave de entidadentity key

conjunto de entidadesentity set

tipo de entidadentity type

facetfacet

propiedad de clave externaforeign key property

función declarada por el modelomodel-declared function

función definida por el modelomodel-defined function

propiedad de navegaciónnavigation property

propiedadproperty

restricción de integridad referencialreferential integrity constraint

Vea tambiénSee Also

Herramientas de Entity Data Model de ADO.NETADO.NET Entity Data Model Tools
Introducción al archivo .edmx.edmx File Overview
Especificación CSDLCSDL Specification