Explicar las aplicaciones de capa de datos

Una aplicación de capa de datos (DAC) es una entidad que contiene todos los objetos de base de datos y de instancia que utiliza una aplicación. Una DAC proporciona una unidad única para crear, implementar y administrar los objetos de capa de datos en lugar de tener que administrarlos por separado. Una DAC permite una mayor integración del desarrollo de la capa de datos con el desarrollo del código de aplicación asociado. También ofrece a los administradores una visión a nivel de la aplicación del uso de los recursos de sus sistemas.

Trabajar con las aplicaciones de capa de datos

Use los siguientes procesos para trabajar con una DAC:

  • Primero, cree un tipo de DAC o definición de DAC, que especifica los objetos utilizados por la aplicación asociada. A continuación, la definición de DAC se integra en un paquete DAC, que es el archivo usado para implementar y actualizar la DAC. Hay dos maneras de crear una definición y paquete DAC:

    • Abra un proyecto de aplicación de capa de datos en Microsoft Visual Studio 2010 y especifique los objetos que componen la DAC. Al generar el proyecto DAC, Visual Studio compila una definición de DAC y la incluye en un paquete DAC.

    • Extraiga una definición de DAC de una base de datos existente y cree un paquete DAC usando el Asistente Extraer aplicación de capa de datos.

    Para obtener más información, vea Implementar aplicaciones de capa de datos.

  • El paquete DAC se implementa en una instancia de Motor de base de datos usando el Asistente Implementar aplicación de capa de datos. La implementación del paquete DAC normalmente se coordina con la implementación de los archivos ejecutables de la aplicación. La implementación crea una instancia de la DAC, que tiene dos partes principales:

    • La definición DAC se almacena en la base de datos del sistema msdb (base de datos maestra en SQL Azure).

    • Una base de datos de usuario se crea y rellena con los objetos especificados en la definición de DAC.

    Si la instancia del motor de base de datos es una instancia administrada en la Utilidad de SQL Server, la DAC se carga en el punto de control de la utilidad como una DAC implementada.

    Para obtener más información, vea Implementar aplicaciones de capa de datos.

  • Las aplicaciones se conectan a la base de datos asociada a la DAC. Los administradores pueden supervisar y administrar la base de datos asociada a la DAC usando procedimientos establecidos. Sin embargo, pueden obtener información adicional de la propia DAC:

    • El nodo Deployed Data-tier Applications del Explorador de la utilidad de SQL Server Management Studio (SSMS) presenta un informe del uso de recursos centrado en la aplicación que permite a los administradores evaluar el estado de sus instancias de la aplicación de capa de datos más rápidamente.

    • El nodo Data-tier Application del Explorador de objetos de Management Studio notifica las propiedades para cada instancia de DAC.

  • Una DAC simplifica el proceso de admisión de actualizaciones de una versión de una base de datos a otra. Al implementar bases de datos usando scripts Transact-SQL, los desarrolladores de la base de datos tienen que integrar dos conjuntos de scripts para cada versión de la base de datos después del primero. Puede usarse un conjunto de scripts para actualizar una base de datos existente a la nueva versión y el otro conjunto se puede emplear para instalar una nueva base de datos. Cuando se usan DAC, el desarrollador de bases de datos solo tiene que generar un paquete DAC que describe el esquema usado por la nueva versión de la aplicación. Puede usar el paquete con el Asistente Implementar aplicación de capa de datos para instalar una nueva instancia de la DAC. El mismo paquete puede emplearse con el Asistente Actualizar aplicación de capa de datos para actualizar una instancia de DAC existente. El Asistente Actualizar aplicación de capa de datos compara los dos esquemas y dinámicamente realiza las acciones necesarias para transformar la instancia de la DAC existente en la nueva versión de la DAC.

    Para obtener más información, vea Actualizar aplicaciones de capa de datos.

  • La DAC se puede eliminar de la instancia de Motor de base de datos usando el Asistente Eliminar aplicación de capa de datos.

Para obtener más información acerca de la generación y uso de una DAC, vea Tutoriales sobre aplicaciones de capa de datos.

Elementos de las aplicaciones de capa de datos

