Entity Framework y otras plataformas

La mayor parte de las aplicaciones usan en gran medida bases de datos relacionales. Los programadores necesitan un modelo de datos que conecte el código de las aplicaciones con las estructuras de almacenamiento.

El Entity Data Model (EDM) es compatible con escenarios de aplicaciones que engloban varios modelos de almacenamiento y se corresponde tanto con los sistemas de administración de bases de datos como SQL Server, como con el CLR. La correspondencia con el CLR se precisa por la capacidad de programación, mientras que la correspondencia con las bases de datos relacionales se requiere debido a la necesidad de persistencia. Con la introducción del EDM, ADO.NET proporciona una plataforma completa para asignar los tipos programables al almacenamiento.

Existen al menos cuatro plataformas que son candidatas para un nuevo modelo de datos:

  • SQL Server

  • Common Language Runtime (CLR)

  • Lenguaje de modelos unificado (UML, Unified Modeling Language)

  • Lenguaje de definición de esquema XML (XSD, XML Schema Definition)

Ninguna de las plataformas existentes cumple todos los requisitos de las aplicaciones de datos.

  • SQL Server no permite una integración sencilla con los lenguajes de programación. El código de sus consultas basadas en texto suele ser complicado. Las tablas de base de datos modelan las relaciones mediante claves externas. SQL no puede modelar una contención estricta.

  • CLR no tiene las restricciones necesarias para modelar relaciones.

  • UML es demasiado abstracto. No implementa tipos de datos ni la persistencia.

  • La especificación XSD difiere demasiado de las clases de los lenguajes de programación y los esquemas de base de datos como para proporcionar un formato neutral para la asignación tanto del CLR como de los modelos de bases de datos relacionales.

Correspondencia del EDM con CLR y con los sistemas de administración de bases de datos

El EDM se corresponde tanto con el CLR como con las bases de datos relacionales. El CLR permite a los programadores usar formatos de código conocidos para los datos. Los tipos de datos del código se asignan a las bases de datos relacionales, que constituyen el estándar probado para conseguir la persistencia de los datos.

Con el fin de implementar una correspondencia entre los esquemas, los lenguajes de programación y las tablas de base de datos, el EDM usa un mecanismo de vistas independientes del almacén que aprovecha la ingeniería de los sistemas de administración de bases de datos relacionales. Las aplicaciones convencionales ya usan las vistas de bases de datos para la presentación de los datos y en las actualizaciones, pero la creación de vistas suele requerir la compleja sintaxis de SQL que implica el uso de combinaciones de tablas y proyecciones. La correspondencia del EDM entre los esquemas y el almacenamiento conecta los objetos del código con la base de datos a través de un proveedor de datos de ADO.NET.

Los servicios de datos del EDM no dependen de ningún esquema de almacenamiento en especial. Las aplicaciones que requieren varios orígenes de datos pueden mantener asignaciones individuales para cada uno.

Plataforma de desarrollo

El EDM apoya el diseño de aplicaciones en cada fase de la implementación. El EDM admite numerosas construcciones existentes de utilidad, y su diseño usa conceptos extraídos de sistemas de modelado de datos bien definidos como el modelo de bases de datos relacionales, el modelo entidad-relación y Common Language Runtime (CLR).

El EDM modela características complejas de las aplicaciones y capta de forma declarativa las relaciones semánticas entre los objetos programables y el almacenamiento en bases de datos.

El EDM comprende las características del modelo de bases de datos relacionales y lo amplía mediante la incorporación del establecimiento inflexible de tipos, identidades del nivel de entidad, referencias y relaciones.

Dado que la especificación del EDM es extensa, puede usar un subconjunto. Por ejemplo, una aplicación o marco puede usar entidades, asociaciones y referencias, y no utilizar la herencia.

El EDM se puede entender de acuerdo con dos principios:

  • Se pueden definir tipos nuevos y extensiones de los tipos existentes mediante la herencia. Las aplicaciones pueden definir relaciones entre los tipos y a través de los límites de los esquemas.

  • Las extensiones de los datos existentes integrados en el EDM no afectan a las características que no las usan.

El uso compartido entre aplicaciones y entre marcos se puede lograr definiendo modelos de datos de aplicación en los términos del EDM. El espacio de nombres definido para una aplicación se puede usar desde otra aplicación creada de acuerdo con el EDM.

El modelo de consulta está diseñado para estar encuadrado en el álgebra relacional. Esto significa que al aplicar operadores relacionales a los conceptos del EDM se consiguen resultados que también se encuentran en el EDM.

La integración del EDM con CLR plasma una semántica versátil para los datos. El sistema de tipos del EDM hace corresponder las declaraciones de los lenguajes de programación con los datos de las estructuras de almacenamiento subyacentes.

Las entidades del EDM son lógicamente independientes de la implementación de la persistencia empleada. El modelo de datos no dicta ninguna asignación o implementación concreta, y las entidades se pueden asignar a diversos orígenes de datos físicos. El EDM no está pensado para abarcar ni reemplazar al lenguaje de definición de datos (DDL, Data Definition Language) de SQL Server.

Etapas del diseño

El diseño e implementación de un modelo de datos con la especificación del EDM requiere tres fases preliminares de desarrollo. En orden, a continuación se explica lo que sucede en cada fase del proceso.

  • Las entidades y las relaciones del dominio de la aplicación se especifican en un archivo XML.

  • Los metadatos que describen las estructuras de la base de datos que almacenarán los datos de la aplicación se especifican en un segundo archivo XML.

  • Las entidades y las relaciones del primer esquema se asignan a las estructuras de bases de datos correspondientes en el archivo de metadatos.

El primer esquema representa una fase conceptual de desarrollo en la que las entidades y las relaciones se definen mediante una sintaxis XML que se conoce como lenguaje de definición de esquemas conceptuales (CSDL, Conceptual Schema Definition Language). Los archivos de este tipo tienen la extensión .csdl. Para obtener más información sobre la sintaxis de CSDL, vea Esquemas EDM.

El esquema de metadatos de almacenamiento usa el lenguaje de definición de esquemas de almacenamiento (SSDL, Store Schema Definition Language)

En la asignación de esquemas conceptuales a los metadatos de almacenamiento se usa una tercera sintaxis XML que se conoce como lenguaje de especificación de asignaciones (MSL, Mapping Specification Language). Para obtener más información sobre cómo asignar las entidades y relaciones, y de los tipos de esquemas EDM, vea Especificación de asignaciones y esquemas (Entity Framework).

El esquema de CSDL se usa para generar el modelo de objetos programables que se usa en el código de la aplicación. Los lenguajes que son compatibles con Common Language Runtime (CLR) pueden usar el modelo de objetos que se crea en el proceso de compilación. Para ver ejemplos de código de aplicaciones, vea Aplicaciones de ejemplo (Entity Framework).

Vea también

Conceptos

Implementar entidades (EDM)
Implementar asociaciones (EDM)

Otros recursos

Especificaciones del EDM
Aplicaciones de ejemplo (Entity Framework)