Aplicaciones de capa de datos (DAC)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Una aplicación de capa de datos (DAC) es una entidad lógica de base de datos que define todos los objetos de SQL Server -como tablas, vistas y objetos de instancia, incluidos los inicios de sesión- asociados a la base de datos de un usuario. Una DAC es una unidad independiente del modelo de base de datos completo y es portátil en un artefacto conocido como paquete DAC o .dacpac. La compatibilidad con herramientas para aplicaciones de capa de datos permite a los desarrolladores y administradores de bases de datos implementar dacpac en bases de datos nuevas o existentes. Las implementaciones en una base de datos existente actualizan el modelo de base de datos desde el estado existente para que coincida con el contenido del dacpac. Los desarrolladores compilan DAC a partir de proyectos de base de datos SQL, un concepto de desarrollo declarativo para compilar objetos SQL que permiten el control de código fuente en el esquema de la base de datos.

Un .bacpac es un artefacto relacionado que encapsula de forma predeterminada el esquema de la base de datos y los datos almacenados en la base de datos. El caso de uso principal de un BACPAC es mover una base de datos de un servidor a otro (o migrar una base de datos de un servidor local a la nube) y almacenar una base de datos existente en un formato abierto.

Ventajas de las aplicaciones de capa de datos

El ciclo de vida de una aplicación de base de datos puede implicar que los desarrolladores y los DBA intercambien scripts y compartan notas de integración de uso único para las actividades de actualización de la aplicación. Aunque este proceso es aceptable en algunas circunstancias, puede ser difícil de integrar con canalizaciones de DevOps y procesos de desarrollo generales.

Las aplicaciones de capa de datos permiten el desarrollo declarativo de bases de datos, simplifican el proceso de desarrollo y proporcionan una experiencia de desarrollo más coherente y predecible. Un desarrollador puede crear una base de datos con proyectos de base de datos SQL en su elección del entorno de desarrollo integrado (IDE). Un proyecto de base de datos SQL se puede compilar en un paquete DAC localmente o en una canalización de DevOps. El paquete DAC se implementa a su vez en una base de datos de prueba, ensayo o producción a través de un proceso automatizado o manualmente con una herramienta de CLI o GUI. El .dacpac se puede usar para actualizar una base de datos con objetos nuevos o modificados, para revertir a una versión anterior de la base de datos o para aprovisionar una base de datos completamente nueva. Por el contrario, se puede generar un .dacpac a partir de una base de datos existente y usarse para establecer un proyecto de base de datos SQL basado en el esquema de base de datos actual.

La ventaja de una implementación controlada por DAC a través de un proceso controlado por la migración es que el proceso permite la identificación y validación de comportamientos de diferentes bases de datos de origen y destino. Las herramientas que se usan durante la implementación o actualización de la base de datos tienen opciones para marcar acciones de riesgo, como los cambios de tamaño de columna que pueden provocar la pérdida de datos y la capacidad de crear scripts directamente del plan de actualización. Este plan se puede evaluar manualmente antes de continuar con la actualización.

Operations

Una DAC simplifica el desarrollo, la implementación y la administración de elementos de capa de datos que admiten una aplicación:

DACPAC

Un DAC admite las siguientes operaciones:

Estas funcionalidades se pueden encontrar en SqlPackage, SQL Server Management Studio, Azure Data Studio y SQL Server Data Tools.

Proyecto de base de datos de SQL

Un proyecto SQL admite las siguientes operaciones:

  • BUILD - el usuario puede compilar un proyecto de base de datos SQL en un .dacpac.

  • PUBLISH - el usuario puede publicar un proyecto de base de datos SQL en un servidor de alojamiento.

  • EXTRACT - el usuario puede extraer una base de datos en un proyecto de base de datos SQL.

Estas funcionalidades se pueden encontrar en Azure Data Studio, Visual Studio Code y SQL Server Data Tools.

BACPAC

Por otro lado, un .bacpac, está dirigido a capturar el esquema y los datos que respaldan dos operaciones principales:

Estas capacidades están soportadas por las herramientas SqlPackage, SQL Server Management Studio, Azure Data Studio y el Azure Portal.

Herramientas de DAC

Los artefactos de aplicación de capa de datos y los proyectos de SQL se pueden usar en varias herramientas. Estas herramientas abordan los requisitos de diferentes roles de usuario.

DACPAC y BACPAC

Las siguientes herramientas admiten el paquete DAC y el formato de paquete BAC:

En estas herramientas, una base de datos se puede extraer a un .dacpac o exportarse a un .bacpac. Por el contrario, se puede importar un .bacpac en una nueva base de datos o se puede publicar un .dacpac en una base de datos nueva o existente.

Proyectos DACPAC y SQL

Las siguientes herramientas admiten el formato de paquete DAC además de proporcionar la edición de proyectos de base de datos SQL:

En estas herramientas, los desarrolladores pueden diseñar una base de datos en un entorno de desarrollo del lado cliente no conectado. Las herramientas se pueden usar para crear un paquete DAC, implementar un paquete DAC en una base de datos e importar un paquete de base de datos en un proyecto de SQL.

Conceptos de DAC

Compatibilidad con versiones

En general, las herramientas de DAC pueden leer archivos .dacpac generados por herramientas de DAC en versiones anteriores de SQL Server y también pueden implementar paquetes DAC en versiones anteriores de SQL Server. Sin embargo, las herramientas de DAC de versiones anteriores no pueden leer archivos .dacpac generados por herramientas de DAC en versiones posteriores. Como mínimo, las herramientas de DAC admiten las versiones en soporte técnico de SQL Server en el momento de su lanzamiento.

Formato de archivo

Un .dacpac es una carpeta comprimida con una extensión .dacpac y, de forma similar un .bacpac es una carpeta comprimida con una extensión .bacpac. Un usuario avanzado puede desempaquetar el archivo para ver las varias secciones XML que representan detalles del origen, los objetos de la base de datos y otras características. Para desempaquetar un .dacpac o .bacpac, reemplace la extensión de archivo por .zip y use una utilidad de compresión de archivos para descomprimir el archivo.

Registro de aplicaciones de capa de datos

En SQL Server Management Studio se pueden realizar otras acciones en una base de datos para registrarla como una aplicación de capa de datos.

  • REGISTER: el usuario puede registrar una base de datos como una aplicación de capa de datos.

  • UNREGISTER: se puede anular del registro una base de datos registrada anteriormente como DAC.

  • UPGRADE - se puede actualizar una base de datos mediante un .dacpac.

Para más información sobre estas acciones, consulte las tareas siguientes.

Tarea Vínculo al artículo
Describe cómo usar un archivo de paquete DAC para actualizar una instancia a una nueva versión de la DAC. Actualizar una aplicación de capa de datos
Describe cómo quitar una instancia de DAC. Puede elegir también separar o quitar la base de datos asociada o dejar la base de datos intacta. Eliminar una aplicación de capa de datos
Describe cómo promover una base de datos existente para que sea una instancia de DAC. La definición de DAC está compilada y almacenada en las bases de datos del sistema. Registrar una base de datos como una DAC
Describe cómo consultar el contenido de un paquete DAC y las acciones que una actualización de DAC realizará antes de usar el paquete en un sistema de producción. Validar un paquete de DAC

Pasos siguientes