30
UNIVERSIDADE POTIGUAR ESCOLA DE ENGENHARIAS E CIÊNCIAS EXATAS CURSO DE SISTEMAS DE INFORMAÇÃO ANDERSON IGOR CÂMARA DE ARAÚJO LUÃ PAULO SILVA DE LIMA PRISCILLA DE ARAÚJO ROCHA FIREBIRD 1

FireBird Final

Embed Size (px)

Citation preview

Page 1: FireBird Final

UNIVERSIDADE POTIGUAR

ESCOLA DE ENGENHARIAS E CIÊNCIAS EXATAS

CURSO DE SISTEMAS DE INFORMAÇÃO

ANDERSON IGOR CÂMARA DE ARAÚJO

LUÃ PAULO SILVA DE LIMA

PRISCILLA DE ARAÚJO ROCHA

FIREBIRD

NATAL-RN

1

Page 2: FireBird Final

2011

2

Page 3: FireBird Final

SUMÁRIO

1. INTRODUÇÃO 42. CONCEITOS E DEFINIÇÕES 5

a. SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD.........................................5

b. STORED PROCEDURE........................................................................................................5

c. TRIGGERS..........................................................................................................................5

d. VIEW.................................................................................................................................6

e. GENERATIONS..................................................................................................................6

f. EXTERNAL FUNCTIONS.....................................................................................................7

g. DOMAINS.........................................................................................................................7

3. HISTÓRIA 9a. VERSÃO 1.0.......................................................................................................................9

b. VERSÃO 1.5.......................................................................................................................9

c. VERSÃO 2.0.....................................................................................................................10

d. LINGUAGEM PSQL..........................................................................................................10

e. FUTURO DO FIREBIRD.....................................................................................................10

f. TIPOS DE DADOS............................................................................................................11

g. EMPRESAS QUE UTILIZAM O FIREBIRD...........................................................................11

h. VERSÕES DE SERVIDOR...................................................................................................11

i. Classic.........................................................................................................................12

ii. Supersever..................................................................................................................12

iii. Embedded..................................................................................................................12

4. PRINCIPAIS CARACTERÍSTICAS 13a. FERRAMENTAS...............................................................................................................13

b. COMPONENTES..............................................................................................................14

5. PRINCIPAIS RECURSOS 16a. SISTEMA MULTI-GERENCIONAL......................................................................................16

b. REPLICAÇÕES..................................................................................................................16

c. SOMBREAMENTO...........................................................................................................16

d. SUPORTE A DIVERSOS PROTOCOLOS DE CONEXÃO.......................................................16

e. INSTALAÇÃO REDUZIDA..................................................................................................17

3

Page 4: FireBird Final

f. UDF.................................................................................................................................17

g. TAMANHO DO BANCO....................................................................................................17

h. BACKUPS ONLINE...........................................................................................................18

6. VANTAGENS 19a. SUPORTE........................................................................................................................19

b. PORTABILIDADE..............................................................................................................19

c. OPEN SOURCE................................................................................................................19

7. LIMITAÇÕES 21a. SEGURANÇA...................................................................................................................21

b. USUÁRIO SYSDBA...........................................................................................................21

c. CRIPTOGRAFIA................................................................................................................21

d. ATAQUE DE FORÇA BRUTA.............................................................................................22

e. NÚMERO MAXIMO DE CLIENTES OU CONEXÃO SIMULTÂNEAS.....................................22

f. INTERFACE PARA ADMINISTRADOR DO BANCO.............................................................22

8. CONCLUSÃO 23REFERENCIAS 24

4

Page 5: FireBird Final

1. INTRODUÇÃO

O banco de dados veio para otimizar, armazenar e recuperar os dados, foi

quando surgiu o Firebird para ser não só um banco de dados, e sim um gerenciador de

banco gratuito e open source. O Firebird é um dos maiores banco de dados gratuito e

mais seguros, tem sido um banco relacional e multigenreciavel, podendo ter várias

conexões em execução.

