Conhecendo o Firebird
Se você procura um banco de dados fácil de utilizar, compacto, com recursos de um SGDB bom, grátis e principalmente confiável, precisa conhecer o Firebird.
O Firebird é um banco de dados Cliente/Servidor relacional compatível com SQL-ANSI-92 e que foi desenvolvido a partir do Código do Interbase 6 para ser independente de plataformas e de sistemas operacionais.
Uma de suas vantagens é a dispensa do uso de Administradores de Banco de Dados (DBA). De fácil utilização, basta instalar o software, sem a interferência freqüente de profissionais na manutenção do banco, além disso, dispensa o uso de super-servidores, utilizando, em situações normais, pouco espaço em disco e memória. Por isso, a plataforma necessária para a sua instalação e utilização pode ser reduzida, diminuindo consideravelmente os custos do projeto.
Seu desenvolvimento iniciou em meados de 1985 por uma equipe de engenheiros da DEC ( Digital Equipament Corporation ). Tendo como nome inicial de Groton, o produto sofreu varias alterações até, finalmente em 1986 receber o nome de Interbase® iniciando na versão 2.0 e hoje estando na versão 7. Desenvolvido por um grupo independente de programadores voluntários, o código fonte do Firebird é baseado no InterBase(tm) 6.0, disponibilizado pela Borland sob a licença IPL (“InterBase Public License v.1.0”) em 25 de Julho de 2000. O código da versão atual do FB foi submetido a uma extensa limpeza, eliminação de "bugs", passando por várias versões "beta", durante os anos que passaram entre a disponibilidade do código fonte e o lançamento desta versão. A “On-Disk Structure” é ainda a ODS 10. Algumas funcionalidades que obrigam a alterar a ODS foram adiadas para uma versão posterior. Foram adicionadas algumas extensões à linguagem, mas hoje, ainda são compatíveis as linguagens, por exemplo, se você tem um sistema rodando Interbase 6, pode migrar para o Firebird sem problemas, apenas removendo o Interbase e instalando o Firebird, recomenda-se que se faça um backup e um restore no banco após a migração.O publico alvo do Firebird são pequenas, médias e grandes empresas que procuram um banco de dados confiável, pratico e grátis. Uma pesquisa realizada pelo site Firebase( www.firebase.com.br ), mostra que 50,37% dos usuários do site utilizam Firebird e os outros 49,63% utilizam versões do Interbase(5,6,7), isso mostra que mesmo sendo um banco “novo” no mercado, o Firebird esta crescendo muito. Sua utilização é bastante vasta, podendo ser usado tanto em aplicações Client/Server como em páginas da Internet, existem vários sites utilizando e aprovando seu desempenho.
Se o Firebird é tão bom, porque ele não é tão badalado como o Oracle, o Microsoft SQL server e outros servidores SQL ?
O Firebird não é tão famoso quanto o Oracle, ou o SQL Server porque ainda é pouco conhecido, muita gente não sabe de suas qualidades, mas, isso tende a mudar gradativamente, hoje em dia, no Brasil por exemplo, já temos muito material na Internet sobre Firebird, o que há pouco tempo atrás não existia.
Segue abaixo algumas de suas especificações:
Open-source
Significa que possui seu código fonte disponibilizado. Você pode baixar na Internet a instalação, os fontes e sua documentação, instalá-lo e utilizá-lo normalmente, sem custo algum.
Supote à protocolos de rede
Protocolo é um conjunto de regras que definem como os dados serão transmitidos; como será feito o controle de erros e retransmissão de dados; como os computadores serão endereçados dentro da rede etc. Um micro com o protocolo NetBEUI instalado, só será capaz de se comunicar através da rede com outros micros que também tenham o protocolo NetBEUI, por exemplo. É possível que um mesmo micro tenha instalados vários protocolos diferentes, tornando-se assim um “poliglota”. O Firebird suporta os seguintes protocolos:
- TCP/IP para todas as plataformas;
- NetBEUI;
- IPX/SPX;
Compatibilidade com ANSI SQL-92
Isso facilita e muito quem está migrando de outros bancos para o Firebird, pois o ANSI SQL é o padrão internacional utilizado pela grande maioria de sistemas de bases de dados.
Instalação Rápida
Você faz a instalação rapidamente e sem dificuldades. O firebird ocupa pouco espaço em disco. Para efetuar o download do Firebird, acesse o site: www.firebirdsql.com
Stored Procedures (procedimentos armazenados)
São procedimentos armazenados no banco que executam várias tarefas. O Firebird possui um tipo de linguagem de programação com comandos FOR, IF, etc. As Stored Procedures possuem a grande vantagem de serem executadas diretamente no Servidor, fazendo com que a rede fica menos carregada, a regra para utilizá-las é bem simples, onde der pra usar Stored Procedures use, testes comprovam que o uso delas aumenta e muito a velocidade da aplicação. Abaixo segue 5 motivos pra utilizá-las:
- Reduzir o tráfico de rede.
- Criar um conjunto comum de regras de negócio no banco de dados que se aplicará a todas as aplicações cliente.
- Fornecer rotinas comuns que estarão disponíveis para todas as aplicações cliente reduzindo assim o tempo de desenvolvimento e manutenção.
- Centralizar o processamento no servidor e reduzir os requisitos de hardware nas estações cliente.
- Aumentar a performance das aplicações.
Triggers (gatilhos)
Triggers são bem parecidos com Stored Procedures, exceto que triggers são executados automaticamente quando uma alteração ocorre a tabela na qual ele está conectado, além disso, triggers não possuem parâmetros de entrada e não retornam valores.
Acesso simultâneo a múltiplos bancos de dados
Uma ou mais aplicações podem acessar vários bancos de dados ao mesmo tempo. Por exemplo, você pode ter um banco de dados onde é guardado informações do seu sistema interno e um de sua página da Internet. Sua aplicação pode acessar, através de múltiplas conexões, os dados de ambas as bases.
Campos Blob
Tipo de dados cujo tamanho é aumentado dinamicamente, podendo conter texto ou dados não formatados (binários), como fotos, textos, resumindo qualquer tipo de arquivo.
Otimização de Queries
Queries são comandos que serão executados pelo banco de dados. O Firebird otimiza queries automaticamente ou, caso prefira, pode ser especificado um plano(PLAN) de acesso manualmente.
Funções de Usuário (UDFs)
Módulos de programa que rodam no servidor, adicionando funcões ao servidor de acordo com as necessidades do usuário. Uma função definida pelo usuário (UDF) é meramente uma função escrita em qualquer linguagem de programação capaz de gerar uma biblioteca compartilhada. No Windows, essas bibliotecas são mais conhecidas pelo nome de Dynamic Link Libraries (DLL's).
Junções Externas (Outer Joins)
Construção de relações entre duas tabelas que habilita operações complexas.
Matrizes Multidimensionais
Suporte nativo a arrays multidimensionais utilizados em aplicações científicas e financeiras. Um único campo do banco pode guardar um array de até 16 dimensões, simplificando o desenvolvimento e aumentando o desempenho destas aplicações.
Shadows
É um recurso de sombreamento de arquivos de banco de dados para prevenção de "crash" em disco rígido, falha de rede ou deleção do banco. A maior vantagem de se trabalhar com shadows está ligada à segurança. Problemas de falha em disco rígido ou remoção indevida de arquivos GDB são facilmente contornados, quando você tem uma "shadow". Ela é uma cópia idêntica do seu arquivo de banco de dados que pode rapidamente ser ativada para substituir o banco principal. Não é necessário o uso exclusivo do banco no momento da criação das shadows. Shadows não requerem nenhuma manutenção ou administração.
Travamento otimista
Quando um usuário processa uma alteração o registro não impedirá que outras pessoas leiam ou tentem também alterar este registro. Quando um usuário começa a alterar um registro no Firebird, uma cópia do registro original é salva. O usuário executa seu serviço, mas os outros usuários não estão sob nenhuma forma impedidos de acessar o mesmo registro, esse tipo de travamento é chamado de Travamento Otimista. O Firebird utiliza tecnologia de travamento otimista para proporcionar grande taxa de uso de operações de banco de dados para clientes, ele implementa travamentos a nível de linha reais para restringir mudanças somente nos registros do banco de dados que um cliente modifica, diferente de travamentos a nível de página, que restringe qualquer dado arbitrário que estiver armazenado fisicamente próximo no banco de dados. Travamentos a nível de linha permitem múltiplos clientes atualizarem dados em uma mesma tabela sem conflito, resultando em menor serialização das operações de bancos de dados.
API do Firebird
São funções do próprio Firebird que habilitam construção e acesso direto ao servidor com o recebimento e retorno. Por exemplo você pode usar a API pra criar seu banco automaticamente, sem ter que enviá-lo junto com a aplicação para o Cliente.
Multiplataforma
O Firebird trabalha em vários sistemas operacionais, veja a tabela abaixo.
Suporte a Múltiplos Arquivos
Você pode dividir seu GDB em vários arquivos, no caso de arquivos muito grandes que não são suportados pelo S.O. O limite de tamanho do GDB é o limite do tamanho de um arquivo no Sistema Operacional.
Usuários de peso
Você pode encontrar uma listagem de empresas que utilizam o Firebird nos sites www.ibphoenix.com e www.firebase.com.br
Tipos de Dados
O Firebird, usando Dialeto 3, suporta a maioria dos tipos de Dados do SQL, sendo que o tipo Boolean ainda não está disponível. Mas, isto não é uma falha, outro SGDB´s também não tem este tipo de dado. Apesar de não possuir o tipo boolean, podemos emular um "tipo boolean" através de DOMAINS.
Os tipos de dados disponíveis são BLOB, CHAR(n), VARCHAR(n), DATE, TIME, TIMESTAMP, DECIMAL, NUMERIC, SMALLINT, INTEGER, FLOAT, DOUBLE PRECISION.
Comparativo de preços
Estas informações foram retiradas da Borland Online Store.
Preços do Interbase 7:
Comparativo entre Interbase 7 e outros Bancos de Dados, lembrando que o Firebird é totalmente grátis:
Comparação técnica
Comparativo | PostgreSQL | Oracle | MS SQL | MySQL | Interbase Free | Firebird | Interbase Comercial | |||||
* Open Source | X |
|
| X | X | X |
| |||||
Plataformas |
|
|
|
|
|
| ||||||
* Linux | X | X |
| X | X | X | X | |||||
* FreeBSD | X |
|
| X |
|
| ||||||
* Windows | X | X | X | X | X | X | X | |||||
* Sun Solaris | X | X |
|
|
| X |
| |||||
* Mac OS X | X |
|
|
|
| X |
| |||||
* IBM AIX | X | X |
|
|
| X |
| |||||
* HP UX | X | X |
|
|
| X |
| |||||
Características |
|
|
|
|
|
| ||||||
* ACID | X | X |
|
| X | X | X | |||||
* Stored Procedures / Triggers | X | X | X |
| X | X | X | |||||
* Transações Concorrentes | X | X |
|
| X | X | X | |||||
* ANSI SQL 99 | X |
|
|
|
|
| ||||||
* ANSI SQL 92 | X | X | X |
| X | X | X | |||||
* Sem limites de usuários | X |
|
| X | X | X |
| |||||
* Integridade Referêncial | X | X | X |
| X | X | X | |||||
* Transações | X | X | X |
| X | X | X | |||||
* ODBC Free | X | X | X | X | X | X | X |
Principais ferramentas de manutenção do Firebird (Windows)
O Firebird possui várias ferramentas de manutenção de bancos de dados: IBConsole(Interbase), IBAcces, Quick Desk, IBExpert entre outros. Eu particularmente utilizo o IBExpert por ser bem fácil de usar e bem completo. Antes de instalar o IBExpert, baixe o Firebird no site www.firebirdsql.com .
Instale-o normalmente e depois execute o Firebird (/Dretório de Instalação/Bin/IBServer.exe), isso fará com que o Firebird entre em execução. Para que sempre que iniciar o Windows o servidor seja executado, adicione o IBServer.exe no Menu Iniciar do Windows.
Agora baixe o IBExpert Personal no site do IBExpert( www.ibexpert.com ). Lembrando que o IBExpert Personal é uma versão FreeWare do IBExpert. Abra o IBExpert, vamos nos conectar ao Banco Employee.gdb que acompanha os exemplos do Firebird 1.0.
Siga os passos a seguir:
Clique em Database depois em Register DataBase, como na figura abaixo:
Agora, preencha os dados do Formulário como na figura abaixo, em Server o valor LOCAL, em Database File, informe o diretório da sua instalação do Firebird mais \examples\EMPLOYEE.GDB(Ex: c:\arquivo de programas\firebird\example\EMPLOYEE.GDB), no Database Alias informe Exemplo, no Login informe SYSDBA e na Senha masterkey(minusculo).(SYSDBA é o usuário principal do Firebird, ele tem acesso completo e já vem pré definido pelo banco. Clique em Register para registrar o banco de dados.
Do lado esquerdo do vídeo aparecerá agora o banco Exemplo, dê um duplo clique sobre ele para expandir e visualizar os detalhes desse banco. Clicando em tabelas, se expandirá as tabelas do banco EMPLOYEE. Mais um duplo click sobre a tabela COUNTRY, veremos suas informações, como: Fields, Constraints, Dependencies, etc.. Clicando na Aba Data, você tem os seus registros em um Grid, podendo alterá-los.
Para executar comandos SQL no banco de dados, selecione no Menu Tools->Script Executive, ou Ctrl+F12, marque a opção Use Current Conection, como na figura abaixo. Agora é só digitar as linhas SQL e clicar em Run Script ou pressionar F9.
Vamos agora, criar uma tabela nova no nosso Banco EMPLOYEE, no Script Executive, digite o seguinte:
CREATE TABLE TABTESTE(
CODIGO INTEGER NOT NULL,
NOME VARCHAR(30) NOT NULL,
SALARIO NUMERIC(12,2),
PRIMARY KEY(CODIGO));
Clique em Run Script ou pressione F9, agora vá até as tabelas do nosso banco registrado e repare que já está criada a tabela TABTESTE, com os campos que definimos e com o campo Código como chave primária. Para alimentarmos a tabela TABTESTE, podemos dar duplo click nela e abrir a aba Dados, ou então rodarmos Scripts utilizando o comando INSERT INTO, por exemplo:
INSERT INTO TABTESTE (Codigo,Nome,Salario) VALUES(1,´Rodrigo Cardoso´,1588);
Basta executar essa linha que um novo registro será inserido na Tabela TABTESTE.
Conclusão
O Firebird satisfaz as expectativas de quem precisa de um banco confiável, robusto, e Open Source. Há algum tempo atrás poderíamos até reclamar do fato do Firebird ter pouca documentação mas, hoje em dia temos muitas fontes e listas de discussão na Internet, fazendo com que o Firebird fique cada vez mais forte. Está na hora de você rever seus conceitos sobre banco de dados. Vimos um exemplo simples de acesso ao Firebird, agora mãos a obra!
Autor: Rodrigo Aparecido Cardoso
Enviado especialmente para participar do concurso FireBase x SQL Magazine
Nenhum comentário:
Postar um comentário