O InterBase é o SGBD da mesma fabricante atual do Delphi, a Embarcadero, mas que esteve fora de pauta por um longo tempo dentro da comunidade, apesar de estar presente no mercado desde seu lançamento inicial há mais de uma década atrás. Por motivos principalmente relacionados ao crescimento da própria comunidade nos últimos tempos, novos desenvolvedores talvez não tiveram contato com o produto. Sendo assim, o presente artigo remonta a história e faz uma apresentação do InterBase, dando um foco maior na versão mais recente do produto, ao mesmo tempo em que é exposto um pouco de suas principais características onde muitas delas são provindas de seus releases anteriores.
Em que situação o tema é útil
Demonstrar as qualidades do banco de dados da Embarcadero, permitindo assim, acrescentar ainda mais opções para uma importante etapa do desenvolvimento, a escolha da solução de armazenamento.
InterBase XE
Historicamente falando, como é de conhecimento de muitos, Delphi e InterBase sempre estiveram relacionados. Isso se justifica pelo fato de ambos sempre serem geridos por uma mesma fabricante, o que resulta inclusive em diversos recursos nativos. Exemplo disso é uma paleta de componentes exclusiva (IBX) dentro do IDE de desenvolvimento, bem como um driver dbExpress otimizado. Apesar de estarem ligados, o que se percebe no cenário atual é que o Delphi obteve muito mais sucesso em termos de visibilidade e usabilidade. O InterBase, por si só, apesar de ter ficado à sua sombra, sempre esteve no mercado e, como qualquer produto comercial, foi constantemente melhorado a cada novo lançamento. Dito isto, este artigo tem a intenção de retomar o InterBase em meio à comunidade, mostrando um pouco do estágio atual deste SGBD, fazendo um overview de algumas de suas principais características presentes em sua versão mais recente (XE), sejam elas novas ou integrantes de seu legado. Por se tratar de um assunto extenso, o tema será abordado numa série de dois artigos, onde este primeiro terá como foco a apresentação geral do produto em si, deixando para o segundo uma abordagem mais prática, mas não menos conceitual.
O InterBase é o SGBD atualmente desenvolvido, mantido e comercializado pela Embarcadero, a mesma fabricante do Delphi. Como se sabe SGDB é o acrônimo de Sistema de Gerenciamento de Banco de dados. Esta denominação é uma referência traduzida do termo em inglês DBMS (Database Management System). No entanto, no caso do InterBase, comumente é utilizada a sigla RDBMS (Relational Database Management System), algo como Sistema de Gerenciamento de Banco de Dados Relacional, especificando assim sua característica. Adicionalmente, ele é um sistema bastante convencional e totalmente compatível com a SQL-92 (ver nota do DevMan).
Partindo de uma comparação inicial com outros SGBDs, o grande atrativo do InterBase fica por conta de seu tamanho enxuto, alto desempenho e quase zero de requisitos de administração. Em relação a este último, significa dizer que o próprio desenvolvedor é capaz de administrá-lo (como já acontece em muito dos casos), extinguindo a necessidade de um profissional especializado, tal como um administrador de banco de dados (DBA). Este cenário de dependência é o que ocorre corriqueiramente com SGBDs do porte de Microsoft SQL Server, Oracle e DB2. No mais, a conectividade do InterBase se estende a vários sistemas operacionais diferentes, mais precisamente Windows, MacOS X, Linux e Solaris.
SQL-92 é a denominação dada à terceira revisão da linguagem de consulta de banco de dados, a SQL (Structured Query Language). Nesta emenda, foram estabelecidos novos recursos que acabaram por se tornar algo trivial nos dias atuais, tais como a adoção de tipos de dados como Date, Time e TimeStamp, o suporte a alterações de esquema através de comando ALTER e DROP, bem como o trabalho com tabelas temporárias.
Um pouco de história
Podemos pontuar a década de 90 como o início da história do InterBase, no momento em que a Borland estabelecia a aquisição de uma empresa até então proprietária do produto, e que culminou com a inclusão do InterBase como parte do negócio. Na década seguinte, em meados de 2000, a Borland traçou uma estratégia para um desmembramento que tinha como objetivo determinar uma empresa específica para tomar a frente do produto. Com o insucesso deste plano, fundamentalmente devido a motivos políticos, o InterBase manteve-se sob propriedade da Borland ao mesmo tempo em que seu código foi exposto ao grande público sob uma variante da Mozilla Public License, se tornando um projeto Open Source. Neste momento o produto encontrava-se na versão 6 e logo tomou fama na comunidade Delphi, sendo largamente adotado por desenvolvedores e empresas na época. Após um breve período de pequenas atualizações, passando inclusive pela versão 6.5 do produto, a Borland anuncia o fim da gestão do código aberto, dando abertura para que outros grupos ou empresas pudessem tomar as rédeas do projeto. Apenas para citar, o exemplo mais clássico disso é o Firebird que, no ano de 2000 foi concebido por um grupo de programadores, a partir do código do InterBase e cujo projeto permanece ativo até os dias atuais. Com o surgimento do Firebird, e seu progressivo amadurecimento, a comunidade de desenvolvedores começa a ver nele uma solução eficaz para a parte de dados de suas aplicações, em vista de sua eficácia e de seu caráter gratuito. Sendo assim o InterBase começa naturalmente a perder espaço, tendo sua presença notada mais em sistemas legados.
Seguindo uma ordem cronológica, o produto ainda contou com novos releases nos anos conseguintes. Apenas como informativo, em 2002 a Borland lançava o InterBase 7, que trazia uma melhoria significativa na parte de recursos para servidor, tais como ferramentas de monitoramento e controle. Nos anos seguintes, esta versão se manteve como base, refletindo nos lançamentos 7.1 (2003), 7.5 (2004) e 7.5.1 (2005). Dando um salto para 2006, acontece o anúncio do InterBase 2007, com previsões de melhorias significativas, como backup incremental, caracteres Unicode e novo driver ODBC exclusivo. Nesta mesma época, já com a mudança de Borland para CodeGear, o produto se mantém presente mas sem grandes alardes, deixando de ser pauta na comunidade Delphi. Dois anos depois, já em 2008, a CodeGear é então adquirida pela atual Embarcadero. Sob esta nova proprietária, é apresentado o InterBase 2009, que incluiu novas características que perduram até sua versão mais recente, tal como suporte a criptografia multinível (de banco e colunas). Por fim, no ano de 2010 é lançada a versão XE do produto, com versões para 64-bits para suas partes servidor e cliente. Versão esta que se encontra o produto atualmente, até o momento da escrita desta publicação.
Características
Falando um pouco mais sobre as características do InterBase, podemos estabelecer que ele é um banco de dados rápido. Quando inserido no desenvolvimento Delphi, essa qualidade se torna ainda maior pela presença de componentes de acesso a dados nativos, arquitetados sob medida para a tecnologia, tal como os da paleta InterBase. A Figura 1 mostra este grupo de componentes sob a perspectiva do Delphi XE2. Ainda se tratando de performance, o SGBD trabalha com multiprocessamento simétrico, suportando múltiplos processadores, incluindo CPU’s multi-core. Além dessas, podemos facilmente citar algumas outras de suas principais características técnicas:
• Protocolo de Rede: o InterBase trabalha com o protocolo TCP/IP em todas as suas plataformas suportadas. Especificamente para ambientes onde sua parte cliente e servidor estejam inseridos na plataforma Windows, acrescenta-se o suporte a NetBEUI/named pipes;
• SQL-92: trabalha em conformidade com o padrão ANSI SQL, seja através de suas ferramentas interativas, seja através de aplicações Embarcadero para Desktop (Delphi e C++ Builder);
• Simultaneidade de acesso a banco: provê suporte para que uma única aplicação possa acessar vários bancos de dados distintos ao mesmo tempo, num mesmo servidor;
• Arquitetura multigeracional: o InterBase Server estende, conforme a necessidade, o armazenamento de versões mais obsoletas dos registros, a fim de prover às transações uma visão mais consistente dos dados solicitados;
• Optimistic row-level locking: numa tradução livre para o português, trata-se de bloqueio otimista em nível de linha. Isso significa que o Server, no momento da atualização de um registro no banco por parte do cliente, faz o bloqueio apenas do referido registro de forma individual, ao invés de bloquear toda a página de banco de dados;
• Otimização de consultas ao banco de dados: o desempenho de uma consulta aos registros do banco de dados, invariavelmente se torna uma preocupação primária para o cliente que faz a chamada. Visando contribuir para este processo, o InterBase Server faz uma otimização automática de todas as Querys executadas sobre ele. Caso não seja suficiente, pode-se especificar então um plano de consulta manualmente;
• Alertas: o InterBase provê Event Alerters, que nada mais são que mensagens que são passadas do banco para a aplicação, possibilitando que estas recebam de forma assíncrona notificações sobre alterações na base de dados;
• Views atualizáveis: o InterBase permite Views atualizáveis, cujas alterações irão refletir diretamente nos dados relacionados à medida que ocorrem;
• Gerenciamento explícito de transações: controle total sobre o ciclo de vida completo de uma transação – start, commit e rollback – bem como transações nomeadas.
...