Agora que você já viu várias arquiteturas de banco de dados e opções de motores disponíveis, você vai querer explorar os pontos de decisão e parâmetros para fazer a conversão de decisão.
a parte mais importante neste processo é compreender que nem todas as bases de dados de acesso precisam ser aumentadas. Na verdade, a maioria das aplicações de acesso não deve ser aumentado—o custo e a interrupção do negócio não é simplesmente um uso rentável de seus recursos. Estas bases de dados funcionam bem no dia – a-dia e não precisam de atributos como escalabilidade, segurança e 100% de confiabilidade. De todas as bases de dados de acesso na sua organização, apenas alguns são candidatos à ampliação.
adicionalmente, a partir da lista de candidatos para upsizing, uma maioria pode ser upsized usando um processo de custo-benefício onde apenas os dados são movidos para o servidor SQL. Toda a funcionalidade da aplicação em termos de formulários e relatórios é mantida no acesso. Apenas a menor percentagem de projectos de ampliação envolve reescrever a aplicação de Acesso num novo ambiente, como o .NET.
a secção seguinte examina cada uma das áreas-chave envolvidas no planeamento de bases de dados e discute como o Access funciona em cada área.O Microsoft Access oferece três mecanismos de segurança diferentes.
- senhas de Base de dados: atribuir uma senha a uma base de dados. Somente os usuários que sabem a senha podem abrir a base de dados.
- Jet Workgroup Security: Users, groups and object permissions can be defined to restrict who can view/edit data and what they can run. A segurança do grupo de trabalho está disponível para as bases de dados do MDB, mas não para as bases de dados do ACCDB.
- encriptação de Ficheiros: o conteúdo da base de dados pode ser encriptado ao nível dos ficheiros. A encriptação ACCDB é significativamente melhor do que a encriptação para MDBs.
infelizmente, estes mecanismos não são robustos nem confiáveis. Senhas de banco de dados usam um mecanismo de encriptação muito simples. Na verdade, remover uma senha de banco de dados de acesso é uma matéria simples, dado que a senha livre e comercial “removers” são facilmente encontrados na web. Embora os usuários de acesso podem não estar preocupados com tais lapsos, gerentes de TI certamente devem estar.
enquanto a segurança do Jet Workgroup é mais robusta, ele ainda deixa o conteúdo de toda a base de dados MDB aberta a partir do sistema de arquivos. Uma vez que todos os dados de tabela e código são armazenados em vista simples, é uma matéria trivial para abrir um arquivo MDB em um editor e código de Visualização Compatível com string, senhas e dados de tabela.
finalmente, porque o acesso requer permissões de leitura completa para todos os usuários para o arquivo de banco de dados Real, qualquer um que pode ver uma unidade de rede compartilhada pode caminhar com a base de dados em um disco ou CDR ou enviá-lo por e-mail fora de sua organização.Se a segurança é importante, o SQL Server é muito mais seguro do que o Microsoft Access, Excel, Word ou qualquer outro programa que armazena seus arquivos diretamente no disco rígido acessível ao usuário.
confiabilidade e manutenção
confiabilidade é um dos principais marcos de referência a examinar ao considerar a ampliação. Na verdade, para muitas aplicações críticas de missão, a confiabilidade é a consideração mais importante. O Microsoft Access não é tão confiável quanto o SQL Server por várias razões.
corrupção de bases de dados
quando as bases de dados Microsoft Access/Jet encontram um erro interno inesperado ou problema de conexão, elas podem se tornar corruptas. Um banco de dados corrompido geralmente bloqueia todos os usuários do banco de dados e resulta em perda de dados e perturbação do negócio.
Microsoft Access / Jet databases are more prone to corruption than SQL Server for a number of reasons. Uma vez que o Access/Jet utiliza um modelo de partilha de ficheiros, todos os utilizadores estão simultaneamente a manter ligações activas aos dados. Se algum desses usuários inesperadamente perder a conexão, o banco de dados pode se tornar corrupto. A perda de conexão pode acontecer se a conexão de rede do Usuário é intermitente, versões do driver não são versões atuais ou conflitantes dos DLLs Jet são usados para ler o mesmo arquivo de banco de dados.O Microsoft Access inclui um utilitário compacto/reparo, mas a corrupção grave de banco de dados não é fixada por este utilitário. Serviços de reparo de terceiros estão disponíveis, mas isso requer o envio do banco de dados afetado para outro local, pagando uma taxa, e esperando que ele seja devolvido com resultados mistos.
problemas de manutenção
O Windows permite copiar uma base de dados de Acesso Microsoft, mesmo que as pessoas a tenham aberta, para que você possa criar uma cópia de segurança, mas isso pode ser um problema se alguém estiver modificando os dados no momento em que o arquivo está sendo copiado.
compactar um banco de dados Microsoft Access requer que todos os usuários estejam fora do banco de dados, o que é problemático para soluções em execução 24/7. Um bloqueio é colocado na base de dados ao nível do arquivo (*.ldb ou *.arquivos laccdb) assim que é aberto pelo primeiro usuário.
num ambiente multi-utilizador, o Microsoft Access não lhe diz quem está actualmente na base de dados, por isso pode ser uma dor de cabeça administrativa para tirar as pessoas do sistema. Nosso Programa de acesso total Admin permite monitorar os usuários entrando e saindo do banco de dados em tempo real, o que ajuda e pode compactar o banco de dados depois que todos saem, mas não é uma característica incorporada do Microsoft Access.
muitas vezes é difícil coordenar o processo de garantir que todos os usuários se logram de uma aplicação de acesso Antes de fazer uma cópia de segurança.Cenários típicos envolvem usuários deixando seus computadores ligados quando eles deixam o escritório para o dia. Isso deixa o banco de dados aberto e software de backup não será possível copiar de forma confiável o arquivo de banco de dados. Muitas vezes isso só é detectado após a falha do backup, deixando o administrador de sistema para rastrear o problema e espero que ele seja solucionado antes da próxima execução de backup.
adicionalmente, o Microsoft Access não é auto-tuning como o SQL Server. Ele não recupera automaticamente o espaço perdido de banco de dados ou otimiza índices e consultas. Esta manutenção é realizada executando o recurso reparação / compacto. Nosso Programa de agente Visual total permite automatizar isso em um cronograma que você especifica e mantém uma pista de auditoria, mas não é uma característica incorporada do Microsoft Access.
se uma organização não faz regularmente backup de bases de dados individuais de desktop, as pessoas podem criar bases de dados de acesso em seus PCs que nunca são suportados ou mantidos. As organizações podem tratá-los como dados de usuário que podem ser perdidos como se fosse uma planilha Excel ou documento Word, mas Políticas melhores devem estar no lugar para que os usuários possam salvar suas bases de dados onde a administração básica do sistema é fornecida.As bases de dados Microsoft Access precisam ser apoiadas para recuperação de desastres e periodicamente compactadas para se manterem saudáveis. Um sistema automatizado deve ser implementado para cuidar disso para as muitas bases de dados de acesso que existem hoje e as criadas no futuro. SQL Server upsizing deve ser considerado para as bases de dados onde tais processos automatizados não podem ser implementados devido ao uso contínuo da base de dados ou o custo de perder quaisquer dados é elevado.
escalabilidade
escalabilidade é definida como a capacidade de uma aplicação operar de uma maneira aceitável à medida que o número de usuários ou processos que chamam a aplicação aumenta. Em algumas situações, o Microsoft Access / Jet não pode escalar para suportar a demanda na base de dados.
Arquitectura de Base de dados dividida
Antes de fazer a ampliação, a sua base de dados de acesso deve ter uma arquitectura de Base de dados dividida. Isto separa a base de dados de aplicações do Utilizador da base de dados partilhada de back-end. As ligações de banco de dados de aplicativos front-end para o banco de dados compartilhado e atualizações são mais fáceis porque os dados não precisam ser modificados para novas versões (desde que as estruturas de tabelas não sejam modificadas). Para mais informações, consulte o nosso artigo sobre a arquitetura de banco de dados Split Access Microsoft para suportar ambientes multi-utilizadores, melhorar o desempenho e simplificar a manutenção. A arquitetura de banco de dados split também ajudará em um esforço de ampliação para preservar o acesso existente front-end.
se uma única cópia de uma base de dados de Acesso Microsoft reside em uma unidade de rede e está sendo aberta por vários usuários ao mesmo tempo, você pode ter um problema de escalabilidade. Mas isso deve ser endereçado usando uma arquitetura de banco de dados dividida em vez de upsizing para o servidor SQL.
número de utilizadores concorrentes
tem havido mitos sobre as bases de dados Microsoft Access não serem capazes de suportar mais de 20 utilizadores. Pode ter sido esse o caso quando o Microsoft Access foi introduzido em 1992, mas já não é o caso há muito tempo. O Microsoft Access tecnicamente permite até 255 conexões por banco de dados. Isso significa que ele pode ser usado para aplicações para equipes muitas vezes que, se eles não precisam Todos usá-lo ao mesmo tempo.
o número de conexões/usuários que um banco de dados de acesso pode suportar é ditado pela forma como a aplicação foi projetada e implementada. Um aplicativo de acesso bem projetado pode suportar 100 + usuários simultâneos com desempenho decente. Por outro lado, um aplicativo de acesso mal projetado pode ser executado em um crawl com dois usuários. Ou alguns processos são apenas demorado e será lento, não importa qual banco de dados é usado. Não se trata realmente da tecnologia, mas da implementação.
infelizmente, muitas bases de dados de acesso não são bem projetadas ou implementadas com as melhores práticas. Isto porque a maioria das bases de dados de acesso são criadas por usuários que simplesmente não têm a experiência ou conhecimento para criar aplicações de banco de dados profissionais. Eles são construídos ao longo do tempo e novos recursos e modelos de dados são conectados à medida que a necessidade surge. O resultado é uma solução global que não pode suportar de forma confiável mais do que alguns usuários.
não aumente as aplicações de Acesso Microsoft por razões de contagem de usuários se o número de usuários simultâneos é relativamente baixo. A ampliação deve ser considerada se for necessário suportar mais de 100 usuários simultâneos e mais no futuro.
tamanho máximo da Base de dados
cada base de dados Microsoft Access tem um tamanho máximo de 2 GB. Isso é um monte de texto e dados numéricos, mas pode ser facilmente excedido se arquivos e gráficos estão sendo armazenados. Para a grande maioria dos bancos de dados Microsoft Access, isso é muito maior do que o banco de dados jamais obterá. Às vezes as bases de dados ficam grandes, mas um compacto geralmente reduz-o a um tamanho mais razoável. Certifique-se também de descompilar as suas bases de dados Microsoft Access de vez em quando ao compactar.
com uma arquitetura de banco de dados dividida, uma aplicação Microsoft Access pode ligar a dados de várias bases de dados Microsoft Access que somam mais de 2 GB. Claro, isso não é um bom projeto se os dados não devem ser divididos em várias tabelas ou bases de dados.
a ampliação deve ser considerada se a base de dados exceder 1 GB ou exceder 2 GB num futuro próximo.
diferentes versões do Microsoft Access and Jet
existem muitas versões do Microsoft Access. Uma solução de banco de dados Access pode depender de uma versão particular de um formato de banco de dados Access, contar com recursos que só estão disponíveis em certas versões de Access, componentes como ADO e DAO, etc. Embora seja fácil distribuir um banco de dados de Acesso para usuários que já têm acesso instalado em seu PC, não é tão fácil controlar que versão de acesso é aberta para executá-lo.
um PC pode ter várias versões de acesso instaladas nele. Abrir um arquivo ACCDB ou MDB lança diretamente a versão de acesso que está associada a essa extensão de arquivo (geralmente a última versão de acesso que foi aberta).
adicionalmente, quando o Access 2000 foi introduzido, o novo formato de arquivo MDB não era compatível com a versão anterior Access 97. Abrir o banco de dados no Access 2000 (ou mais tarde) poderia atualizar o banco de dados para o novo formato e impedir os usuários da versão antiga de abri-lo, o que era um problema em ambientes multi-usuários. Este problema não se repetiu desde a versão de 2000.
o nosso Programa de inicialização Total Access ajuda as organizações a gerir centralmente e a implantar bases de dados Microsoft Access no ambiente de trabalho de cada utilizador e a controlar a versão do Access que é lançada para ele. Isso facilita a distribuição de seus aplicativos de acesso com um atalho, e a última versão do seu banco de dados está sempre instalado na máquina de cada usuário. Também torna simples atualizar a sua aplicação de uma versão de acesso a outra.
problemas de gestão de diferentes versões do Microsoft Access, ou distribuição de atualizações de bases de dados Microsoft Access, não é resolvido migrando para o SQL Server se você manter o acesso front-end de sua base de dados. Ele só pode ser endereçado substituindo o Microsoft Access completamente. Isso pode resolver o problema imediato, mas impede os usuários de fazer o seu trabalho. Já vimos organizações proibirem o acesso Microsoft apenas para funcionários para comprar produtos de banco de dados piores, em vez disso, uma vez que o problema do banco de dados não desapareceu. Para a maioria das organizações, é impraticável usar desenvolvedores profissionais para criar cada banco de dados necessário quando a maioria pode ser tratada pelos usuários finais.
Performance
Performance is a common reason people want to upgrade their Microsoft Access databases to SQL Server. Existe uma suposição de que o SQL Server será executado mais rápido do que um banco de dados Microsoft Access. Afinal de contas, o servidor SQL é gerenciado por um servidor separado que apenas envia os registros solicitados, e pode usar vários CPUs e máquinas para gerenciar grandes conjuntos de dados.
Microsoft Access, sendo baseado em arquivos, envia toda a base de dados, tabela ou índice dependendo da solicitação para o cliente (PC) para processar.
While this would give the edge to the server approach, we have found that performance is NOT improved in many situations. Aqui estão algumas razões:
- muitas bases de dados de acesso são relativamente pequenas (menos de 100 MB). Com a conectividade atual de hardware e rede, as quantidades de dados que estão sendo passados são quase instantâneas, sejam seus poucos registros ou toda a tabela.
- SQL Server executa trabalho extra que as bases de dados de acesso não fazem. Por exemplo, o servidor SQL pode manter um log de transações e realizar manutenção contínua que adiciona sobrecarga. Temos visto diminuições no desempenho quando pequenas bases de dados são aumentadas para o servidor SQL.
- SQL Server is designed to handle very large databases well beyond the 2 GB limit of Access. Não está optimizado para o que consideraria bases de dados minúsculas.
- realizar consultas a partir de diferentes fontes de tabela ligadas pode não se beneficiar da otimização do servidor SQL uma vez que o trabalho ainda é feito pelo Access
- cache de dados pelo Microsoft Access para tabelas de acesso existe porque ele sabe se os dados foram alterados. Para os dados do servidor SQL, cache na memória não é possível porque os dados podem ter mudado desde a última solicitação.
- um conjunto mal projetado de tabelas, consultas ou código VBA vai correr lentamente, independentemente se os dados estão no Access ou Servidor SQL.
Antes de aumentar para o servidor SQL por razões de desempenho, certifique-se de que seu banco de dados de acesso é otimizado para que ele funcione tão bem quanto ele pode no acesso. Ir para o servidor SQL não irá corrigir problemas sérios de projeto de banco de dados e consulta. Corrigir estes no Access é realmente mais fácil do que fazê-lo mais tarde no servidor SQL, de modo que o tempo e esforço gasto fazendo isso é preservado se você aumentar mais tarde.
para garantir que a sua base de dados Microsoft Access não tenha problemas graves, use o nosso Programa de Análise de acesso Total para documentar e analisar a sua base de dados. Ele detecta mais de 300 tipos de erros, sugestões de design e problemas de desempenho que podem ajudá-lo a otimizar o seu banco de dados de acesso.
para bases de dados de acesso relativamente pequenas da Microsoft, não aumente para SQL Server apenas por razões de desempenho. Pode haver uma diminuição no desempenho após a ampliação. Procure maneiras de otimizar os problemas de acesso Antes de fazer o investimento para aumentar. Problemas de desempenho podem não estar relacionados com o armazenamento de dados.