Una definición de DAC contiene los siguientes elementos:

  • Propiedades DAC que definen características de la DAC. Por ejemplo, cada DAC tiene una propiedad de nombre de aplicación y una propiedad de versión cuyos valores se relacionan normalmente con el nombre y número de versión de la aplicación asociada.

  • Las definiciones de todos los objetos de la base de datos usados por la aplicación, como esquemas, tablas, vistas y procedimientos almacenados. Las DAC creadas con SQL Server 2008 R2 o Visual Studio 2010 no son compatibles con todos los objetos SQL Server disponibles. Para obtener más información, vea Compatibilidad de DAC con las versiones y objetos de SQL Server.

  • Definiciones de los objetos a nivel de instancia, como inicios de sesión, asociadas con los objetos de la base de datos y usadas por la aplicación.

  • Una directiva de selección de servidor que defina los prerrequisitos que debe cumplir una instancia de Motor de base de datos para hospedar la DAC. La directiva se define usando la faceta Selección de servidor y puede evaluar condiciones como la edición e intercalación predeterminada de la instancia.

  • Los archivos y scripts que se pueden insertar en la definición de DAC cuando se crea en Visual Studio. Como ejemplos podemos citar documentos de aplicación, planes de generación de datos que especifican cómo crear datos de pruebas significativos, o scripts previos y posteriores a la implementación.

Proyecto de aplicación de capa de datos

Una DAC se desarrolla normalmente en Visual Studio 2010 por un desarrollador de bases de datos usando un proyecto de aplicación de capa de datos. El desarrollador define los objetos de capa de datos necesarios para la aplicación que la DAC que se está desarrollando va a admitir. Cuando la DAC está preparada para los desarrolladores de aplicaciones o el equipo de pruebas, el desarrollador de bases de datos integra el proyecto DAC, que crea un archivo empaquetado DAC que se puede usar para implementar la DAC.

Para obtener más información acerca de los proyectos DAC, vea Implementar aplicaciones de capa de datos.

Paquete de aplicación de capa de datos

Cuando una DAC está lista para su implementación, se integra en un paquete DAC, que es un archivo que contiene la definición de DAC. El paquete DAC es una unidad única de implementación, del mismo modo que un archivo ejecutable es una unidad de implementación para el código de aplicación. Un paquete DAC normalmente se integra en conjunción con un archivo ejecutable de aplicación. Cuando los administradores del sistema implementan el archivo ejecutable en la capa de aplicación o los equipos cliente, los administradores de bases de datos implementan el paquete DAC asociado a una instancia de Motor de base de datos. 

Por ejemplo, un equipo de desarrollo está desarrollando una aplicación de 3 capas denominada Finanzas. La compilación 1.0.1.123 de la aplicación pasa todas las pruebas de aceptación y está lista para implementarse en producción. Los desarrolladores entregan una versión 1.0.1.123 del archivo Finance.exe a los administradores del sistema para su implantación en los servidores de aplicaciones de producción. Los desarrolladores de bases de datos entregan una versión 1.0.1.123 del archivo Finance.dacpac a los administradores de la base de datos de producción para su implementación en una instancia de producción de Motor de base de datos.

Un paquete DAC es un archivo zip que contiene varios archivos XML. Para obtener más información acerca del contenido del archivo empaquetado DAC, vea Documentos sobre los formatos de archivo de Microsoft SQL Server.

Instancia de aplicación de capa de datos

Cuando una DAC se implementa en una instancia de Motor de base de datos, forma una instancia de DAC:

  • Se crea una base de datos usando las propiedades predeterminadas de la base de datos para esa instancia de Motor de base de datos. Los objetos de la base de datos definidos en la DAC se crean en la nueva base de datos.

  • Se crean todos los objetos a nivel de instancia definidos en la DAC, como los inicios de sesión.

  • La definición de DAC original y los metadatos sobre la instancia de DAC están almacenados en la base de datos del sistema msdb (base de datos maestra en SQL Azure).

Una vez implementada la instancia, los usuarios pueden comenzar a trabajar con los objetos y a agregar datos a la base de datos creada para la DAC.

Crear aplicaciones de capa de datos para bases de datos existentes

Puede usar el Asistente Extraer aplicación de capa de datos para extraer una definición de DAC de una base de datos existente. La definición de DAC contiene los objetos seleccionados de la base de datos y objetos a nivel de instancia, como los inicios de sesión, que se asignan a los usuarios de la base de datos. El asistente integra la definición de la DAC en un paquete DAC. El paquete DAC extraído normalmente se importa a continuación a un proyecto DAC en Visual Studio, donde se inicia el desarrollo en la versión siguiente de la aplicación. También puede usar el paquete extraído para implementar la DAC en otra instancia de Motor de base de datos.

Asimismo puede emplearse el Asistente Registrar aplicación de capa de datos para registrar una DAC en una base de datos existente. El asistente crea una definición de la DAC que incluye los objetos de la base de datos existente y, a continuación, almacena la definición en la base de datos msdb (base de datos master en SQL Azure). Si la instancia de Motor de base de datos es una instancia administrada en la Utilidad de SQL Server, el registro de la DAC se carga en el punto de control de la utilidad como una DAC implementada.