O trabalho foi proposto para obter um entendimento das funcionalidades do

Firebird e entender melhor sua historia de surgimentos, características, recursos e

limitações.

5

Page 6: FireBird Final

2. CONCEITOS E DEFINIÇÕES

a. SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Os SGBD’s são utilizados para como uma ponte entre os usuários e o banco de

dados físico de um computador. Ele proporciona segurança, pois todas as solicitações

de acesso ao banco de dados passam pelo SGBD. Sua função principal é aperfeiçoar a

utilização e a construção do banco de dados, sem deixar os detalhes de o hardware

aparecer para os usuários, ou seja, permitindo a eles apenas a visão de cliente.

O SGBD além de manter os dados, ele determina as formas como serão

armazenados os dados e como eles devem aparecer para os clientes. Eles podem ser

divididos em comerciais, como: Oracle, DB2, Interbase e SQL e os open sources, como:

MySQL, PostgreSQL, além do firebird que é o tema deste trabalho.

b. STORED PROCEDURE

São procedimentos selecionáveis que possuem uma ou mais SQL statements

para realizar cálculos e fazer transformações em determinadas linhas no lado servidor,

um tanto úteis quando se quer obter um determinado valor de uma tabela que seria

impossível obter numa instrução SELECT convencional. (MECENAS, 2006).

Exemplo:

CREATE PROCEDURE FU_ABS(WVAR DOUBLE PRECISION)RETURNS(R_ABS DOUBLE PRECISION)AS BEGINIF (:WVAR IS NOT NULL) THEN BEGINIF (:WVAR < 0.0000) THENR_ABS = :WVAR * -1;ELSER_ABS = WVAR;ENDSUSPENDEND

c. TRIGGERSQuando ocorre algum evento que esteja associado a uma tabela condicionado

a um INSERT, DELETE ou UPDATE um conjunto de comandos são executados

automaticamente, estes são chamados triggers. Veja abaixo um exemplo de uma

TRIGGER:

6

Page 7: FireBird Final

Exemplo:

CREATE TRIGGER TableView_Delete FOR TableView BEFORE DELETE AS BEGINDELETE FROM Table1WHERE ColA = OLD.ColA;DELETE FROM Table2WHERE ColA = OLD.ColA;END

d. VIEWSão tabelas virtuais, ou seja, não existem fisicamente por isso o nome de

visões. No intuito de facilitar a consulta é criada uma tabela que contém todos os

dados das outras três. Elas são criadas através de outras tabelas para se poder

consultar dados ilimitadamente. Assim é dado um Select na view e é consultado todos

dados das três tabelas que formam a view de acordo com a necessidade do usuário.

Exemplo de View:

Exemplo:

CREATE VIEW TableView ASSELECT Table1.ColA, Table1. ColB, Table2. ColCFROM Table1, Table2WHERE Table1.ColA = Table2.ColA

e. GENERATIONSJuntamente com triggers e stored procedures o generator é usado como um

contador de inteiros onde se pode incrementar ou decrementar este contador, serve

também para evitar chaves duplicadas em campos que correspondem a números

inteiros. O valor de um generator pode ser obtido usando a função GEN_ID. Exemplo

de um generator sendo incrementado:

Exemplo:

GEN_ID(Gen_Cliente_Codigo, 1)

Pode-se também atribuir o valor de um generator a um campo de uma tabela,

como esta no exemplo abaixo:

Exemplo:

CREATE TRIGGER TRIG_Cliente_Inclusao FOR Cliente BEFORE INSERT ASBEGINNEW.Codigo = GEN_ID(Gen_Cliente_Codigo,1)

7

Page 8: FireBird Final

END

Um generator também pode ter sua contagem reiniciada, veja o exemplo

abaixo:

Exemplo:

SET Gen_Cliente_Codigo TO 0.

Para se excluir um generator deve-se usar o seguinte comando:

Exemplo:

DROP GENERATOR NOME_DO_SEU_GENERATOR;

f. EXTERNAL FUNCTIONS

