You are on page 1of 5

SGBD Firebird

Henio Akiyo Miyoshi1, Cleiton Antonio Galindo1, Elo Johnne de P. Correa1, Iago
Alves da Silva, Diego Vinicius Berigo
1

Departamento de Cincia da Computao Universidade do Estado de Mato Grosso


(UNEMAT)
Caixa Postal 92 78.390-000 Barra do Bugres MT Brasil

{diegoviniciustga, iago_tga, elcojohnny}@hotmail.com, aki0@live.com,


cleitonantonio.512@gmail.com

Abstract. This work aimed at explaining the key aspects of Firebird. The
Firebird also know as FirebirdSQL is a DBMS multiplataform relacional
besides being totally free is a application open source maintained by Firebird
Foundation. The Firebird is a application adept a model client/server can be
used by small and large companies without a robust infraestructure.
Resumo. Este trabalho tem por objetivo explanar os principais aspectos do
Firebird. O Firebird, tambm conhecido como FirebirdSQL um SGBD
relacional multiplataforma, alm de ser totalmente gratuito uma aplicao
de cdigo aberto e mantido pela Firebird Foundation. O Firebird uma
aplicao adepta ao modelo cliente/servidor, podendo ser utilizado em
empresas de pequeno a grande porte sem a necessidade de uma infraestrutura
muito robusta.

1. Introduo
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 vrias alteraes at, finalmente em 1986 receber o nome de
Interbase iniciando na verso 2.0 e hoje estando na verso 7. Desenvolvido por um
grupo independente de programadores voluntrios, o cdigo fonte do Firebird baseado
no InterBase 6.0, disponibilizado pela Borland sob a licena IPL (InterBase Public
License v.1.0) em 25 de Julho de 2000.
Um marco importante da verso 1.0 do SGBD aps a disponibilizao do cdigo
fonte, foi a correo de um bug de segurana do InterBase.
Na verso 1.5, seu cdigo foi todo revisado e migrado de C para C++, em
dezembro de 2003, foi desenvolvido o projeto Vulcan, baseado no cgido alfa do
Firebird 2 com intuito de redesenhar a arquitetura de threading do engine do banco.
A verso 2.0 introduziu o conceito de tabelas derivadas, cursores explcitos,
valores padro para parmetros, algumas funes, comandos e clusulas foram
implementadas, melhorias relacionados nova implementao de ndices, suporte a
plataformas x64 entre outros.
Continuando a evoluo do SGBD na verso 2.1 foram introduzidas diversas
funes internas, triggers de eventos de transao e conexo, melhorias no protocolo de

comunicao a fim de melhorar a performance cliente/servidor atravs da Internet e


diversas outras melhorias.
A verso 2.5 traz diversas melhorias e novas funcionalidades, dentre elas
podemos destacar a arquitetura SuperClassic que possibilita um melhor desempenho e
uso mais eficiente dos recursos em computadores multi-core, porm ainda mantm o
cache dos dados no compartilhados, caracterstica presente na arquitetura classic. A
verso SuperClassic utiliza threads para gerenciar as conexes, no entanto a arquitetura
SuperClassic no compartilha o cache entre as conexes.
Dando continuidade na evoluo do Firebird, est em desenvolvimento a verso
3 do SGBD, o principal objetivo desta verso suporte total a SMP (Symmetric
Multiprocessing) com cache compartilhada, garantindo total escalabilidade, dentre as
novidades previstas est a utilizao de criptografia tanto na transmisso de dados pela
rede como nas pginas (ndices, pginas de dados, header etc.) do banco de dados.

2. Principais Recursos
O Firebird tem trs principais ferramentas de gerenciamento: O ISQL, o GBAK
e o GFIX.
ISQL - O ISQL um programa que acompanha o Firebird e tem a funo de
acessar as informaes do banco de dados pelas tabelas de sistema.
GBAK - Esta ferramenta responsvel por duas operaes no banco de dados:
efetuar o backup do banco de dados e restaurar o banco de dados a partir de um backup
(restore).
GFIX - O Gfix uma ferramenta de manuteno de banco de dados. Atravs
dela possvel executar vrias operaes visando continuar o uso do banco ou um
posterior backup.
Os tipos de dados disponveis no Firebird so BLOB, CHAR(n),
VARCHAR(n), DATE, TIME, TIMESTAMP, DECIMAL, NUMERIC,
SMALLINT, INTEGER, FLOAT, DOUBLE PRECISION.
Dentre os recursos citados anteriormente podemos destacar tambm:
Suporte total a Triggers e Stored Procedures, backups incrementais, Tabelas de
monitoramento, Tabelas temporrias, linguagem nativa para Stored Procedures e
Triggers (PSQL), Suporte para funes externas (UDFs), Dezenas de ferramentas de
terceiros para gerenciamento, monitoramento, replicao, grande suporte da
comunidade em fruns de discusso totalmente gratuito, praticamente no necessita de
DBAs especializados, entre outros.

