Compreendendo aplicativos da camada de dados

Um DAC (aplicativo da camada de dados) é uma entidade que contém todos os objetos de banco de dados e de instância usados por um aplicativo. Um DAC fornece uma única unidade para criar, implantar e gerenciar os objetos da camada de dados sem que seja necessário gerenciá-los separadamente. Um DAC permite integração mais estreita entre o desenvolvimento da camada de dados e o desenvolvimento do código do aplicativo associado. Também dá aos administradores uma exibição do uso de recursos em seus sistemas em nível de aplicativo.

Trabalhando com aplicativos da camada de dados

Use os processos a seguir para trabalhar com um DAC:

  • Primeiro, crie um tipo de DAC ou definição de DAC que especifique os objetos usados pelo aplicativo associado. A definição de DAC é compilada em um pacote de DAC que é o arquivo usado para implantar ou atualizar o DAC. Há duas maneiras de criar uma definição e um pacote de DAC:

    • Abra um projeto de aplicativo da camada de dados no Microsoft Visual Studio 2010 e especifique os objetos que compõem o DAC. Quando você compilar o projeto de DAC, o Visual Studio compilará uma definição de DAC e a colocará em um pacote de DAC.

    • Extraia uma definição de DAC de um banco de dados existente e crie um pacote de DAC usando o Assistente para Extrair Aplicativo da Camada de Dados.

    Para obter mais informações, consulte Implementando aplicativos da camada de dados.

  • O pacote de DAC é implantado em uma instância do Mecanismo de Banco de Dados usando Assistente para Implantar Aplicativo da Camada de Dados. A implantação do pacote de DAC normalmente é coordenada com a implantação dos arquivos executáveis do aplicativo. A implantação cria uma instância do DAC que tem duas partes principais:

    • A definição do DAC é armazenada no banco de dados do sistema msdb (o banco de dados mestre no SQL Azure).

    • Um banco de dados de usuário é criado e populado com os objetos especificados na definição do DAC.

    Se a instância do Mecanismo de Banco de Dados for uma instância gerenciada no SQL Server Utility, o DAC será carregado no ponto de controle do utilitário como um DAC implantado.

    Para obter mais informações, consulte Implantando aplicativos da camada de dados.

  • Os aplicativos conectam-se ao banco de dados associado ao DAC. Os administradores podem monitorar e gerenciar o banco de dados associado ao DAC usando procedimentos estabelecidos. No entanto, os administradores podem obter informações adicionais do próprio DAC:

    • O nó Aplicativos Camada de Dados Implantados do Gerenciador do UtilitárioSQL Server Management Studio (SSMS) apresenta um relatório de uso de recursos centralizado no aplicativo que permite que os administradores avaliem mais rapidamente a integridade das instâncias do seu aplicativo da camada de dados.

    • O nó Aplicativo da Camada de Dados do Pesquisador de Objetos do Management Studio relata as propriedades de cada instância do DAC.

  • Um DAC simplifica o processo de suporte a atualizações de uma versão de um banco de dados para outra. Ao implantar bancos de dados usando scripts Transact-SQL, os desenvolvedores de banco de dados precisam criar dois conjuntos de scripts para cada versão do banco de dados depois da primeira. Um conjunto de scripts pode ser usado para atualizar um banco de dados existente para a nova versão e o outro pode ser usado para instalar um novo banco de dados. Ao usar DACs, o desenvolvedor de banco de dados precisa criar apenas um pacote de DAC que descreva o esquema usado pela nova versão do aplicativo. É possível usar o pacote com o Assistente para Implantar Aplicativo da Camada de Dados para implantar uma nova instância do DAC. É possível usar o mesmo pacote com o Assistente para Atualizar o Aplicativo da Camada de Dados para atualizar uma instância existente do DAC. O Assistente para Atualizar o Aplicativo da Camada de Dados compara os dois esquemas e executa dinamicamente as ações necessárias para transformar a instância existente do DAC na nova versão do DAC.

    Para obter mais informações, consulte Atualizando aplicativos da camada de dados.

  • O DAC pode ser excluído da instância do Mecanismo de Banco de Dados usando o Assistente para Excluir Aplicativo da Camada de Dados.

Para obter mais informações sobre como compilar e usar um DAC, consulte Tutoriais de aplicativo da camada de dados.

Elementos do aplicativo da camada de dados