Uma função externa ou UDF como é mais conhecida consiste em construir a

função em DLL “Delphi, C, C++, VB”, e após isto, declarar a função no Firebird. Exemplo

abaixo:

Exemplo:

DECLARE EXTERNAL FUNCTION ABREVIAR_NOME CHAR(60) RETURNS CHAR(60) BYVALUE ENTRY_POINT “MINHAUDF” MODULE_NAME “MINHADLL.DLL”

Algumas funções externas são:

addDay - Retorna o primeiro argumento com o number dias

adicionados. Usar números negativos para subtrair.

addHour - Retorna o primeiro argumento com o number horas

adicionadas. Usar números negativos para subtrair.

addMillisecond - Retorna o primeiro argumento com

o number milissegundos acrescentou. Usar números negativos para subtrair.

g. DOMAINS

Como na linguagem da matemática o domínio no firebird também define um

bloco de valores para uma determinada situação. A utilização do domínio é essencial

para a organização do seu banco de dados, por exemplo: se um usuário tiver que

alterar a estrutura ou as características de um campo que está contido em várias

tabelas, ele terá que alterar tabela por tabela essas informações, mas se tiver sendo

usado um domínio ele irá alterar apenas o domínio e conseqüentemente todas as

8

Page 9: FireBird Final

tabelas terão suas informações atualizadas conforme o domínio. Criação de um

domínio:

Exemplos:

CREATE DOMAIN DATAHORA AS TIMESTAMP

Sem Domains:

CREATE TABLE Cliente( Codigo INTEGER NOT NULL, Nome VARCHAR(40) NOT NULL, Fone VARCHAR(20), Fax VARCHAR(20), Celular VARCHAR(20), Renda NUMERIC(9,2) DEFAULT 0 NOT NULL, CONSTRAINT PK_Cliente PRIMARY KEY(Codigo), CONSTRAINT CHK_Cliente_Codigo CHECK(Codigo > 0), CONSTRAINT CHK_Cliente_Renda CHECK(Renda >= 0));

Com Domains:

CREATE DOMAIN DM_ChavePrimaria INTEGER NOT NULL CHECK(VALUE > 0);CREATE DOMAIN DM_NomePessoa VARCHAR(40) NOT NULL;CREATE DOMAIN DM_Fone VARCHAR(20);CREATE DOMAIN DM_Renda NUMERIC(9,2) DEFAULT 0 NOT NULL CHECK(VALUE >= 0);

CREATE TABLE Cliente( Codigo DM_ChavePrimaria, Nome DM_NomePessoa, Fone DM_Fone, Fax DM_Fone, Celular DM_Fone, Renda DM_Renda, CONSTRAINT PK_Cliente PRIMARY KEY(Codigo));

9

Page 10: FireBird Final

3. HISTÓRIA

Inicialmente 1984, o Firebird se chamava InterBase, este foi desenvolvido por

Jim Starkey e Ann Harrison. Em 1991 a companhia na qual o InterBase nasceu foi

comprada pela Ashton Tate, sendo comprada posteriormente pela Borland. Esta

empresa se responsabilizou pelo desenvolvimento do InterBase até 1999. Foi quando

resolveu abrir o código, a abertura do código tinha como objetivo o interesse de

programadores em estudar e melhorar o código do produto da Borland que já se

encontrava na versão 6.0. Assim programadores do mundo inteiro se associaram,

identificando e corrigindo os erros da versão original, estes códigos melhorados

resultariam no Firebird. Em 2001 Borland criou uma nova versão do InterBase,

trazendo melhorias ao Firebird com recursos adicionais desenvolvidos por ela e

acrescentando as melhorias que tinham resultado no Firebird. Este SGBD possui

o código aberto e não possui licença dupla, fazendo com que o usuário possa utilizá-lo

em qualquer tipo de aplicação, seja ela comercial ou não, sem pagar nada por isso.

A tecnologia usada no Firebird tem mais de 20 anos, fazendo com que ele seja

