Applications de la couche Données (DAC)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Une application de couche données (DAC) est une entité de base de données logique qui définit tous les objets SQL Server, tels que les tables, les vues et les objets d’instance, y compris les connexions, associées à la base de données d’un utilisateur. Une DAC est une unité autonome de l’ensemble du modèle de base de données et est portable dans un artefact appelé package DAC ou .dacpac. La prise en charge des outils pour les applications de la couche Données permet aux développeurs et aux administrateurs de base de données de déployer des dacpacs sur des bases de données nouvelles ou existantes. Les déploiements vers une base de données existante met à jour le modèle de base de données à partir de l’état existant pour qu’il corresponde au contenu du dacpac. Les développeurs créent des DACs à partir de projets de base de données SQL, un concept de développement déclaratif pour la création d’objets SQL qui active le contrôle de code source sur le schéma de base de données.

Un fichier .bacpac est un artefact associé qui encapsule par défaut le schéma de base de données et les données stockées dans la base de données. L’utilisation principale d’un BACPAC consiste à déplacer une base de données d’un serveur vers un autre, ou de migrer une base de données d’un serveur local vers le cloud, et à archiver une base de données existante dans un format ouvert.

Avantages des applications de la couche Données

Le cycle de vie d’une application de base de données peut impliquer des développeurs et des administrateurs de base de données qui échangent des scripts et partagent des notes d’intégration à usage unique pour les activités de mise à jour d’application. Bien que ce processus soit acceptable dans certaines circonstances, il peut être difficile d’intégrer des pipelines DevOps et des processus de développement généraux.

Les applications de la couche Données permettent le développement de bases de données déclaratives, ce qui simplifie le processus de développement et offre une expérience de développement plus cohérente et prévisible. Un développeur peut créer une base de données avec des projets de base de données SQL dans son choix d’environnement de développement intégré (IDE). Un projet de base de données SQL peut être compilé localement dans un package DAC ou dans un pipeline DevOps. Le package DAC est à son tour déployé sur une base de données de test, intermédiaire ou de production via un processus automatisé ou manuellement avec une interface CLI ou un outil GUI. . dacpac peut être utilisé pour mettre à jour une base de données avec des objets nouveaux ou modifiés, pour revenir à une version précédente de la base de données ou pour approvisionner une base de données entièrement nouvelle. À l’inverse, un .dacpac peut être généré à partir d’une base de données existante et utilisé pour établir un projet de base de données SQL basé sur le schéma de base de données actuel.

L’avantage d’un déploiement piloté par la DAC sur un processus piloté par la migration est que le processus permet l’identification et la validation des comportements provenant de différentes bases de données sources et cibles. Les outils utilisés lors du déploiement/mise à niveau de la base de données ont des options permettant d’marquer des actions risquées telles que les modifications de taille de colonne susceptibles d’entraîner une perte de données et la possibilité de scripter directement le plan de mise à niveau. Ce plan peut être évalué manuellement avant de poursuivre la mise à jour.

Opérations

Une DAC simplifie le développement, le déploiement et la gestion des éléments de la couche Données qui prennent en charge une application.

DACPAC

Une DAC prend en charge les opérations suivantes :

  • EXTRACT : l’utilisateur peut extraire une base de données dans un fichier .dacpac. Pour plus d’informations, consultez l’extraction sqlPackage et l’extraction d’une DAC à partir d’une base de données.

  • DEPLOY/PUBLISH : l’utilisateur peut déployer un .dacpac sur un serveur hôte. Lorsque le déploiement est effectué sur une base de données existante, la différence entre la base de données et la DAC est appliquée à la base de données en tant qu’opération de mise à jour d’objet. Le terme « publier » est souvent utilisé de façon interchangeable avec « deploy ». Pour plus d’informations, consultez Publication SqlPackage, Déploiement d’une application de la couche Données et Déploiement d’une base de données à l’aide d’une DAC.

Ces fonctionnalités sont disponibles dans SqlPackage, SQL Server Management Studio, Azure Data Studio et SQL Server Data Tools.

Projets de base de données SQL

Un projet SQL prend en charge les opérations suivantes :

  • BUILD : l’utilisateur peut générer un projet de base de données SQL dans un fichier .dacpac.

  • PUBLIER : l’utilisateur peut publier un projet de base de données SQL sur un serveur hôte.

  • EXTRACT : l’utilisateur peut extraire une base de données dans un projet de base de données SQL.