2.1 Comandos Bsicos


CREATE DATABASE Cria um novo Banco de Dados. Nele se pode
especificar as suas caractersticas, tais como: Nome do arquivo, tamanho da pgina de
dados (PAGE SIZE).

CREATE TABLE - Cria uma nova tabela no banco de dados Firebird.


CREATE INDEX Cria um ndice para uma ou mais colunas especificas da
tabela. O ndice est ligado diretamente a desempenho do banco de dados. Um ndice
em ambiente Client/Server Firebird, no tem a funo de organizar a tabela, pois, se
tem o mesmo efeito com ORDER BY. A funo de um ndice em ambiente
Client/Server, de performance em primeiro lugar, caso o ndice seja um PK Primary
Key, tem a funo de manter a integridade da tabela, caso o ndice seja um FK
Foreign Key, tem a funo de relacionamento e integridade
CREATE TRIGGER - Cria uma Trigger Gatilho para a tabela especificada.
Trigger um gatilho disparado aps alguma ao ocorrida na tabela, isto , podem
existir Trigger de Insert, Update e Delete. As Trigger pode ser definidas como BeforeAntes e After-Depois. Tambm pode ser definido um nmero onde indica qual a
seqncia de tirareis a ser seguida. A Trigger s disparada pela ao na tabela, no
podendo ser disparada pela aplicao. Dentro da Trigger h duas formas de se
referenciar as colunas das tabelas: OLD.Coluna e NEW.Coluna. Onde OLD. referncia
o valor anterior da coluna e NEW. referncia o novo valor da coluna.
CREATE VIEW - Cria uma nova viso dos dados j existentes em uma tabela.
Uma VIEW uma tabela normal, pode ser fazer o mesmo que uma tabela normal. Um
dos impedimentos referentes a VIEW o ORDER BY.

2.2 Desempenho
O Firebird apesar de possuir um instalador relativamente pequeno comparado a
outros SGBDs, um servidor muito robusto e completo, capaz de gerenciar banco de
dados de diversos tamanhos, empresas com banco de dados significativamente grande,
diferentes empresas em diferentes reas empresas confiam no gerenciamento de suas
bases de dados no Firebird, dentre elas podemos citar Bas-X (empresa australiana
provedora de solues Software-as-a-Service), utilizando o Firebird como SGBD dois
de seus clientes possuem banco de dados com aproximadamente 450GB e 200GB.
Watermark Technologies, software house que utiliza o Firebird, no setor de finanas e
setores governamentais, possui cliente com bases de aproximadamente 300GB.
Alguns fatores que afetam o desempenho como o hardware em si e tambm a
rede devem ser considerados para melhorar o desempenho do SGBD esses fatores
tambm podem ser determinantes para que a aplicao/SGBD tenha um desempenho
abaixo do esperado.
Algumas ferramentas podem auxiliar no monitoramento do desempenho tanto
do SGBD quanto do hardware, um monitoramento do banco de dados nativo foi
introduzido na verso 2.1, a visualizao do que se passa no banco de dados realizado
atravs de selects normais atravs de tabelas virtuais de monitoramento, tambm h
ferramentas de terceiros capaz de realizar este monitoramento, algumas ferramentas
podem verificar quais comandos SQL so mais pesadas e reportar ao DBA para que seja
realizada a devida otimizao do cdigo, um fator importante que afeta o desempenho
o I/O de disco, estas ferramentas podem alm de identificar qual(is) processos, usurios
est consumindo maior recurso do disco, monitoramento de transaes e monitoramento
de forma proativa do banco.

Um recurso nativo do Firebird o sweep que uma varredura geral no banco