um produto muito maduro e estável e sempre em evolução.

a. VERSÃO 1.0

A primeira versão do Firebird foi a open source na época do Interbase, onde foi

desenvolvido em C. Sendo totalmente livre para distribuição e sem limitações, os

custos eram mínimos. Onde garantia a transparência do projeto e a colaboração em

equipes de desenvolvimento.

b. VERSÃO 1.5

Essa versão foi quando começou a distanciar do Interbase, e foi desenvolvido

em C++ consolidando um único SGBD de conversão de linguagem, só que chegou um

ponto que essa versão foi se tornando maior, pois foram muitas implementações, e

sendo assim foi preciso um SGBD maior.

De uma versão para outra algumas mudanças ocorreram, onde as principais

foram nos nomes de arquivos de extensão de .gdb para .fbd. E nesse momento foi

desvinculando completamente o Firebird do Interbase.

10

Page 11: FireBird Final

Foram criadas duas versões nesse modulo, onde a Classic era utilizada em

servidores Windows e a Embedded em servidores completo Firebird e fosse composto

somente de arquivos. Assim era possível executar varias servidores simultaneamente

na mesma maquina.

c. VERSÃO 2.0

Em 2006 numa conferencia foi o lançamento desse modulo, onde tinha a

principal característica de ter o código mais robusto. Levando aos desenvolvedores e

gerenciadores de SGDB a tranqüilidade e a facilidade de utilização pois continuava

código aberto, mostrando que a equipe da Firebird não ficou parada no tempo, mais

sim com movimentação intensa para evoluir e melhorar o banco de dados e tornando

o mais confiável e um excelente performance.

d. LINGUAGEM PSQL

Linguagem nativa para stored procedures e trigger com grande procedimento

em sistemas de importante gerenciamento de banco de dados. Onde suas principais

características estão no suporte de variáveis, com exceção do Array e Blob, os blocos

de códigos terão que ser finalizados por END, onde poderá possibilitar exceções

dinâmicas podendo criar e mostrar mensagens no momento que o mesmo foi gerado.

Foi criado um comando chamado EXECUTE PROCEDURE, onde terá possibilidade de

chamar a stored procedures em triggers de SP. Onde as store procedures terá o mesmo

valor que uma view sendo utilizada em tabelas originadas de outras tabelas do banco

de dados.

e. FUTURO DO FIREBIRD

“O projeto Vulcan atingiu a meta de usabilidade geral, com algumas poucas pontas soltas, e desejamos juntar ambas as bases de código o mais cedo possível. Dessa junção resultará no Firebird 3.0 com total suporte a multiprocessamento simétrico (SMP), arquitetura unificada (sem mais nenhuma necessidade de compilações classic / superserver / embedded) e outros melhoramentos.” (IBPHOENIX, 2007)

11

Page 12: FireBird Final

f. TIPOS DE DADOS

No Firebird existem 3 tipos de dialetos que foram disponibilizados desde da

versão inicial do Interbase. A primeira é compatível com a Versão 1.0, o segundo

dialeto foi utilizado somente para testes de incompatibilidade entre os dialetos e por

fim o terceiro foi indicado somente ao desenvolvimento, sendo até hoje o mais atual

com novas características e suporte aos dados. E na definição de dialeto foi utilizado

outro tipo de dialeto que suportava caráter como:

Char e Varchar;

Date/ Time/ Timestamp;

Integer , Smallint e Bigint;

Float;

Double precision;

Numeric e Decimal;

Array;

Blob;

g. EMPRESAS QUE UTILIZAM O FIREBIRD

Com a tecnologia a mais de 20 anos no mercado, com segurança e performance

trabalhando juntos muitas empresas nacionais e internacionais utilizaram o Firebird.

Empresas essas que são bem conceituadas no mercado, onde temos o exemplos de

bancos como Caixa Econômica Federal e Banco do Brasil, faculdades, industrias,

comercio, folha, estoque e outros.

h. VERSÕES DE SERVIDORAo começar a desenvolver com Firebird, surge a necessidade de escolher qual

