Application de la couche Données (DAC)
S’applique à : SQL Server Base de données Azure SQL Azure SQL Managed Instance
Une application de la couche Données (DAC) est une entité de gestion 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, qui sont associés à une base de données 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 un .dacpac sur des bases de données nouvelles ou existantes. Les déploiements vers une base de données existante mettent à 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 la base de données.
Un .bacpac est un artefact connexe qui encapsule le schéma de la 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 le partage et l'échange par les développeurs et les administrateurs de bases de données de scripts et de notes d'intégration à usage unique pour les opérations de mise à jour d'application. Bien que ce processus soit acceptable dans certaines circonstances, il peut être difficile d’intégrer Azure Pipelines 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 d’Azure. Le package DAC est à son tour déployé sur une base de données de test, de simulation ou de production via un processus automatisé ou manuellement avec une interface CLI ou un outil GUI. Le .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 la 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/de la mise à niveau de la base de données ont des options permettant d’indiquer 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 .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 « deployer ». Pour plus d’informations, consultez Publication de 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 capacité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 .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 capacités sont disponibles dans Azure Data Studio, Visual Studio Code et SQL Server Data Tools.
BACPAC
Un .bacpac, en revanche, consiste principalement à capturer le schéma et les données prenant en charge deux opérations majeures :
EXPORT- l’utilisateur peut exporter le schéma et les données d’une base de données vers un .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 deux capacités sont prises en charge par les outils SqlPackage, SQL Server Management Studio, Azure Data Studio et le 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 utilisateurs.
DACPAC et BACPAC
Les outils suivants prennent en charge les formats de package DAC et package BAC :
Dans ces outils, une base de données peut être extraite dans un .dacpac ou exportée vers un .bacpac. À l’inverse, un .bacpac peut être importé dans une nouvelle base de données ou un .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 et permettent, en plus, 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 DAC
Prise en charge de la version
En général, les outils DAC sont capables de lire des fichiers .dacpac générés par les outils DAC de versions précédentes de SQL Server et peuvent également déployer des packages DAC dans des versions précédentes de SQL Server. Toutefois, les outils DAC de versions antérieures ne peuvent pas lire les fichiers .dacpac générés par les outils DAC 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 .dacpac est un dossier compressé avec une extension .dacpac. De même, un .bacpac est un dossier compressé avec une extension .bacpac. Un utilisateur de la version Advanced peut décompresser le fichier pour afficher les diverses 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 .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 .dacpac.
Pour plus d'informations sur chacune de ces tâches, 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 |