Introdução
O Microsoft Access é um sistema de gerenciamento de banco de dados de desktop popular que incorpora ferramentas de desenvolvimento de aplicativos (Formulários, Relatórios, Consultas, macros VBA) com um DBMS relacional. O MS Access é ideal para usuários individuais ou para pequenos grupos de trabalho onde alguns usuários trabalham nos dados ao mesmo tempo compartilhando um arquivo de banco de dados do MS Access em uma rede local.
No entanto, uma vez que o número de usuários simultâneos cresce acima de um punhado, o MS Access começa a encontrar problemas com o compartilhamento de dados. Uma solução para esse problema de “escalonamento” é dividir o banco de dados MS Access e hospedar os dados em um DBMS baseado em servidor, como o Microsoft SQL Server.
A Microsoft fornece uma ferramenta útil chamada “Microsoft SQL Server Migration Assistant for MS Access” (SSMA) para ajudar a mover as tabelas de banco de dados de um banco de dados MS Access para o SQL Server. Antes de entrar nas etapas reais desse processo, é útil entender a arquitetura de um sistema de banco de dados MS Access. Essa arquitetura é descrita a partir da próxima página.
Pré-requisitos
Antes de prosseguir com este tutorial, certifique-se de que o software a seguir esteja instalado.
Este tutorial foi escrito usando o Microsoft Access 2013 (do MS Office de 64 bits) executado em um sistema operacional Windows 7 de 64 bits. MS Access 2010 e 2016 também podem funcionar, mas não foram testados. Certifique-se de verificar o MS Office, pois o MS Access de 32 bits não terá o suporte adequado para permitir que o SSMA funcione.
Você também pode precisar instalar o software MS Access 2010 Runtime. Este software foi originalmente projetado para ler arquivos de banco de dados do MS Access sem a necessidade de instalar uma versão completa do MS Access. O QL Server Migration Assistant usa as partes Data Access Objects (DAO) no MS Access 2010 Runtime para abrir arquivos do MS Access.
Um arquivo de banco de dados MS Access de amostra é fornecido (consulte as próximas páginas para obter links para este arquivo).
O sistema de gerenciamento de banco de dados de destino será o Microsoft SQL Server. Este tutorial requer credenciais (nome de usuário, senha etc.) para uma instância do SQL Server. Você pode instalar o MS SQL Server em seu próprio PC ou servidor, usar um servidor existente em sua casa ou local de trabalho ou usar um serviço baseado em nuvem para hospedar o SQL Server para você. Um tutorial sobre como configurar uma instância do SQL Server no GearHost é fornecido aqui:/getting-started-with-gearhost-for-sql-server-database-development/
Observe que, a partir de 2021, o GearHost não tem mais uma instância do Free-Tier SQL Server. Você pode tentar obter uma conta de Aluno no Microsoft Azure e usar o Banco de Dados SQL do Azure.
Você também deve ter o Microsoft SQL Server Management Studio disponível para explorar e trabalhar diretamente com o SQL Server. Use o SQL Server Management Studio para se conectar à sua instância do SQL Server e criar um banco de dados vazio.
Uma instância do SQL Server hospedada pelo GearHost é usada para este tutorial. Um banco de dados de amostra chamado testmssqldb1 foi criado conforme mostrado no Pesquisador de Objetos do SQL Server Management Studio abaixo.
Por fim, certifique-se de fazer um backup de qualquer arquivo(s) de banco de dados do MS Access antes de migrá-los para o SQL Server.
A próxima seção apresenta a arquitetura de um banco de dados Microsoft Access.
Arquitetura de banco de dados do Microsoft Access
A maioria dos sistemas de informação que usam um banco de dados para armazenar dados pode ser descrita por quatro componentes principais:
- Interface do usuário – Estes são os formulários, relatórios e consultas com os quais os usuários finais do sistema interagem.
- Lógica de negócios – Este é um código de programação que implementa diferentes regras de negócios pelas quais a organização opera. Por exemplo, pode haver uma regra de negócios de que nenhum funcionário pode receber mais de 30 horas por semana em um único projeto. Esta regra seria implementada no código de programação.
- Sistema de gerenciamento de banco de dados – Este é o software usado para gerenciar os dados no banco de dados. Ele também pode ter recursos como controle de simultaneidade para permitir que vários usuários trabalhem com segurança com os dados. Alguns exemplos de DBMS incluem MS Access, MS SQL Server, Oracle, MySQL e Postgres.
- Banco de dados – É aqui que os dados reais são armazenados. Normalmente, os dados são organizados em um conjunto de tabelas de banco de dados. Cada tabela tem colunas e registros de dados.
Uma arquitetura de sistema de banco de dados descreve como cada um desses quatro componentes é organizado. Frequentemente, o termo “Front End” é usado para descrever os componentes da Interface do Usuário e da Lógica de Negócios. O “Back End” consiste no SGBD e Banco de Dados.
Como um DBMS de desktop, o MS Access armazena todos os componentes do aplicativo do sistema de banco de dados em um único arquivo. O software DBMS é executado no computador desktop. Formulários de entrada de dados, relatórios e consultas interagem com as tabelas de banco de dados armazenadas no mesmo arquivo de banco de dados MS Access (arquivo .accdb) conforme mostrado na figura abaixo.
Para compartilhar dados do MS Access em uma rede local, podemos “dividir” o arquivo de banco de dados em dois. Um arquivo conterá os Formulários, Relatórios, Consultas e outras partes do aplicativo de banco de dados, enquanto o segundo arquivo de banco de dados conterá apenas as tabelas do banco de dados e seus dados. Os componentes do aplicativo (Formulários, relatórios, etc.) usarão Links Externos para o segundo arquivo de banco de dados para recuperar e atualizar dados. Isso é mostrado na figura abaixo.
À medida que o número de usuários aumenta, esse método de compartilhamento de dados se torna limitante. Nesse caso podemos migrar as tabelas do banco de dados para o Microsoft SQL Server. Novamente links externos serão usados para conectar os componentes da aplicação (Formulários, relatórios etc.) às tabelas do banco de dados conforme mostrado na figura abaixo.
Essa abordagem de “divisão” ou “up-sizing” para o SQL Server é o foco deste tutorial.
A próxima seção apresenta um banco de dados MS Access de exemplo que será usado para demonstrar a migração do banco de dados.
O exemplo de banco de dados de funcionários
Este tutorial faz uso de um banco de dados de funcionários simples que pode ser baixado neste link. Nesta base de dados existem 4 tabelas principais:Department, Employee, Project e Project_Assignment.
As relações entre as tabelas são mostradas abaixo:
Existem 5 formulários de entrada de dados, uma consulta e um relatório.
Reserve alguns minutos para explorar esse banco de dados antes de prosseguir no tutorial. Certifique-se de fechar o arquivo de banco de dados assim que terminar de explorar. Faça também um backup do arquivo caso deseje repetir este tutorial no futuro.
Na próxima seção deste tutorial, os utilitários Microsoft SQL Server Migration Assistant para MS Access serão baixados e instalados.
Baixando e instalando o Microsoft SQL Server Migration Assistant para MS Access
O Microsoft SQL Server Migration Assistant para MS Access pode ser baixado do seguinte site da Microsoft:https://www.microsoft.com/en-us/download/details.aspx?id=54255
Clique no botão Baixar botão e, em seguida, salve o novo arquivo. O nome do arquivo deve ser algo como SSMA para Access.7.3.0.msi, embora uma versão mais recente possa estar disponível no futuro. Clique duas vezes no arquivo SSMA for Access.7.3.0.msi para iniciar o instalador.
Quando a tela de boas-vindas for exibida, clique no botão Avançar botão para passar para a próxima etapa.
Leia o Contrato de Licença do Usuário Final, clique em Aceito o contrato botão de opção e clique no botão Próximo botão para continuar.
Clique em Instalação personalizada botão e, em seguida, selecione os recursos a serem instalados, bem como o local de instalação. Escolha todos os recursos para instalar e escolha um destino (geralmente a unidade C:). Clique em Próximo botão para continuar.
Neste ponto, o produto está pronto para ser instalado. Clique no botão Instalar botão para continuar.
O instalador levará alguns minutos para concluir a instalação. Durante esse tempo, uma tela de status aparecerá conforme mostrado abaixo.
Quando a instalação do SSMA estiver concluída, clique no botão Concluir botão.
O SQL Server Migration Assistant for Access aparecerá no menu Iniciar do Windows. Também haverá um grupo SQL Server Migration Assistant for Access.
Agora que o SSMA está instalado, o banco de dados do MS Access pode ser migrado. Essas etapas são descritas na próxima página.
Migrando um banco de dados MS Access
Certifique-se de ter uma cópia de backup do banco de dados do MS Access.
Localize o item de menu Microsoft SQL Server Migration Assistant for Access no menu Iniciar do Windows e clique nele para iniciar o SSMA.
O Assistente do SSMA aparecerá mostrando a tela de boas-vindas. Observe o esboço das 6 etapas que serão concluídas. Neste ponto, você precisará ter o arquivo de banco de dados MS Access Employee disponível, bem como as credenciais para um banco de dados MS SQL Server. Clique em Próximo botão para ir para a primeira etapa do Assistente.
O primeiro passo é criar um novo Projeto de Migração. Dê um nome ao projeto (Employee_Database_Migration_Project é usado para este exemplo). Selecione uma pasta para armazenar o projeto. Por fim, selecione a versão do SQL Server para o banco de dados SQL Server de destino. O SQL Server 2016 será usado neste exemplo. Quando terminar, clique em Próximo botão.
A próxima etapa é adicionar bancos de dados do MS Access a serem migrados. O formulário deve aparecer vazio neste momento. Clique em Adicionar bancos de dados botão.
Navegue até a pasta que contém o arquivo employee.accdb e selecione esse arquivo. Clique no botão Abrir botão.
O arquivo employee.accdb agora deve ser listado. Clique em Próximo botão para continuar.
Agora que o banco de dados MS Access foi aberto, o próximo passo é selecionar o conteúdo do banco de dados a ser migrado para o SQL Server. Geralmente, apenas as Tabelas serão migradas e estas devem ser selecionadas por padrão. Observe também que todos os índices e chaves primárias que fazem parte de cada tabela também serão migrados. (Se nenhuma tabela estiver listada, instale o software MS Access 2010 Runtime e tente novamente).
Para este exemplo, certifique-se de que as tabelas do banco de dados estejam todas selecionadas conforme mostrado abaixo. Clique no botão Próximo botão para continuar.
A próxima etapa do Assistente é especificar as credenciais para a instância do SQL Server de destino. Preencha os campos de acordo com a configuração do SQL Server. Para este exemplo, uma instância do SQL Server no Gearhost é usada.
O Nome do host será o nome do host da Internet ou o endereço IP do servidor. Se o SQL Server estiver instalado em seu PC ou servidor local, use localhost como o nome do servidor.
A Porta do Servidor é o número da porta para o ouvinte do SQL Server. Deixe isso no padrão (a menos que você tenha alterado essa configuração em seu SQL Server).
O banco de dados será o nome do banco de dados residente na instância do SQL Server. Para este exemplo, um banco de dados de amostra chamado testmssqldb1 já foi criado no servidor.
Selecione o método de Autenticação para sua instância do SQL Server. Para este exemplo, será usada a autenticação do SQL Server. Um nome de usuário e uma senha associados à instância do SQL Server devem ser fornecidos.
Preencha as credenciais restantes, incluindo um nome de usuário e senha e selecione as opções apropriadas se a conexão deve ser criptografada ou não.
Depois que todas as credenciais forem inseridas, clique no botão Avançar botão.
Neste ponto, o Assistente de Migração solicitará a Vinculação do aplicativo de banco de dados (Formulários, relatórios etc.) às tabelas de banco de dados SQL Server resultantes. Isso é exatamente o que é necessário neste caso. Certifique-se de que Vincular tabelas caixa de seleção está marcada e clique em Próximo botão.
A tela Status da Migração aparecerá à medida que os dados de origem forem analisados e preparados para serem carregados no SQL Server.
Após a conversão, uma caixa de diálogo aparecerá mostrando uma lista de todas as tabelas e seus índices e gatilhos associados (se houver). Neste exemplo, todas as tabelas e seus objetos associados serão migrados para o SQL Server. Clique em OK botão para fechar esta caixa de diálogo.
O Assistente continuará a processar os dados da tabela e carregar os objetos convertidos no banco de dados.
Durante o Link de tabelas convertidas etapa, o Assistente pode solicitar a reinserção das credenciais do SQL Server. Forneça essas credenciais novamente e clique no botão Conectar botão.
O assistente de migração continuará. Quando a migração for concluída, uma tela de resumo será exibida. Se houver algum erro, clique no Relatório associado botão para revisá-los. Quando terminar, clique no botão Fechar botão.
A tela principal do SSMA será exibida. Puxe para baixo o Arquivo menu e selecione Salvar projeto para salvar o projeto atual. Selecione o Funcionário banco de dados para extrair e salvar os metadados.
Neste ponto, o trabalho de migração está concluído e podemos sair do programa SSMA.
A seção final do tutorial demonstra como executar o aplicativo de banco de dados MS Access recém-migrado.
Executando o aplicativo de banco de dados MS Access
Abra o arquivo de banco de dados employeedb.accdb no MS Access. Observe que as tabelas originais agora foram renomeadas. Por exemplo, a tabela de funcionários original agora é denominada SSMA$employee$local. Essa tabela ainda está armazenada dentro do arquivo de banco de dados employeedb.accdb.
Quatro novos links de tabelas de banco de dados foi criado. Todos os Formulários, Consultas e Relatórios existentes que fizeram referência a esses nomes agora farão referência aos links para cada tabela no banco de dados do SQL Server. Para testar isso, abra o formulário de entrada de dados do departamento.
Você pode receber uma mensagem de erro "Login" ou "Falha na conexão", conforme mostrado abaixo:
Clique no botão OK e forneça as credenciais apropriadas para a instância do SQL Server. Em seguida, clique em OK botão.
Do ponto de vista do usuário final, não há mudança na aparência ou no funcionamento do formulário. O único problema menor que os usuários podem enfrentar é um pequeno atraso na abertura de uma grande coleção de dados, pois a solicitação deve ser enviada para uma instância remota do SQL Server que precisa empacotar os resultados e devolvê-los ao aplicativo de banco de dados MS Access.
Abra alguns dos formulários de entrada de dados adicionais e certifique-se de que todos estejam funcionando corretamente.
Depois que a funcionalidade do banco de dados migrado for confirmada, as tabelas originais (agora renomeadas) podem ser excluídas do arquivo de banco de dados employeedb.accdb. Após essa etapa, o arquivo de banco de dados employeedb.accdb pode ser distribuído aos usuários para que eles comecem a trabalhar com os dados que agora estão armazenados em um local central em uma instância do SQL Server.