1) Introdução
Este artigo ilustra conceitos sobre os diferentes bancos de dados disponíveis no mercado. Será apresentada uma breve introdução aos conceitos relacionados a bancos de dados e às diferenças existentes entre os diferentes tipos, e serão abordados critérios de seleção entre os tipos suportados pelo E3.
2) Conceitos importantes sobre bancos de dados relacionais
Sistemas Gerenciadores de Bancos de Dados (SGBD)
Este é o nome genérico de um servidor de banco de dados, como o MS SQL Server ou o Oracle. Gerenciador de arquivos é o nome utilizado para bancos de dados baseados em arquivos, como o Access e os XBase. Banco ou Base de Dados (Database) Conjunto de tabelas, procedimentos e dados relacionados direta ou indiretamente, com o objetivo de armazenar informações sobre um determinado sistema.
Tabela (Table)
Conjunto de um ou mais campos de dados, com relação entre si. O uso desses campos (normalmente entendidos como colunas) se dá em blocos e cada bloco de informação (conhecido como registro) é normalmente visualizado como uma linha da tabela.
Índice (Index)
Normalmente, um sub-conjunto de campos de uma tabela, mantido automaticamente pelo servidor, com o objetivo de agilizar a consulta a essa tabela. Pode apresentar a restrição de ser único, ou seja, dois registros diferentes não podem ter os mesmos valores no índice.
Chave Primária (Primary Key)
Índice único criado para servir como índice-padrão e para manter a integridade dos dados. Em sistemas complexos, o uso de PKs é indispensável. Pode ser usado em outras tabelas como uma chave estrangeira.
Consulta (Query)
Uma solicitação feita ao banco de dados. Normalmente, utilizada para extração de dados, mas pode ter outras funções além dessa. Todo o conjunto de funções suportado pelo servidor de banco de dados pode ser usado em uma consulta.
Procedimentos (Stored Procedures)
SGBDs suportam procedimentos que são armazenados no próprio servidor. Esses procedimentos permitem inclusão de dados, consultas e updates, além da manutenção do próprio banco, com inclusão de novas tabelas, etc. São ótimas interfaces para execução de tarefas repetitivas.
Views
São consultas utilizadas para extração de dados do servidor que estão armazenadas no próprio servidor. Funcionam como os procedimentos, com a restrição de que apenas podem extrair dados.
Permissões (Grants)
O controle de usuários em sistemas SGBDs é bastante rico em recursos. Cada usuário pode receber diferentes tipos de permissões e uma vez logado, o usuário tem de respeitar as suas permissões. Desse modo, garante-se que não existam problemas de uso inadequado de informações por um usuário ou outro (seja por acidente ou qualquer outro motivo).
SQL
Linguagem popularmente utilizada para interação com SGBDs. Existe um padrão estabelecido (ANSI-92), mas esse padrão não contempla alguns recursos implementados em SGBDs mais recentes. Por isso, muitos sistemas comerciais fazem incrementos a esse padrão.
Transações (Transactions)
Transações são “sequências de alterações controladas” nos dados do banco feitas em bloco, ou seja, se uma dessas alterações falha, todo o processo de alterações é cancelado.
3) Diferenças entre Gerenciadores de Arquivos e SGBDs
Algumas das diferenças entre SGBDs e Gerenciadores de Arquivos são:
- Controle de acesso às informações: sistemas gerenciadores de bancos de dados trazem suporte a controles de usuários mais eficientes que sistemas de arquivos.
- Otimização de consultas: Bancos de Dados otimizam a consulta ao seu conteúdo, através do uso de índices e/ou chaves.
- Segurança de dados: o arquivamento de dados é otimizado, e não sendo baseado em arquivos, é mais difícil que os dados todos sejam perdidos (seja por apagamento acidental do arquivo ou por qualquer motivo semelhante).
- Suporte a rede: BDs trazem suporte à rede, que é transparente para os usuários do banco. Dessa maneira, é possível criar sistemas onde uma máquina é responsável apenas pela manutenção dos dados, enquanto o E3 entraria como servidor de aplicação.
- Suporte a procedimentos: através de procedimentos, nos SGBDs é possível gerenciar políticas de armazenamento de dados ou garantir a consistência de dados que são gerados no E3. Isso é especialmente importante quando além de coleta de dados, é necessário fazer cálculos com esses valores.
- Capacidade de armazenamento: arquivos .mdb (um tipo de gerenciador de arquivos) suportam no máximo 2GB de dados (com piora do desempenho já a partir de 100MB), ao passo que os BDs suportam maiores cargas de dados sem problemas.
- Suporte a transações: garantem a integridade da lógica do negócio. Caso uma das operações falhe, o sistema volta ao estado anterior ao início da transação.
As características ilustradas acima são apenas algumas das que diferenciam os dois tipos de bancos de dados. Entretanto, os fatores que levam a decisão entre uma ou outra solução são, na maioria das vezes, técnicos e comerciais, visto que os servidores exigem maior investimento inicial e também maior custo de gerenciamento. Um breve guia para seleção está no final desse documento.
4) Diferenças entre SGBDs comerciais
Não existem diferenças significativas na configuração de um banco de dados ou outro no Elipse E3. Os procedimentos para uso de um ou outro servidor são idênticos, mudando apenas a parametrização do objeto Servidor de banco de dados. Entretanto, as diferenças entre os servidores devem ser respeitadas no E3. Algumas dessas diferenças são:
- Suporte a extensões do SQL: embora o SQL seja a linguagem padrão para comunicação com bancos de dados, todos os servidores criam funções específicas para tratar diferentes solicitações.
- Suporte a tipos de dados: assim como as funções do padrão SQL são insuficientes para o trabalho com DBs, os tipos suportados pelos diferentes servidores variam. Algo que é implementado sempre com diferentes métodos para tratar é o tipo “Data/Hora”. Por isso, o uso desse tipo de dado deve ser tratado atenciosamente para que não haja problemas.
- Modo de autenticação de usuários: o E3 trata automaticamente a questão da autenticação de usuários. Entretanto, diferentes servidores requerem diferentes parâmetros para a autenticação. Verificar a correta parametrização antes de acessar um determinado servidor.
5) Bancos de Dados no E3
O MS Access é o banco de dados adotado como padrão no Elipse E3. Todos os objetos de armazenamento de dados utilizam o formato .mdb para arquivar informações. Além disso, o arquivo necessário ao funcionamento de um determinado projeto é automaticamente criado quando necessário. Por exemplo, ao salvar um registro de alarmes, se o arquivo não existir, o E3 criará o arquivo necessário e depois fará a inserção do registro na tabela devida. O mais importante é que não é necessário ter instalado o software MS Access no micro onde será executado o E3.
Como alternativa, o Elipse E3 disponibiliza interface com outros servidores de bancos de dados comerciais como o MS SQL Server e o Oracle, através do padrão ODBC/ADO.
Quadro de referência para seleção:
ACCESS É MELHOR QUANDO… |
SGBD É MELHOR QUANDO… |
A aplicação é utilizada com menos de 10 usuários concorrentemente. | A aplicação é utilizada com mais de 10 usuários concorrentemente. |
Dados e estruturas de dados devem ser facilmente modificados por usuários finais. | Dados devem ser centralizados, mantidos e protegidos. |
A máquina cliente é proporcionalmente mais potente que a máquina servidora. | A máquina servidora é mais potente que a máquina cliente. |
Largura de banda da rede satisfatória. | Rede está carregada. |
Velocidade e “conveniência” são mais importantes que integridade. | Integridade de dados é crucial. |
Baixa disponibilidade de administradores de rede e banco de dados qualificados. | Disponibilidade de administradores de rede e banco de dados qualificados. |
Somente uma aplicação acessará rotineiramente os dados. | Várias aplicações poderão acessar os dados. |
As aplicações serão as responsáveis pela manutenção da integridade de dados. | O banco será o responsável pela integridade de dados independentemente das aplicações. |
Pequena ou moderada quantidade de dados (< 100MB). | Moderada a grande quantidade de dados (> 100MB). |