versão do servidor optar. O Firebird possui três versões distintas, Classic, SuperServer e Embedded. A versão Embedded é uma inovação e é utilizada em distribuições de programas em CD-ROM. No site Firebase foi divulgada uma pesquisa de utilização de versões, finalizada em setembro de 2005, em vários países (FIREBASE, 2007).

SuperServer 69%

Embedded 24%

Classic 5%

Indefinido 2%.

12

Page 13: FireBird Final

i. Classic

Versão com mais compatibilidade com a versão Interbase, onde cada conexão com cliente será disparado um processo, e assim cada processo será independente e não utilizará mais de 2MB da memória.

ii. Supersever

Trazendo um conceito novo, pois um processo irá gerenciará varias conexões

simultâneas, mais utilizado 115K consumo de memória.

iii. Embedded

A partir da versão 1.5, com acessos limitados permitindo conexão com um

único usuário, só poderá ser executada em uma máquina se a mesma estiver com a

versão completa do Firebird e com os dois servidores sem acesso ao mesmo tempo no

banco de dados. E terá controle de store procedure, trigger, e outros. Sendo possível a

criação de versões demonstração, sem qualquer mudança no código da aplicação.

13

Page 14: FireBird Final

4. PRINCIPAIS CARACTERÍSTICAS

a. FERRAMENTAS

Para administrar o banco de dados, o Firebird não possui ainda uma ferramenta

gráfica nativa. Juntamente com o servidor Firebird, é disponibilizado um conjunto de

ferramentas de linha de comando, como:

Fbmgr Interface Shell com o serviço do Super Server no ambiente Linux.

Instsvc Interface com o serviço Super Server em plataformas Windows para instalação, iniciação e desligamento do servidor.

Gbak Utilizado para gerar cópias de segurança e restaurar bancos de dados.

Gsec Ferramenta de manutenção de senhas e usuários.

Gfix Ferramenta para reconfigurar propriedades, fazer pequenos reparos e executar tarefas de limpeza no banco de dados.

Gstat Ferramenta para extração de relatórios estatísticos sobre índices e dados.

fb_lock_print Ferramenta para recuperação de estatísticas de bloqueio que o servidor Firebird mantém para controle das alterações feitas por múltiplas transações.

Isql Interactive SQL, incorpora ferramentas e técnicas para uso de SQL na manutenção de objetos dos bancos de dados, gerenciamento de transações, exibição de metadados e gerenciamento de scripts de definição de bancos de dados.

Além das ferramentas de linha de comando que acompanham o servidor, a

comunidade Firebird tem a sua disposição inúmeras interfaces gráficas, muitas delas

com acesso gratuito. Entre as mais conhecidas estão:

Database Workbench (comercial)

IBExpert (comercial)

IBOConsole (gratuita)

MDOConsole (gratuita)

EMS SQL Database Management Solutions (gratuita)

Uma lista completa de ferramentas gráficas disponíveis no mercado pode ser

obtida no site da IBPhoenix. A concorrência entre os fornecedores de ferramentas tem

sido outro fator interessante no trajeto de desenvolvimento do servidor Firebird.

14

Page 15: FireBird Final

b. COMPONENTES

O usuário do Firebird tem a seu dispor uma quantidade enorme de

componentes de acesso ao banco de dados, tanto na tecnologia de acesso direto

através da API do banco, como na de acesso através de uma camada intermediária,

entre a aplicação e a API do banco, tendo compatibilidade com diversas linguagens de

programação, como Java, Delphi, C, C++, Visual Basic, C#, entre outras.

IB Objects (IBO)

dbExpress

Interbase Express (IBX)

JDBC

Zeos

Mercury DataBase Objects (MDO)

SIBProvider (OLEDB)

Uma pesquisa realizada pela FireBase, maior comunidade brasileira sobre

Firebird, aponta os componentes de acesso mais utilizados pelos desenvolvedores

brasileiros:

15

