Com o tempo, a maioria das aplicações de base de dados cresce, torna-se mais complexa e precisa de suportar mais utilizadores. Em algum momento da vida útil da sua aplicação Microsoft Office Access, talvez desemediem a sua utilização numa base de dados do Microsoft SQL Server para otimizar o desempenho, escalabilidade, disponibilidade, segurança, fiabilidade e recuperabilidade.
Neste artigo
Sobre o upsizing de uma base de dados do Microsoft Office Access
O upsizing é o processo de migração de algumas ou todas as objetos de base de dados de uma base de dados de Acesso para uma nova base de dados do SQL Server ou novo projeto access (.adp).
Benefícios de aumentar uma base de dados para o SQL Server
-
Alto desempenho e escalabilidade Em muitas situações, o SQL Server oferece um melhor desempenho do que uma base de dados de Acesso. O SQL Server também fornece suporte para bases de dados muito grandes, do tamanho de terabytes, que é muito maior do que o limite atual para uma base de dados de acesso de dois gigabytes. Por fim, o SQL Server funciona de forma muito eficiente processando consultas em paralelo (utilizando múltiplos fios nativos dentro de um único processo para lidar com os pedidos do utilizador) e minimizando os requisitos adicionais de memória quando mais utilizadores são adicionados.
-
Aumento da disponibilidade O SQL Server permite-lhe fazer uma cópia de segurança dinâmica, incremental ou completa, da base de dados enquanto estiver a ser utilizada. Consequentemente, não tem de forçar os utilizadores a saírem da base de dados para criar uma cópia de segurança dos dados.
-
Segurança melhorada Utilizando uma ligação fidedigna, o SQL Server pode integrar-se com a segurança do sistema Windows para fornecer um único acesso integrado à rede e à base de dados, utilizando o melhor de ambos os sistemas de segurança. Isto torna muito mais fácil a gestão de sistemas de segurança complexos.
-
Recuperabilidade imediata Em caso de falha do sistema (como uma falha do sistema operativo ou falha de energia), o SQL Server dispõe de um mecanismo automático de recuperação que recupera uma base de dados até ao último estado de consistência numa questão de minutos, sem intervenção do administrador de base de dados.
-
Processamento baseado em servidor A utilização do SQL Server numa configuração cliente/servidor reduz o tráfego de rede através do processamento de consultas de base de dados no servidor antes de enviar resultados ao cliente. Ter o servidor a fazer o processamento é geralmente muito mais eficiente, especialmente quando se trabalha com grandes conjuntos de dados.
A sua aplicação também pode usar funções definidas pelo utilizador, procedimentos armazenados e gatilhos para centralizar e partilhar lógica de aplicação, regras e políticas de negócios, consultas complexas, validação de dados e código de integridade referencial no servidor, em vez de no cliente.
Formas de aumentar
O Assistente de Upsizing move objetos de base de dados e os dados que contêm de uma base de dados de Acesso para uma base de dados do Servidor SQL nova ou existente.
Há três maneiras de usar o Assistente de Upsizing:
-
Altere todos os objetos de base de dados de uma base de dados de Acesso a um projeto De Acesso para que possa criar uma aplicação cliente/servidor. Esta abordagem requer algumas alterações adicionais de aplicação e modificação para códigos e consultas complexas.
-
Ausquia apenas as definições de dados ou de dados de uma base de dados de Acesso a uma base de dados do SQL Server.
-
Crie uma linha frontal de base de dados de acesso a uma base de dados SQL Server para que possa criar uma aplicação front-end/back-end. Esta abordagem requer muito pouca modificação da aplicação, uma vez que o código ainda está a utilizar o motor de base de dados Access (ACE).
Antes de aumentar uma base de dados de acesso
Antes de aumentar a sua base de dados de Acesso a uma base de dados do SQL Server ou a um projeto de Acesso, considere fazer o seguinte:
-
Efetuar uma cópia de segurança da base de dados Embora o Assistente de Upsizing não remova quaisquer dados ou objetos de base de dados da sua base de dados De acesso, é uma boa ideia criar uma cópia de segurança da sua base de dados De acesso antes de o aumentar.
-
Certifique-se de que tem espaço adequado em disco Deve ter espaço de disco adequado no dispositivo que contenha a base de dados de tamanho supritivo. O Assistente de Upsizing funciona melhor quando há muito espaço disponível em disco.
-
Criar índices únicos Uma tabela ligada deve ter um índice único para ser atualizado no Access. O Assistente de Upsizing pode aumentar um índice único existente, mas não pode criar um onde nenhum exista. Se quiser atualizar as suas tabelas, certifique-se de adicionar um índice único a cada tabela Access antes de aumentar.
-
Atribua-se permissões apropriadas na base de dados do SQL Server
-
Para aumentar o tamanho de uma base de dados existente, necessita de permissões CREATE TABLE e CREATE DEFAULT.
-
Para construir uma nova base de dados, necessita de permissão CREATE DATABASE e permissões SELECT nas tabelas do sistema na base de dados Master.
-
O Assistente de Upsizing Access 2007 está otimizado para funcionar com o Microsoft SQL Server 2000 e o SQL Server 2005.
Use o assistente de upsizing
-
No separador Ferramentas de Base de Dados, no grupo De Dados de Movimento, clique em SQL Server.
O Assistente de Upsizing começa.
Passo 1: Opte por aumentar para uma base de dados existente ou uma nova base de dados
Na primeira página do Wizard, especifica se pretende aumentar a base de dados Access para uma base de dados do SQL Server existente ou criar uma nova base de dados do SQL Server.
-
Utilizar a base de dados existente Se selecionar esta opção e clicar em Seguinte,o Access apresenta a caixa de diálogo Select Data Source para que possa criar uma ligação ODBC à base de dados do SqL Server existente.
Acerca das origens de dados ODBC
Uma fonte de dados é uma fonte de dados combinada com as informações de ligação necessárias para aceder a esses dados. Exemplos de fontes de dados são Access, SQL Server, Oracle RDBMS, uma folha de cálculo e um ficheiro de texto. As informações de ligação podem incluir a localização no servidor, o nome da base de dados, o ID de início de sessão, a palavra-passe e várias opções do controlador ODBC que descrevem como pode ligar-se à origem de dados.
Na arquitetura ODBC, uma aplicação (como o Access ou um programa Microsoft Visual Basic) conecta-se ao Gestor de Condutores ODBC, que por sua vez utiliza um controlador ODBC específico (por exemplo, controlador ODBC microsoft SQL) para ligar a uma fonte de dados (neste caso, uma base de dados do SQL Server). No Access, pode utilizar origens de dados ODBC para se ligar a origens de dados externas ao Access que não tenham controladores incorporados.
Para se ligar a estas origens de dados, tem de fazer o seguinte:
-
Instale o controlador ODBC adequado no computador que contém a origem de dados.
-
Defina o nome da origem de dados (DSN) com o Administrador da Origem de Dados ODBC para armazenar as informações de ligação no registo do Microsoft Windows ou num ficheiro DSN ou uma cadeia de carateres de ligação no código do Microsoft Visual para passar as informações de ligação diretamente para o Gestor de Controladores ODBC.
Origens de dados de computador
As fontes de dados da máquina armazenam informações de ligação no Registo do Windows num computador específico com um nome definido pelo utilizador. Pode utilizar origens de dados de computador apenas no computador em que são definidas. Existem dois tipos de origens de dados de computador: utilizador e sistema. As origens de dados de utilizador podem ser utilizadas apenas pelo utilizador atual e são visíveis apenas para esse utilizador. As origens de dados de sistema podem ser utilizadas por todos os utilizadores num computador e são visíveis para todos os utilizadores num computador e nos serviços de todo sistema. Uma origem de dados é especialmente útil quando precisa de segurança adicional, uma vez que só os utilizadores que tiverem sessão iniciada podem ver uma origem de dados e esta não pode ser copiada por um utilizador remoto para outro computador.
Origens de dados de ficheiro
As origens de dados de ficheiro (também designadas ficheiros DSN) armazenam as informações de ligação num ficheiro de texto (não no registo do Windows) e a sua utilização é geralmente mais flexível do que as origens de dados de computador. Por exemplo, pode copiar uma fonte de dados de ficheiro para qualquer computador com o controlador ODBC correto para que a sua aplicação possa contar com informações de ligação consistentes e precisas a todos os computadores que utiliza. Também pode colocar a origem de dados de ficheiro num servidor exclusivo, partilhá-la com vários computadores na rede e manter as informações de ligação facilmente numa localização.
Também é possível não permitir a partilha de uma origem de dados de ficheiro. Uma fonte de dados de ficheiros inapartiável reside num único computador e aponta para uma fonte de dados de máquina. Pode utilizar origens de dados de ficheiro cuja partilha não é permitida para aceder a origens de dados de computador existentes a partir de origens de dados de ficheiro.
Cadeias de carateres de ligação
Num módulo, pode definir uma cadeia de carateres de ligação formatada que especifique as informações de ligação. Uma cadeia de ligação transmite as informações de ligação diretamente ao Gestor de Condutores ODBC, e ajuda a simplificar a sua aplicação removendo a exigência de que um administrador de sistema ou utilizador crie primeiro um DSN antes de utilizar a base de dados.
-
-
Criar nova base de dados Se selecionar esta opção e clicar em Seguinte,o Access apresenta uma página onde introduz informações sobre a nova base de dados do SQL Server.
-
Que SQL Server gostaria de usar para esta base de dados? Digite o nome do servidor que gostaria de usar.
-
Utilizar conexão fidedigna Pode utilizar uma ligação de confiança, ou seja, o SQL Server pode integrar-se com a segurança do sistema operativo Windows para fornecer um único registo na rede e na base de dados.
-
ID de login e senha Se não utilizar uma ligação fidedigna, digite o ID de início de sessão e a palavra-passe de uma conta com privilégios CREATE DATABASE no servidor.
-
O que pretende nomear a sua nova base de dados SQL Server? Digite o nome da nova base de dados do SQL Server. O acesso revê o nome se entrar em conflito com um nome de base de dados existente e adicionar um sufixo numerado (mydatabase 1, por exemplo).
-
Passo 2: Escolha quais as tabelas para aumentar
Neste passo, selecione as tabelas de Acesso que pretende aumentar para a base de dados do SQL Server. Selecione as tabelas que pretende aumentar e, em seguida, use os botões de seta para movê-los para a lista de Exportação para SQL Server. Em alternativa, pode clicar duas vezes numa tabela para movê-la de uma lista para outra.
A lista de Tabelas Disponíveis inclui todas as tabelas ligadas, exceto as tabelas SQL Server já numa base de dados do SQL Server. As tabelas ligadas que apontam para uma base de dados do SQL Server que foi selecionada para upsizing aparecem automaticamente na caixa de lista de Exportação para SQL Server e não podem ser removidas. Estão também excluídas tabelas que não são visíveis no Painel de Navegação, incluindo mesas escondidas e tabelas de sistema.
Sugestão: Qualquer tabela que tenha um nome que termine em "_local" está excluída da lista de tabelas disponíveis para evitar o upsizing de tabelas que já foram upsized. Se quiser voltar a aumentar estas tabelas, rebatize-as antes de executar o Assistente de Upsizing, removendo o sufixo "_local".
Passo 3: Especificar os atributos e opções a serem upsized
Neste passo, selecione quais os atributos da tabela para aumentar a base de dados do SQL Server. Por predefinição, todos os atributos são selecionados para upsizing por padrão.
Nota: Por predefinição, o Assistente de Upsizing converte nomes de campo de acesso a nomes legais do sql Server e converte os tipos de dados de Acesso aos tipos de dados equivalentes do SQL Server.
Que atributos de mesa pretende aumentar?
A tabela a seguir lista os atributos que pode aumentar e descreve como o Assistente de Upsizing lida com cada um deles:
Atributo |
Ação se selecionada |
|||||||||||||||
Índices |
O Assistente de Upsizing aumenta todos os índices. O Assistente de Upsizing converte as teclas primárias de acesso aos índices do SQL Server e marca-as como teclas primárias do SQL Server. Se optar por ligar a tabela do Servidor SQL de tamanho upsized à sua base de dados De Acesso, o Assistente de Upsizing também adiciona o prefixo "aaaaa" ao nome do índice. Isto porque o Access escolhe o índice que está em primeiro lugar na lista de índices disponíveis como a chave primária e o prefixo "aaaaa" garante que o índice certo é escolhido. Todos os outros índices mantêm os seus nomes, exceto quando os caracteres ilegais são substituídos pelo caráter "_". Índices de acesso únicos e não únicos tornam-se índices exclusivos e não únicos do SQL Server. Uma tabela ligada deve ter um índice único para ser atualizado no Access. O Assistente de Upsizing pode aumentar um índice único existente, mas não pode criar um onde nenhum exista. Se pretender atualizar os dados nas suas tabelas depois de os ter atualizado, certifique-se de que adiciona um índice único a cada tabela Access antes de aumentar. |
|||||||||||||||
Regras de validação |
O Assistente de Upsizing aumenta o seguinte à medida que a atualização e inserem os gatilhos:
Um gatilho é uma série de declarações Transact-SQL associadas a uma tabela SQL Server. Uma tabela pode ter três gatilhos, um para cada um dos comandos que podem modificar dados numa tabela: os comandos UPDATE, INSERT e DELETE. O gatilho é executado automaticamente quando o comando é executado. O Assistente de Upsizing utiliza gatilhos em vez das regras do SQL Server para impor a validação do nível de campo porque as regras do SQL Server não permitem exibir mensagens de erro personalizadas. Cada regra de validação não tem necessariamente uma correspondência de um para um com um gatilho. Cada regra de validação pode tornar-se parte de vários gatilhos, e cada gatilho pode conter código para imitar a funcionalidade de várias regras de validação. Quando define a propriedade requerida de um campo de Acesso verdadeiro, um utilizador não pode inserir um registo e deixar o campo exigido nulo (se não houver incumprimento ligado ao campo) ou tornar o campo nulo ao atualizar um registo. Os campos necessários são dimensionados para campos que não permitem valores nulos no SQL Server. Texto de validação A propriedade de Validação de Texto de Validação da base de dados de acesso é convertida para a propriedade de Texto de Validação do projeto Access. Isto permite que as mensagens de erro do Access sejam exibidas em caso de violação de restrição no tempo de execução. |
|||||||||||||||
Incumprimentos |
O Assistente de Upsizing aumenta todas as propriedades de Valor Padrão para os objetos padrão do American National Standards Institute (ANSI). |
|||||||||||||||
Relações da tabela |
O Assistente de Upsizing aumenta todas as relações de mesa. Pode decidir como aumentar as relações de mesa e a integridade referencial utilizando a atualização, inserção ou eliminação de gatilhos, ou utilizando a Integridade Referencial Declarada (DRI). A DRI funciona da mesma forma que a integridade referencial do Access, definindo os principais constrangimentos para as tabelas base (o lado "um" de uma relação one-to-many) e constrangimentos de chaves estrangeiras para mesas estrangeiras (tipicamente o lado "muitos" de uma relação entre si).
|
Que opções de dados pretende incluir?
-
Adicione campos de tempotamp às tabelas O SQL Server utiliza um campo de tempotamp para indicar que um registo foi alterado (mas não quando foi alterado) criando um campo de valor único e, em seguida, atualizando este campo sempre que um registo é atualizado. Para uma tabela ligada, o Access utiliza o valor nos campos de tempos para determinar se um registo foi alterado antes de o atualizar. Em geral, um campo de tempotampia proporciona o melhor desempenho e fiabilidade. Sem um campo de tempotamp, o SQL Server deve verificar todos os campos do registo para determinar se o registo mudou, o que atrasa o desempenho.
A tabela a seguir descreve as definições disponíveis nesta lista:
Definição |
Descrição |
Sim, deixe o feiticeiro decidir. |
Se as tabelas de acesso originais contiverem ponto flutuante (campo único ou duplo), memo ou objeto OLE, o Assistente de Upsizing cria novos campos de tempotampadas nas tabelas resultantes do SQL Server para esses campos. |
Sim, sempre. |
O Assistente de Upsizing cria um campo de tempotamp para todas as tabelas de tamanho superior, independentemente dos tipos de campo que contenham. Isto melhora o desempenho de tabelas de acesso upsized que podem não conter Memo, OLE Object ou campos de ponto flutuante, mas que têm campos de outros tipos. |
Não, nunca. |
O Assistente de Upsizing não adiciona campos de tempotamp às tabelas. |
Importante: Nas tabelas do SQL Server ligadas, o Access não verifica se os campos de objetos Memo ou OLE mudaram porque estes campos podem ter muitos megabytes de tamanho e a comparação pode ser demasiado intensiva em rede e demorando tempo. Portanto, se apenas um campo de texto ou imagem mudou e não houver campo de tempo, o Access substitui a mudança. Além disso, o valor de um campo de ponto flutuante pode parecer ter mudado quando não o fez, por isso, na ausência de um campo de tempotamp, o Access pode determinar que o registo foi alterado quando não o fez.
-
Apenas crie a estrutura da mesa, não resumo quaisquer dados O Assistente de Upsizing aumenta todos os dados para o SQL Server por padrão. Se selecionar a estrutura de tabelas Only create, não aumentar qualquer caixa de verificação de dados, apenas a estrutura de dados é dimensionada.
Passo 4: Escolha como aumentar a sua aplicação
Na página seguinte do assistente, pode selecionar uma de três formas diferentes de aumentar a sua aplicação de base de dados access. Em Que alterações de aplicação pretende fazer?
-
Criar uma nova aplicação de cliente/servidor de Acesso Se selecionar esta opção, o Assistente de Upsizing cria um novo projeto Access. O Assistente de Upsizing solicita-lhe um nome, que predefinia com o nome atual da base de dados access, adiciona um sufixo "CS" e, em seguida, armazena o projeto no mesmo local que a base de dados de acesso existente.
O Assistente de Upsizing cria o ficheiro do projeto Access e, em seguida, aumenta todos os objetos de base de dados da base de dados Access para o projeto Access. Se não guardar a palavra-passe e o ID do utilizador, então a primeira vez que abre o projeto Access, o Access apresenta a caixa de diálogo Data Link Properties para que possa ligar-se a uma base de dados do SQL Server.
-
Link SQL Server tabelas para aplicação existente Se selecionar esta opção, o Assistente de Upsizing modifica a sua base de dados de Acesso para que as suas consultas, formulários, relatórios e páginas de acesso a dados utilizem os dados na nova base de dados do SQL Server em vez dos dados na base de dados Access. O Assistente de Upsizing rebatiza as tabelas de acesso que aumenta com o sufixo "_local". Por exemplo, se aumentar uma tabela chamada Empregados, a tabela é renomeada Employees_local na sua base de dados Access. Em seguida, o assistente de Upsizing cria uma tabela de servidor SQL ligada chamada Empregados.
Nota: Após a conclusão da operação de upsizing, as tabelas que foram renomeadas com o sufixo "_local" deixarão de ser utilizadas. No entanto, é uma boa ideia manter as tabelas locais até verificar se o upsizing foi bem sucedido. Numa data posterior, pode eliminar as tabelas locais para reduzir o tamanho da sua base de dados De Acesso. Certifique-se de fazer o back-up da sua base de dados antes de apagar quaisquer tabelas.
Consultas, formulários, relatórios e páginas de acesso a dados com base nas tabelas originais dos Empregados utilizarão agora a tabela de empregados do SQL Server. Muitas das propriedades dos campos na tabela local original são herdadas pela nova tabela local, incluindo, Descrição,Legenda,Formato,InputMask,e DecimalPlaces.
-
Sem alterações de aplicação Selecione esta opção se pretender apenas copiar os seus dados para a base de dados do SQL Server e não então quaisquer outras alterações na sua aplicação de base de dados de Acesso existente.
Guardar palavra-passe e ID do utilizador Por predefinição, o Assistente de Upsizing cria tabelas ligadas na aplicação existente ou cria um projeto Access sem guardar o nome de utilizador e a palavra-passe. Isto significa que os utilizadores são solicitados para um nome de utilizador e senha cada vez que iniciam sessão numa base de dados do SQL Server.
Se selecionar Guardar a palavra-passe e o ID do utilizador,os utilizadores podem ligar-se a uma base de dados do SQL Server sem iniciar sessão. Se selecionar Criar nova aplicação cliente/servidor do Access,o projeto Access armazena a palavra-passe do nome de utilizador na cadeia de ligação OLE DB.
Nota: Esta opção é desativada para a opção No application changes se uma tabela de Servidor SQL ligada estiver configurada com uma tabela MSysConf para negar a poupança de palavras-passe.
O relatório do Assistente de Upsizing
Quando clica em Terminar,o Assistente de Upsizing cria um relatório que fornece uma descrição detalhada de todos os objetos criados e relata quaisquer erros encontrados durante o processo. O Assistente de Upsizing exibe o relatório na pré-visualização de impressão e pode imprimir ou guardar o relatório, por exemplo, como um ficheiro XPS ou PDF. O relatório não é guardado como objeto de Acesso quando fecha a janela de pré-visualização de impressão.
O relatório do Assistente de Upsizing contém informações sobre o seguinte:
-
Upsizing parâmetros, incluindo os atributos de tabela que escolheu para upsize e como você upsized.
-
Informações de tabela, incluindo uma comparação dos valores do Access e SQL Server para nomes, tipos de dados, índices, regras de validação, incumprimentos, gatilhos e se foram adicionados ou não selos de tempo.
-
Quaisquer erros encontrados, tais como base de dados ou registo de transações completas, permissões inadequadas, dispositivo ou base de dados não criados, tabela, predefinição ou regra de validação ignorada, relação não aplicada, consulta ignorada (porque não pode ser traduzida para sintaxe SQL Server) e controlo e origem de registos erros de conversão em formulários e relatórios.
Como os objetos de base de dados são upsized
Os seguintes dados e objetos de base de dados são upsized:
-
Dados e tipos de dados Todos os tipos de dados da base de dados de acesso são convertidos para o seu equivalente no SQL Server. O assistente converte o texto da base de dados access para Unicode adicionando o identificador de cadeia Unicode a todos os valores de cadeia e adicionando o prefixo Unicode n a todos os tipos de dados.
-
Consultas
-
Selecione consultas que não tenham uma cláusula ORDER BY ou parâmetros são convertidos para visualizações.
-
As consultas de ação são convertidas em consultas de ação de procedimentos armazenadas. O access adiciona SET NOCOUNT ON após o código de declaração do parâmetro para se certificar de que o procedimento armazenado funciona.
-
Selecione consultas que apenas tabelas de referência (também chamadas consultas de base) que usam parâmetros ou uma cláusula ORDER BY são convertidas para funções definidas pelo utilizador. Se necessário, a cláusula TOP 100 POR CENTO é adicionada a uma consulta que contém uma cláusula ORDER BY.
-
As consultas de parâmetros que utilizam parâmetros nomeados mantêm o nome de texto original utilizado na base de dados Access e são convertidas quer para procedimentos armazenados quer para funções definidas pelo utilizador.
Nota: Você pode precisar de converter manualmente consultas que não aumentaram, tais como consultas de passagem SQL, consultas de definição de dados e consultas de crosstab. Também pode ter que aumentar manualmente consultas que estavam aninhadas muito profundamente.
-
-
Formulários, relatórios e controlos As declarações SQL em RecordSource, ControlsSource e RowSource propriedades para formulários, relatórios ou controlos são mantidas no lugar e não são convertidas para procedimentos armazenados ou funções definidas pelo utilizador.
-
Propriedades de arranque O Assistente de Upsizing aumenta as seguintes propriedades de arranque:
StartUpShowDBWindow
StartUpShowStatusBar permite que oShortcutMenus permita que o AllowBuiltInToolbars allowToolbarChanges allowSpecialKeys UseAppIconForFrmRpt AppIcon AppTitle StartUpMenuBar StartupShortcutMenuBar -
Módulos e macros O Assistente de Upsizing não faz alterações em módulos ou macros. Poderá ser necessário modificar a sua aplicação para tirar o máximo partido das funcionalidades do SQL Server. Para obter mais informações, consulte o artigo da MSDN que otimiza as aplicações de acesso ao Microsoft Office Acede ao Servidor SQL.