Основные сведения о приложениях уровня данных

Приложение уровня данных (DAC) — сущность, которая содержит все объекты базы данных и экземпляра, используемые приложением. Приложение уровня данных предоставляет единый модуль для разработки, развертывания и управления объектами уровня данных вместо нескольких для отдельного управления этими объектами. Приложение DAC обеспечивает глубокую интеграцию разработки уровня данных с разработкой связанного кода приложений. Оно также дает администраторам представление об использовании ресурсов в их системах на уровне приложения.

Работа с приложениями уровня данных

Используйте следующие процедуры для работы с DAC.

  • Сначала создайте тип DAC или определение DAC, которое задает объекты, используемые связанным с ним приложением. Затем выполните построение определения DAC в пакет DAC, файл которого используется для развертывания и обновления DAC. Существует два способа создания определения и пакета DAC.

    • Откройте проект приложения уровня данных в среде Microsoft Visual Studio 2010 и задайте объекты, которые образуют DAC. При выполнении построения проекта DAC среда Visual Studio компилирует определение DAC и помещает его в пакет DAC.

    • Извлеките определение DAC из существующей базы данных и создайте пакет DAC, используя мастер извлечения приложения уровня данных.

    Дополнительные сведения см. в разделе Реализация приложений уровня данных.

  • Пакет DAC развертывается на экземпляре компонента Database Engine с использованием мастера извлечения приложения уровня данных. Как правило, развертывание пакета DAC координируется с развертыванием исполняемых файлов приложений. В результате развертывания создается экземпляр DAC, который содержит две основные части.

    • Определение приложения уровня данных хранится в системной базе данных msdb (база данных master в SQL Azure).

    • Создается пользовательская база данных, которая заполняется объектами, заданными в определении DAC.

    Если экземпляр компонента Database Engine является управляемым экземпляром в SQL Server Utility, приложение DAC загружается в пункт управления программой как развертываемое приложение DAC.

    Дополнительные сведения см. в разделе Развертывание приложений уровня данных.

  • Приложения подключаются к базе данных, связанной с приложением DAC. Администраторы, используя имеющиеся процедуры, могут наблюдать за базой данных, связанной с DAC, и управлять ею. Однако администраторы могут получить дополнительные сведения непосредственно от DAC.

    • Узел Развернутые приложения уровня данных в Обозревателе программ среды Среда SQL Server Management Studio (SSMS) предоставляет отчет об использовании ресурсов для приложений, который дает администраторам более быструю оценку исправности экземпляров приложений уровня данных.

    • Узел Приложение уровня данных в Обозревателе объектов среды Management Studio предоставляет отчет о свойствах для каждого экземпляра DAC.

  • Приложение DAC упрощает процесс поддержки обновления от одной версии базы данных к другой. При развертывании базы данных с помощью сценария Transact-SQL разработчики баз данных должны выполнять построение двух наборов сценариев для каждой последующей версии базы данных. Один набор сценариев может быть использован для обновления существующей базы данных до новой версии, другой — для установки новой базы данных. При использовании приложений DAC разработчик базы данных должен выполнить построение только одного пакета DAC, который описывает схему, используемую новой версией приложения. Для установки нового экземпляра DAC можно использовать этот пакет с мастером развертывания приложения уровня данных. Обновить существующий экземпляр приложения уровня данных можно с помощью этого же пакета и мастера обновления приложения уровня данных. Мастер обновления приложения уровня данных сравнивает две схемы и динамически выполняет операции, необходимые для преобразования существующего экземпляра приложения уровня данных в новую версию.

    Дополнительные сведения см. в разделе Обновление приложений уровня данных.

  • Приложение DAC можно удалить с экземпляра компонента Database Engine с помощью мастера удаления приложения уровня данных.

Дополнительные сведения о построении и использованием DAC см. в разделе Учебники по приложениям уровня данных.

Элементы приложения уровня данных