Page 16: FireBird Final

5. PRINCIPAIS RECURSOS

a. SISTEMA MULTI-GERENCIONAL

Um dos recursos mais vantajosos e comentados do Firebird é o uso de um

sistema otimista de concorrência no acesso ao banco de dados. Na maioria dos SGBDs,

se tem um bloqueio de páginas inteiras, já no Firebird, se guarda várias versões dos

registros durante uma transação, mantendo dessa forma uma visão segura dos dados,

mesmo que alguma informação já tenha sido alterada após o início da transação.

b. REPLICAÇÕES

O Firebird não possui uma ferramenta nativa para replicação do banco de

dados, porém existem vários componentes de terceiros:

IBReplicator

ReplicadorBR

FBReplicator

c. SOMBREAMENTO

Para se precaver contra a perda de dados, ou corrupção do banco de dados em

caso de falha no disco rígido, na rede ou de um usuário que pode excluir

acidentalmente o banco de dados, o Firebird tem o recurso de sombreamento, que

pode recuperar o banco de dados nesses e em outros casos. Vantagens do

sombreamento:

Recuperação rápida

Necessita de pouca ou nenhuma manutenção

Não utiliza um processo separado

Alocação de disco rígido pode ser controlada

d. SUPORTE A DIVERSOS PROTOCOLOS DE CONEXÃO

Impossível imaginar, atualmente, empresas que não utilizam redes em seus

ambientes de trabalho, pois as redes de computadores estão no centro da competição

empresarial moderna. Partindo dessa ótica, um banco de dados que promete ser uma

ótima opção para o desenvolvimento de softwares cliente/servidor deve dar suporte

16

Page 17: FireBird Final

aos principais protocolos de conexão. O Firebird está neste contexto, dando suporte

aos seguintes protocolos:

Local

TCP / IP (Transmission Control Protocol / Internet Protocol)

NetBEUI (Net Bios Extended User Interface)

e. INSTALAÇÃO REDUZIDA

Outro recurso muito atraente no Firebird, principalmente do ponto de vista do

desenvolvedor de software, é o tamanho do instalador (menos de 5mb na versão

2.0.1.12855), que torna o seu envio em conjunto com a instalação do sistema

extremamente simples, mesmo que o sistema tenha que ser baixado de algum

servidor na internet. A instalação do cliente necessita de apenas 3 arquivos e fica com

menos de 1Mb, já a instalação completa do server fica em 13Mb.

f. UDF

O Firebird possui suporte a UDF’s, que podem ser criadas em qualquer

linguagem de programação que gere bibliotecas compartilhadas, conhecidas como

“dll” no Windows e “so” no Linux. Podem ser utilizadas em comandos SQL (com

select), ou em Stored Procedures e Triggers, aumentando o poder do banco de dados,

pois uma única biblioteca pode conter inúmeras funções (UDF s).

g. TAMANHO DO BANCO

O tamanho máximo de um arquivo de banco de dados Firebird, teoricamente é

de 32Tb. O número máximo de tabelas por banco de dados Firebird é 65.536, sendo

este o limite do Firebird, podendo ainda ser limitado pelo sistema operacional.

O Firebird é limitado a capacidade de processamento do sistema operacional,

podendo atingir a ordem de Terabytes e manusear essa quantidade de informação

com tranquilidade.

Um bom exemplo foi mostrado na Softool, onde o Avarda (ERP russo) estava rodando

com um servidor Firebird 2.0 Classic e um número médio de 100 conexões

simultâneas, acessando um banco de dados de 120GB com 700 milhões de registros.

17

Page 18: FireBird Final

Os arquivos de banco de dados crescem dinamicamente, conforme a

necessidade, não sendo necessário um planejamento minucioso do tamanho que o

banco de dados pode alcançar para pré-alocar esse espaço. Havendo espaço no HD, o

Firebird o utilizará automaticamente sempre que se fizer necessário. Índices,

procedures, triggers, enfim, todos os objetos do banco de dados ficam armazenados