Uma definição de DAC contém os seguintes elementos:

  • Propriedades de DAC que definem as características do DAC. Por exemplo, cada DAC tem uma propriedade de nome do aplicativo e uma propriedade de versão cujos valores normalmente estão relacionados ao nome e ao número da versão do aplicativo associado.

  • Definições de todos os objetos do banco de dados usados pelo aplicativo, como esquemas, tabelas, exibições e procedimentos armazenados. DACs criados usando o SQL Server 2008 R2 ou o Visual Studio 2010 não dão suporte a todos os objetos do SQL Server disponíveis. Para obter mais informações, consulte Suporte de DAC para objetos e versões do SQL Server.

  • Definições dos objetos no nível de instância, como logons, associadas aos objetos do banco de dados e usadas pelo aplicativo.

  • Uma política de seleção de servidor que define as condições de pré-requisito condiciona que uma instância do Mecanismo de Banco de Dados deve hospedar o DAC. A política é definida usando a faceta Seleção de Servidor e pode avaliar condições, como a edição e o agrupamento padrão da instância.

  • Arquivos e scripts que podem ser incorporados na definição do DAC quando ele é criado no Visual Studio. Exemplos são documentos do aplicativo e planos de geração de dados que especificam como criar dados de teste significativos ou scripts pré e pós-implantação.

Projeto de aplicativo da camada de dados

Um DAC normalmente é desenvolvido no Visual Studio 2010 por um desenvolvedor de banco de dados usando um projeto de Aplicativo da camada de Dados. O desenvolvedor de banco de dados define os objetos da camada de dados exigidos pelo aplicativo para o qual o DAC está sendo desenvolvido para dar suporte. Quando o DAC estiver pronto para os desenvolvedores de aplicativo ou para a equipe de teste, o desenvolvedor de banco de dados compila o projeto de DAC, o que cria um arquivo de pacote de DAC que pode ser usado para implantar o DAC.

Para obter mais informações sobre projetos de DAC, consulte Implementando aplicativos da camada de dados.

Pacote de aplicativo da camada de dados

Quando um DAC está pronto para ser implantado, ele é compilado em um pacote de DAC que é um arquivo que contém a definição do DAC. O pacote de DAC é uma unidade única de implantação, da mesma maneira que um arquivo executável é uma unidade de implantação do código do aplicativo. Um pacote de DAC normalmente é compilado com um arquivo executável do aplicativo. Quando os administradores do sistema implantam o arquivo executável na camada de aplicativo ou em computadores cliente, os administradores de banco de dados implantam o pacote de DAC associado em uma instância do Mecanismo de Banco de Dados. 

Por exemplo, uma equipe de desenvolvimento está desenvolvendo um aplicativo de três camadas chamado Finance. A compilação 1.0.1.123 do aplicativo passou em todos os testes de aceitação e está pronta para implantação na produção. Os desenvolvedores de aplicativo entregam um arquivo Finance.exe verão 1.0.1.123 para os administradores do sistema de produção para implantação nos servidores de aplicativos de produção. Os desenvolvedores de banco de dados transferem um arquivo Finanças.dacpac versão 1.0.1.123 para os administradores do banco de dados de produção para implantação em uma instância de produção do Mecanismo de Banco de Dados.

Um pacote de DAC é um arquivo zip que contém vários arquivos XML. Para obter mais informações sobre os conteúdo do arquivo de pacote de DAC, consulte Microsoft SQL Server File Format Documents (em inglês).

Instância do aplicativo da camada de dados

Quando um DAC é implantado em uma instância do Mecanismo de Banco de Dados, ele forma uma instância do DAC:

  • Um banco de dados é criado usando as propriedades de banco de dados padrão daquela instância do Mecanismo de Banco de Dados. Os objetos de banco de dados definidos no DAC são criados no novo banco de dados.

  • Todos os objetos no nível de instância definidos no DAC, como logons, são criados.

  • A definição do DAC original e os metadados sobre a instância do DAC são armazenados no banco de dados do sistema msdb (o banco de dados mestre no SQL Azure).

Depois que a instância foi implantada, os usuários podem começar a trabalhar com os objetos e a adicionar dados ao banco de dados criado para o DAC.

Criando aplicativos da camada de dados para bancos de dados existentes

É possível usar o Assistente para Extrair Aplicativo da Camada de Dados para extrair uma definição do DAC de um banco de dados existente. A definição do DAC contém os objetos selecionados do banco de dados e os objetos no nível de instância associado, como os logons que mapeiam para usuários de banco de dados. O assistente compila a definição do DAC em um pacote de DAC. Em seguida, o pacote de DAC extraído é importado normalmente em um projeto de DAC no Visual Studio onde o desenvolvimento é iniciado na próxima versão do aplicativo. Também é possível usar o pacote extraído para implantar o DAC em outra instância do Mecanismo de Banco de Dados.

Você também pode usar o Assistente para Registrar o Aplicativo da Camada de Dados para registrar um DAC para um banco de dados existente. O assistente cria uma definição do DAC que inclui os objetos do banco de dados existente e, em seguida, armazena a definição no banco de dados msdb (o banco de dados mestreno SQL Azure). Se a instância do Mecanismo de Banco de Dados for uma instância gerenciada no SQL Server Utility, o registro do DAC será carregado no ponto de controle do utilitário como um DAC implantado.