Определение DAC содержит следующие элементы.

  • Свойства DAC, определяющие характеристики DAC. Например, каждый пакет DAC имеет свойство «имя приложения» и «версия», значения которых обычно соответствуют имени и номеру версии связанного приложения.

  • Определения всех объектов базы данных, используемых приложением, таких как схемы, таблицы, представления и хранимые процедуры. Пакеты DAC, созданные в SQL Server 2008 R2 или в среде Visual Studio 2010, поддерживают не все существующие объекты SQL Server. Дополнительные сведения см. в разделе Поддержка приложений уровня данных для объектов и версий SQL Server.

  • Определения объектов уровня экземпляра, например имен входа, связанных с объектами базы данных и используемых приложением.

  • Политика выбора серверов, определяющая предварительные условия, которым должен удовлетворять экземпляр компонента Database Engine для размещения пакетов DAC. Политика определяется с помощью аспекта «Выбор сервера» и способна проверять такие условия, как выпуск и параметры сортировки экземпляра по умолчанию.

  • Файлы и сценарии, которые могут быть внедрены в определение DAC при его разработке в среде Visual Studio. Например, документы приложения, планы формирования данных, определяющие порядок создания значимых проверочных данных, сценарии, выполняемые перед развертыванием и после него.

Проект приложения уровня данных

Как правило, DAC разрабатываются в среде Visual Studio 2010 разработчиком баз данных с использованием проекта приложения уровня данных. Разработчик баз данных определяет объекты уровня данных, необходимые для поддержки разрабатываемого приложения DAC. Когда приложение DAC готово для использования разработчиками приложений или командой тестировщиков, разработчик базы данных выполняет построение проекта DAC, в результате чего создается файл пакета DAC, который может быть использован для развертывания DAC.

Дополнительные сведения о проектах DAC см. в разделе Реализация приложений уровня данных.

Пакет приложения уровня данных

Когда приложение DAC подготовлено для развертывания, выполняется его построение в пакет DAC, который представляет собой файл, содержащий определение DAC. Пакет приложения уровня данных — это единый элемент развертывания. Похожим образом исполняемый файл является элементом развертывания для кода приложения. Как правило, построение пакета приложения уровня данных выполняется совместно с исполняемым файлом приложения. При развертывании системными администраторами исполняемого файла на уровне приложений или клиентских компьютерах администраторы баз данных развертывают связанный с ним пакет приложения уровня данных на экземпляре Database Engine. 

Например, команда разработчиков разрабатывает трехуровневое приложение с названием Finance. Построение 1.0.1.123 этого приложения проходит все проверочные тесты и готово для развертывания в рабочей среде. Разработчики приложений передают версию 1.0.1.123 файла Finance.exe администраторам рабочей системы для ее развертывания на рабочих серверах приложений. Разработчики баз данных передают версию 1.0.1.123 файла Finance.dacpac администраторам рабочих баз данных для ее развертывания на рабочем экземпляре Database Engine.

Пакет DAC представляет собой ZIP-архив, содержащий несколько XML-файлов. Дополнительные сведения о содержимом файла пакета DAC см. в разделе Документация о форматах файлов Microsoft SQL Server.

Экземпляр приложения уровня данных

При развертывании DAC на экземпляре компонента Database Engine создается экземпляр DAC.

  • Создается база данных с использованием свойств базы данных по умолчанию для этого экземпляра компонента Database Engine. В новой базе данных создаются объекты базы данных, определенные в DAC.

  • Создаются объекты уровня экземпляра, определенные в DAC, например имена входа.

  • Исходное определение приложения уровня данных и метаданные экземпляра приложения уровня данных хранятся в системной базе данных msdb (база данных master в SQL Azure).

После развертывания экземпляра пользователи могут начать работать с объектами и добавлять данные в базу данных, созданную для DAC.

Создание приложений уровня данных для существующих баз данных

Мастер извлечения приложения уровня данных можно использовать для извлечения определения DAC из существующей базы данных. Определение DAC содержит выбранные из базы данных объекты и связанные объекты уровня экземпляра, например имена для входа, сопоставленные с пользователями базы данных. Мастер выполняет построение определения DAC в пакет DAC. Как правило, извлеченный пакет DAC затем импортируется в проект DAC в среде Visual Studio, где начинается разработка следующей версии приложения. Извлеченный пакет также можно использовать для развертывания DAC на другом экземпляре компонента Database Engine.

Для регистрации DAC в существующей базе данных можно использовать мастер регистрации приложения уровня данных. Этот мастер создает определение приложения уровня данных, включающее объекты из существующей базы данных, после чего сохраняет это определение в базе данных msdb (база данных master в SQL Azure). Если экземпляр компонента Database Engine является экземпляром, управляемым в служебной программе SQL Server, регистрация приложения уровня данных передается в точку управления служебной программой как развертываемое приложение уровня данных.