em um único arquivo, com a extensão .fdb. Podemos ter, em teoria, bases com alguns

Terabytes de informação.

h. BACKUPS ONLINE

Para realizar backup no Firebird, não há necessidade de se parar o servidor,

pois um processo captura a imagem da base de dados no momento em que ele inicia.

Desta forma os usuários podem continuar realizando conexões normalmente com o

servidor, num processo ininterrupto, enquanto o backup é executado, com isso

podemos efetuar manutenções no banco de dados sem a necessidade de acesso

exclusivo.

18

Page 19: FireBird Final

6. VANTAGENS

a. SUPORTE

Um diferencial no uso do Firebird é a comunidade crescente que participa do

desenvolvimento do projeto, seja trabalhando no código fonte, ou sugerindo novas

implementações e relatando falhas e bugs. O Brasil possui uma das maiores

comunidades de Firebird no mundo, e tem vários especialistas no país.

b. PORTABILIDADE

Ao escolher um banco de dados, em muitos casos o sistema operacional em

que está baseado o servidor, já está definido. Por outro lado, o banco de dados deve

propiciar ao DBA uma transição para o maior número possível de sistemas

operacionais. Nesse contexto o Firebird dá garantias necessárias ao DBA, estando

disponível em diversos sistemas operacionais ao qual podemos destacar:

Windows

Linux

Solaris

Mac OS

Windows CE (Smartphones)

A portabilidade do banco de dados entre múltiplas plataformas o torna

também indicado para aplicações que operam com atualizações de bases off-line e que

tenham necessidade de integração centralizada.

c. OPEN SOURCE

O Firebird é baseado no conceito open source, visto que os sistemas que são

desenvolvidos com ele não precisam pagar qualquer quantia a Fundação que o

desenvolve, nem mesmo permitir que os usuários que adquirem a licença do sistema

possam vendê-lo, sem o seu consentimento.

Existem diversas soluções de armazenamento de dados disponíveis no

mercado, e as de código livre vêm ganhando destaque devido ao número cada vez

maior de recursos oferecidos.

19

Page 20: FireBird Final

7. LIMITAÇÕES

a. SEGURANÇA

A maior preocupação dos administradores de banco de dados, desde o

surgimento do ambiente de rede corporativa, é a segurança dos dados.

A questão da segurança em nível de banco de dados no Firebird, apesar das

mudanças realizadas na versão 2.0, ainda merece atenção redobrada por parte dos

desenvolvedores, para contornar certas limitações, visto que na época do surgimento

do Interbase muito pouco se falava em questões de segurança da informação.

O Firebird arquiva tudo que está relacionado à segurança, em um banco de

dados central, independente de quantos outros bancos de dados existam no

computador. Na versão 2.0 o arquivo se chama Security2.fdb.

b. USUÁRIO SYSDBA

Todos os servidores Firebird possuem um administrador de banco de dados

denominado SYSDBA, este usuário é imune às regras de segurança dos bancos de

dados. Sua senha, por default, é masterkey, ele é o único usuário, que pode alterar o

banco de dados de segurança. Uma medida de segurança indicada é mudar a senha,

pois a mesma é de conhecimento público. Apesar de vários avanços no Firebird 2.0,

principalmente na área de segurança, o projeto manteve o usuário SYSDBA com todos

os seus privilégios.

c. CRIPTOGRAFIA

A criptografia tem a finalidade de proteger a “mensagem” de pessoas não

autorizadas, pois mesmo que elas obtenham meios de acessá-la, não terão como

decodificá-la, pois não possuem a chave que a abre.

Em um banco de dados, é de suma importância que somente pessoas

autorizadas possam ter acesso ao arquivo de banco de dados físico, e nesse ponto o

Firebird, até a versão 2.0, disponibiliza essa segurança apenas nas senhas de usuários.

Sendo assim um dos pontos fracos do Firebird é não possuir dispositivo para

criptografar dados.

20

Page 21: FireBird Final

d. ATAQUE DE FORÇA BRUTA