Ces fonctionnalités sont disponibles dans Azure Data Studio, Visual Studio Code et SQL Server Data Tools.

BACPAC

Un fichier .bacpac, d’autre part, se concentre sur la capture du schéma et des données prenant en charge deux opérations principales :

  • EXPORT : l’utilisateur peut exporter le schéma et les données d’une base de données vers un fichier .bacpac. Pour plus d’informations, consultez Exportation sqlPackage et exportation d’une application de la couche Données.

  • IMPORT : l’utilisateur peut importer le schéma et les données dans une nouvelle base de données. Pour plus d’informations, consultez Importation sqlPackage et importation d’un fichier BACPAC pour créer une base de données utilisateur.

Ces fonctionnalités sont prises en charge par les outils SqlPackage, SQL Server Management Studio, Azure Data Studio et les Portail Azure.

Outils DAC

Les artefacts d’application de la couche Données et les projets SQL peuvent être utilisés dans plusieurs outils. Ces outils répondent aux exigences des différents personnages utilisateur.

DACPAC et BACPAC

Les outils suivants prennent en charge le package DAC et le format de package BAC :

Dans ces outils, une base de données peut être extraite dans un fichier .dacpac ou exportée vers un fichier .bacpac. À l’inverse, un fichier .bacpac peut être importé dans une nouvelle base de données ou un fichier .dacpac peut être publié dans une base de données nouvelle ou existante.

Projets DACPAC et SQL

Les outils suivants prennent en charge le format de package DAC en plus de fournir la modification des projets de base de données SQL :

Dans ces outils, les développeurs peuvent concevoir une base de données dans un environnement de développement côté client non connecté. Les outils peuvent être utilisés pour créer un package DAC, déployer un package DAC sur une base de données et importer un package de base de données dans un projet SQL.

Concepts de DAC

Prise en charge de la version

En général, les outils DAC sont capables de lire les fichiers .dacpac générés par les outils DAC des versions précédentes de SQL Server et peuvent également déployer des packages DAC sur des versions précédentes de SQL Server. Toutefois, les outils DAC des versions antérieures ne peuvent pas lire les fichiers .dacpac générés par les outils DAC à partir de versions ultérieures. Au minimum, les outils DAC prennent en charge les versions in-support de SQL Server au moment de leur publication.

Format de fichier

Un fichier .dacpac est un dossier compressé avec une extension .dacpac. De même, un fichier .bacpac est un dossier compressé avec une extension .bacpac. Un utilisateur avancé peut décompresser le fichier pour afficher les plusieurs sections XML représentant les détails de l’origine, les objets de la base de données et d’autres caractéristiques. Pour décompresser un fichier .dacpac ou .bacpac, remplacez l’extension de fichier par .zip et utilisez un utilitaire de compression de fichier pour décompresser le fichier.

Inscription d’application de la couche Données

Dans SQL Server Management Studio, d’autres actions peuvent être effectuées sur une base de données pour l’inscrire en tant qu’application de la couche Données.

  • REGISTER : l’utilisateur peut inscrire une base de données en tant qu’application de la couche Données.

  • UNREGISTER : il est possible d’annuler l’inscription d’une base de données déjà inscrite comme DAC.

  • UPGRADE : une base de données peut être mise à niveau à l’aide d’un fichier .dacpac.

Pour plus d’informations sur ces actions, consultez les tâches ci-dessous.

Tâche Lien vers un article
Explique comment utiliser un nouveau fichier de package DAC pour mettre à niveau une instance vers une nouvelle version de la DAC. Mettre à niveau une application de la couche Données
Explique comment supprimer une instance DAC. Vous pouvez également choisir de détacher ou de supprimer la base de données associée, ou de laisser la base de données intacte. Supprimer une application de la couche Données
Explique comment promouvoir une base de données existante en tant qu'instance DAC. Une définition de DAC est créée et stockée dans les bases de données système. Inscrire une base de données en tant que DAC
Explique comment vérifier le contenu d'un package DAC et les actions associées à la mise à niveau d'une DAC avant d'utiliser le package dans un système de production. Valider un package DAC

Étapes suivantes