de dados, quando o sweep executado realizado uma limpeza de lixo, ou seja,
garbage collection, possvel que tenha transaes enxergando dados que j foram
apagados por outra transao, este recurso acionado periodicamente de forma
automtica, porm o sweep pode ocorrer a qualquer momento, podendo acontecer em
um horrio de pico, causando uma queda considervel no servidor, uma prtica
recomendada desativar que este recurso seja realizado automaticamente e que seja
realizado um agendamento manual para um horrio em que o uso do banco seja
mnimo, atravs da ferramenta gfix.

3. Segurana
Existem dois comandos SQL responsvel pelo direito de acesso a tabelas do
Banco de Dados: GRANT e REVOKE
GRANT - Este o comando responsvel para dizer o que o usurio e ou grupo
de usurios X podem ou no fazer na(s) tabela(s) em que o GRANT definiu para
estes.
REVOKE - O comando Revoke responsvel pelo processo contrrio do Grant.
Isto , REVOGAR o(s) direito(s) do(s) usurio(s).
Geralmente se usa o Revoke para todos os usurios e posteriormente usa-se o
Grand para comear a definir as regras de acesso. Isso impede que erros cometidos da
hora da criao dos usurios sejam prejudiciais ao banco.
Uma aplicao que necessita acesso ao banco de dados Firebird realiza a
conexo com o servidor onde o arquivo se encontra, logo o SGBD verifica as
permisses definidas para tal usurio, aps verificar as permisses o SGBD concede as
permisses, assim o servidor garante os acessos aos usurios de forma gerenciada, nas
verses 2.5 e anteriores o Firebird centraliza as informaes dos usurios em arquivos
separados, security.fdb e security2.fdb, na verso 3 do Firebird, o usurio poder definir
localmente o(s) usurio(s) diretamente no banco de dados, se assim desejar, ao criar um
usurio localmente em um banco de dados o mesmo no ter acesso aos demais bancos
no servidor, porm ainda mantido o gerenciamento centralizado dos usurios, que
facilita o gerenciamento do servidor, caso seja necessrio que um usurio tenha acesso a
diversos bancos no servidor
Na nova verso do SGBD tambm aguardado o recurso de criptografia tanto
na transmisso pela rede, quanto pelo armazenamento do banco de dados, fazendo com
que as informaes sejam gravadas de forma codificada, portanto somente quem tiver a
chave usada durante a criptografia ter acesso as informaes contidas no banco, porm
um desafio para esse tipo de segurana uma forma eficiente e simples para a gesto
das chaves de acesso, o fato do Firebird ser opensource tornando invivel a utilizao de
chaves hardcored no cdigo do servidor, pois todos teriam acesso ao cdigo, gerando
um esforo operacional desnecessrio.
de suma importncia que tenha um nvel de segurana no mnimo tolervel
para que no tenha inconsistncia nas informaes contidas no banco de dados,
necessrio que tenha alm da segurana lgica, atravs de tcnicas de hardening, e
tambm restringir o acesso fsico ao servidor de banco de dados.

3. Concluso
O Firebird vem ganhando espao na comunidade de desenvolvedores devido ao
fato de ser um servidor com um bom desempenho em banco de dados de apenas alguns
megabytes at a alguns gigabytes como mostrado anteriormente, fatores como
segurana e custo x benefcio so determinantes na escolha do SGBD.
Fica evidente que seu uso pode gerar grandes benefcios para seus usurios. Alm de
mlti-plataforma, o Firebird tambm possui vrias verses que atendem a maior parte
das necessidades de um sistema.
Por ter comandos baseados no SQL, a criao e o gerenciamento da base de
dados fica padronizada, o que nesse caso, facilita a manuteno dos dados por equipes
decentralizadas, o que hoje em dia uma necessidade.

Referencias
Cantu, Carlos H.(2009) Entendendo o lixo no BDhttp://www.firebase.com.br/fb/
artigo.php?id=2047, Junho.
IBSurgeon (2014) Detalhes sober o BD de 1.7 Terabyteshttp://www.firebase.com.br
/fb/artigo.php?id=2656, Junho.
Cantu, Carlos H.(2008) Principais recursos do Firebird 2.1 http://www.firebase.com.
br/fb/artigo.php?id=2001, Junho.
Cantu, Carlos H.(2009) Banco de dados de 1 Terabyte http://www.firebase.com.
br/fb/artigo.php?id=2100, Junho.
Cantu, Carlos H.(2011) Firebird 3 O que vem por a http://www.firebase.
com.br/fb/artigo.php?id=2376, Junho.