No inicio do projeto Interbase, ataques de força bruta não eram considerados

um motivo de alerta, visto que o poder de processamento das máquinas era baixo,

mas atualmente com desktops de alguns Gigahertz, o risco é real.

O Firebird 2.0 inovou das demais versões, devido a preocupação com o

monitoramento do número de tentativas de conexão que um usuário ou IP tenta

estabelecer em um determinado espaço de tempo. Caso detecte que está em

andamento um ataque de força bruta, o Firebird passa a recusar os pedidos de

conexão desse usuário ou IP por alguns segundos.

e. NÚMERO MAXIMO DE CLIENTES OU CONEXÃO SIMULTÂNEAS

O Firebird, como outros SGBD’s, depende muito do sistema operacional

escolhido, e a limitação do número de conexões simultâneas está totalmente ligada ao

sistema operacional escolhido.

Na versão Classic é necessário para cada conexão iniciada, uma reserva de 2MB

de memória RAM, e se tivermos 250 conexões simultâneas, teremos um consumo de

500MB de memória, estando claramente limitado o número de conexões a

disponibilidade do hardware.

f. INTERFACE PARA ADMINISTRADOR DO BANCO

O Firebird ainda não possui ferramentas nativas para gerenciamento via

interfaces gráficas, possuindo apenas componentes de linha de comando, mas existe

um projeto bem difundido de interface gráfica, de código aberto, em andamento,

denominado FlameRobin, com versões para Windows, Mac OS, FreeBSD, Solaris e

Linux nas distribuições (Debian, Ubuntu, Mandriva) e que deverá fazer parte do pacote

de instalação do Firebird, suprindo essa necessidade.

Esta limitação é sanada naturalmente pelo desenvolvedor, pois existem

inúmeras ferramentas de terceiros, implementadas exclusivamente para o Firebird,

uma das ferramentas mais completas é o IBExpert, ao qual possui uma versão Free

(com algumas limitações) e uma versão shareware completa.

21

Page 22: FireBird Final

8. CONCLUSÃO

Talvez o maior fator limitante na adoção do Firebird [..] frente aos bancos

comerciais não seja a falta de um ou outro recurso, mas sim o medo que algumas

empresas ainda tem na adoção de um software livre. Felizmente, com a popularização

do Linux e de outros softwares abertos em grandes empresas e corporações, assim

como o investimento de gigantes como a IBM em alguns desses softwares, esse medo

tende a deixar de existir em um futuro próximo. (CANTU, 2004, p.22). Assim surgiu o

banco de dados open source, sendo utilizados por diversas empresas nacionais e até

internacionais.

Pela facilidade de configurar o Firebird está sendo o banco de grande

autonomia e com funcionalidades muito interessantes, não só para pequenas

empresas, mais sim para médias e grandes porte. E a cada dia buscando a melhoria das

suas ferramentas.

22

Page 23: FireBird Final

REFERENCIAS

ARAÚJO, Carlos Alberto Pedroso. Programação Cliente/Servidor com Firebird.Florianópolis: Visual Books, 2006.

CANTU, Carlos Henrique. Firebird Essencial. Rio de Janeiro: Editora CiênciaModerna Ltda, 2005.

CANTU, Carlos Henrique. Firebird 2.0 o banco de dados do novo milênio. Riode Janeiro: Editora Ciência Moderna Ltda, 2006.

MECENAS, Ivan. Firebird. SQL magazine, Rio de Janeiro, ano 3, n. 37, 2006

<http://www.devmedia.com.br/post-4838-3--Usando-Stored-Procedures-com-Firebird-e-InterBase.html> Acessado em 21.05.2011

<http://www.firebirdsql.org/refdocs/langrefupd15-udf.html> Acessado em 21.05.2011

<http://www.firebase.com.br/fb/polls.php?resultado=14> Acessado em: 25.05. 2011.

<http://www.ibphoenix.com/downloads/VulcanOverview.pdf>. Acessado em: 23i.05.2011.

23