Você está na página 1de 21

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA

Escola Técnica Estadual de Franco da Rocha


Curso Técnico em Informática

Interbase e
Firebird
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
Escola Técnica Estadual de Franco da Rocha
Curso Técnico em Informática

Jefferson n° 06
João n° 07
Judivan n°09
Luciana n° 11
Renan n°17
Rosemberg n° 23
Valdir n° 27
Washington n° 30

3° Informática Noturno

Trabalho referente à disciplina de


Tecnologia e Linguagens para
Banco de Dados sobre Interbase e
Firebird.

Professor Valter
Índice

1. O que é Interbase?................................................................................................4
2. SQL - Structured Query Language........................................................................5
3. Acesso Nativo........................................................................................................5
4. Segurança com Usuários.......................................................................................6
5. IBSecurityService...................................................................................................6
5.1. O usuário de SYSDBA....................................................................................7
6. IBLogService..........................................................................................................8
6.1. File | Server Login...........................................................................................8
6.2. Communications troubleshooting.................................................................10
6.2.1. Troubleshooting Conexões de Servidor Locais....................................10
6.2.2. Troubleshooting Conexões de Servidor Remoto..................................10
6.2.3. COMDIAG..............................................................................................11
6.3. File | Server Logout.......................................................................................11
7. IBBackupService..................................................................................................11
7.1. Tasks | Backup.............................................................................................11
7.2. Backup Source..............................................................................................12
7.3. Backup Destination.......................................................................................12
7.4. Backup options.............................................................................................12
7.4.1. Transportable Format............................................................................12
7.4.2. Back Up Metadata Only.........................................................................13
7.4.3. Disable Garbage Collection...................................................................13
7.4.4. Ignore Transactions in Limbo................................................................13
7.4.5. Ignore Checksums.................................................................................13
7.4.6. Verbose Output.....................................................................................13
7.4.7. Backing up a database from a remote server.......................................13
8. IBRestoreService.................................................................................................14
8.1. Tasks | Restore.............................................................................................14
8.2. Restore options.............................................................................................16
8.2.1. Replace Existing Database...................................................................16
8.2.2. Commit After Each Table......................................................................16
8.2.3. Restore Without Shadow.......................................................................16
8.2.4. Desactivate Indexes..............................................................................16
8.2.5. Do Not Restore Validity Conditions.......................................................17
8.2.6. Verbose Output.....................................................................................17
8.2.7. Changing the Database Page Size.......................................................17
8.2.8. Restoring a database to multiple files...................................................18
9. Firebird.................................................................................................................18
10. Características..................................................................................................19
10.1. Recursos de desenvolvimento (trigger, stored procedures, functions,
XML, Java e orientação a objetos)..........................................................................19
10.2. MGA..........................................................................................................19
10.3. Controle total de transações.....................................................................20
10.4. Backup On-line..........................................................................................20
10.5. Exigência de hardware..............................................................................20
10.6. Disponível para diversas plataformas de SO’s.........................................20
10.7. Licença......................................................................................................20
10.8. Conectividade............................................................................................20
Índice de Figuras

Figura 1: Caixa de diálogo Security..............................................................................6


Figura 2: Caixa de dialogo User Configuration.............................................................7
Figura 3: Caixa de diálogo Login..................................................................................9
Figura 4: Caixa de dialogo LOGOUT..........................................................................11
Figura 5: Caixa de dialogo Database Backup.............................................................12
Figura 6: Caixa de dialogo Remote Backup Source...................................................14
Figura 7: Caixa de dialogo Database Restore............................................................15
1. O que é Interbase?
O Interbase é um poderoso banco de dados cliente/servidor relacional que é
compatível com SQL-ANSI-92, e foi desenvolvido para ser um banco de dados
independente de plataformas e de sistemas operacionais.

Este banco de dados dispensa maiores estruturas dentro da empresa


(DBA/Preparação), onde basta instalar o software e utilizá-lo, sem a interferência
freqüente de profissionais especializados na manutenção de banco de dados de
produção.

Acompanhando isso tudo ele ainda dispensa o uso de super servidores,


usando pouco espaço em disco para sua instalação e utilizando pouca memória em
situações normais de uso. Por isso a plataforma necessária para a instalação e
utilização pode ser reduzida diminuindo consideravelmente os custos de projeto.

Seu desenvolvimento se iniciou em meados de 1985 por uma equipe de


engenheiros da DEC (Digital Equipament Corporation). Tendo como nome inicial de
Groton, esse produto veio sofrendo várias alterações até finalmente em 1986
receber o nome de Interbase iniciando na versão 2.0. Nesta época, a idéia era
produzir um SGBDR (Sistema Gerenciador de Banco de Dados Relacionais) que
oferecesse benefícios não encontrados em outros da época.

Ao longo do desenvolvimento, foram introduzidas muitas características,


dentre elas:

 Acesso nativo a driver JDBC

 Sombreamento do Banco de Dados

 Tratamento de Blob’s

 Commit Automático de Duas Fases

 Replicação

 Sistema de Eventos

Mas então se o Interbase é tão bom, porque ele não é tão reconhecido como
o Oracle, o Microsoft SQL Server e outros servidores SQL?

Aparentemente o maior problema enfrentado pelo Interbase durante todos os


anos de sua existência foi a falta de marketing e divulgação por parte da
Borland/Inprise/ISC nos meios especializados (revistas, livros, etc.). No entanto, com
os últimos acontecimentos, essa imagem tende a mudar, pois agora o Interbase
5
Franco da Rocha
Novembro de 2007
passa a ter o seu código distribuído gratuitamente (Open Source) pela Internet
sendo que as licenças de utilização e distribuição são totalmente livres o que quer
dizer que o uso de base de dados padrão xBase ou Paradox (que são conhecidas e
ultrapassadas) já não serão usadas para diminuir o custo do cliente, podendo assim
contar com um banco de dados eficiente e seguro.

O Interbase é multiplataforma, ou seja, funciona em vários Sistemas


Operacionais.

2. SQL - Structured Query Language


Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos,
foram criadas várias linguagens destinadas a sua manipulação. O departamento de
pesquisa da IBM desenvolveu a SQL como forma de interface para o sistema de
Banco de Dados Relacional denominado SYSTEM R, no início dos anos 70. Em
1986 o American National Standard Institute (ANSI), publicou um padrão SQL e ela
se estabeleceu como linguagem padrão de Banco de Dados Relacional.

A SQL apresenta uma série de comandos que permitem a definição dos


dados, chamada de DDL (Data Definition Language – Linguagem de Definição de
Dados), composta entre outros pelo comando Create, que é destinado à criação do
Banco de Dados, das tabelas que o compõe, além das relações existentes entre as
tabelas.

Os comandos da série DML (Data Manipulation Language – Linguagem de


Manipulação de Dados), destinados à consultas, inserções, exclusões e alterações
em um ou mais registros de uma ou mais tabelas de maneira simultânea.

Características interessantes na linguagem SQL: capacidade de gerenciar


índices, manipulando dados de registro a registro, visualizações, organização lógica
dos dados, cancelamento de uma série de atualizações ou a gravação destas
(comandos Commit e Rollback).

3. Acesso Nativo
O acesso nativo ao Interbase é realizado através dos componentes Interbase
Expressa “IBX”.

Acesso nativo significa que existe sua aplicação e os componentes de acesso


nativo para acessar a base de dados. Neste meio, não existe nada
“BDE/ODBC/OLEDB” e ou outro driver. Isto é, é a sua aplicação e a base de dados
e nada mais é envolvido na conversação de dados.

6
Franco da Rocha
Novembro de 2007
4. Segurança com Usuários
A segurança dos usuários do Interbase fica guardada dentro do próprio banco
de dados, desta forma, o usuário SYSDBA (master) e outro usuário que tenha os
direitos de administrador, restringem o acesso e manutenção das tabelas do
Interbase.

5. IBSecurityService

Figura 1: Caixa de diálogo Security

Segurança do banco de dados é controlada pelo Security que contém


informações sobre todos os usuários autorizados para o servidor atual. Esta caixa
de diálogo permite ver estes usuários e operar as tarefas citadas no tópico anterior.

Quando um usuário tenta conectar a um banco de dados no servidor, são


verificados o nome e a senha no banco de dados de segurança. Se um registro
idêntico é achado, a conexão tem sucesso.

Tem a função de gerenciar os acessos ao seu Banco de Dados e também a


manutenção dos mesmos.

Escolha Tasks | User Security para abrir a caixa diálogo de segurança do


Interbase e executar as seguintes operações:

 Adicionar um usuário.

 Modificar a senha de usuário e informação opcional. Você não pode


modificar o nome de um usuário, mas se necessitar fazê-lo você tem que excluir o
7
Franco da Rocha
Novembro de 2007
nome do usuário e então adicioná-lo novamente selecionando o usuário cuja
configuração você quer modificar e então escolher a opção modifique o Usuário.

 Para excluir um usuário, selecione o nome do usuário que você quer


remover e escolher a opção apague. Uma caixa de diálogo lhe pedirá que confirme a
ação. Só o usuário SYSDBA é autorizado para as tarefas citadas.

5.1. O usuário de SYSDBA


Todo servidor tem um usuário de SYSDBA, sendo a senha masterkey.

Inicialmente, SYSDBA é o único usuário autorizado em um servidor; o


SYSDBA tem que autorizar todos os outros usuários no servidor. SYSDBA é um
usuário especial que se sobrepõe à segurança do Servidor, e executa tarefas
especiais como paralisação do banco de dados.

Só o usuário de SYSDBA pode atualizar o banco de dados de segurança para


adicionar usuários novos, apagar os usuários, ou modificar configurações de
usuário.

O SYSDBA pode autorizar um novo usuário nomeando um usuário e uma


senha no banco de dados de segurança. É recomendado mudar a senha o mais
rápido possível para SYSDBA. Caso contrário, a conta SYSDBA não será segura já
que é de domínio público.

Figura 2: Caixa de dialogo User Configuration

Esta caixa de diálogo permite ao SYSDBA adicionar um usuário novo para o


Interbase, modificar as senhas de usuários existentes, e informação opcional.
8
Franco da Rocha
Novembro de 2007
Nomes de usuário podem ter até 31 caracteres, não sendo case-sensitive. Senhas
são case-sensitive. Só os primeiros oito caracteres da senha são considerados.

Existem dois comandos SQL responsáveis pelo direito de


acesso a tabelas do Banco de Dados:

Grant: é o responsável para dizer o que o usuário ou o grupo de usuários “X”


podem ou não fazer nas tabelas que o grant definiu para estes.

Exemplo: Grant para dar direito a todos os usuários:

GRANT SELECT, INSERT, UPDATE, DELETE ON TAB_FORNECEDORES


TO PUBLIC;

Revoke: este comando é responsável pelo processo contrário do Grant. Isto


é, revogar os direitos dos usuários.

Exemplo: Revoke para todos os usuários, particularmente interessante para


começar a definir regras caso todos tenham acesso a tudo:

REVOKE SELECT, INSERT, UPDATE, DELETE ON


TAB_FORNECEDORES TO PUBLIC;

Existem dois componentes que controlam o acesso de usuários ao Banco de


Dados:

6. IBLogService
Este componente tem a função de lhe ajudar a criar seu próprio LOG do
Banco de Dados.

6.1. File | Server Login


Antes de executar alguma tarefa de banco de dados local ou remoto, você
deve se registrar em um servidor.

Se já tiver conectado a mais de um banco de dados, você pode trocar a


qualquer momento entre eles. Para tanto, escolha um nome de banco de dados
diferente na árvore de servidor ou use o combo.

9
Franco da Rocha
Novembro de 2007
Para problemas de login, veja Troubleshooting.

Figura 3: Caixa de diálogo Login

Para conectar a um servidor local ou remoto, você tem que usar a caixa de
dialogo Login.

 Escolha o tipo de servidor - local ou remoto - clicando em um dos


botões de rádio.

 Escolhendo um servidor remoto, você tem que entrar com o nome do


servidor remoto (a máquina que contem o servidor) no campo Servidor. Desejando
conectar a um servidor distante que tenha sido utilizado anteriormente,
simplesmente escolha na lista dropdown. Você também tem que escolher um
protocolo (método de conexão) para o servidor selecionado na lista de Protocolos de
rede. Se seu servidor é local, o Servidor e Protocolo de rede não são requeridos.

 Adicione o Nome de Usuário e a Senha, clicando em OK para encerrar


o diálogo e conectar ao servidor selecionado.

Após os procedimentos anteriores, um artigo novo aparece na árvore do


servidor (painel da esquerda), e o servidor exibe a versão do na área de informação
sumária (painel certo). Inicialmente, o único usuário autorizado de um servidor é
SYSDBA, com "masterkey" sendo a senha. Todos os outros usuários devem ser
adicionados pelo SYSDBA em Tasks | User Security

10
Franco da Rocha
Novembro de 2007
6.2. Communications troubleshooting
6.2.1. Troubleshooting Conexões de Servidor Locais

Se você encontra problemas de conexão para um Servidor Local, primeiro


consulte o arquivo READIB.TXT para ver se há qualquer restrição geral que afete
sua configuração.

Certifique-se que a aplicação está achando as DLLs do . Use Arquivo |


Procurar no Windows para localizar GDS.DLL e assegurar-se que elas sejam da
versão do seu Servidor.

Aplicações clientes procurarão diretórios para DLLs na seguinte ordem:

1. O diretório atual.

2. Diretório WINDOWS.

3. Diretório SYSTEM do WINDOWS.

4. O diretório que contém o executável para a tarefa que requer a DLL.

6.2.2. Troubleshooting Conexões de Servidor Remoto

Certifique-se que a aplicação cliente está usando as DLLs corretas.


Certifique-se de que nenhuma DLL permaneça carregada em memória. E também,
se a aplicação está encontrando as DLLs corretas. Use Arquivo | Procura... no
Windows Gerenciador de Arquivo para localizar REMOTE.DLL e GDS.DLL, a fim de
assegurar-se que elas são da versão de seu Servidor .

Aplicações clientes procurarão diretórios para DLLs na seguinte ordem:

1. O diretório atual.

2. Diretório WINDOWS

3. Diretório SYSTEM do WINDOWS.

4. O diretório que contém o executável para a tarefa que requer a DLL.

11
Franco da Rocha
Novembro de 2007
6.2.3. COMDIAG

Alternativamente, você pode clicar duas vezes em COMDIAG.EXE em


.../INTERBAS\BIN. Para mais informação sobre ComDiag e mais detalhes sobre
troubleshooting para cada protocolo, veja a ajuda de on-line de ComDiag:

6.3. File | Server Logout


Utilize esta opção para desligar/desativar o Servidor.

A caixa de dialogo exibida abaixo, é apresentada, permitindo a confirmação


ou não da operação.

Figura 4: Caixa de dialogo LOGOUT

7. IBBackupService
Este componente tem a função de realizar o backup de sua base de dados.
Você também pode especificar os parâmetros desse backup.

7.1. Tasks | Backup


Auxilia o processo de cópia de um banco de dados para um arquivo em um
disco rígido ou outra mídia de armazenamento. Para proteger um banco de dados,
caso haja falha em disco ou outra perda de dados potencial, deve-se copiar o banco
de dados regularmente. Para segurança adicional, é recomendado armazenar a
cópia em uma localização física diferente do servidor de banco de dados de origem.

12
Franco da Rocha
Novembro de 2007
Figura 5: Caixa de dialogo Database Backup

Esta caixa de diálogo consiste em três áreas: Fonte (Backup Source), Destino
(Backup Destination), e Opções (Options). O nome de servidor atual é exibido na
área superior da caixa de dialogo.

7.2. Backup Source


Digite o nome e o caminho do diretório do banco de dados que você quer
copiar. Sendo um banco de dados servidor fora da máquina local, clique no botão
Remote.

7.3. Backup Destination


Identifique nome e endereço para o arquivo backup. Arquivos de banco de
dados e arquivos backup podem ter qualquer nome com qualquer extensão legal em
seu sistema operacional. As extensões .gdb e .gbk são convenções do Interbase.

7.4. Backup options


7.4.1. Transportable Format

Ao copiar um banco de dados para outra máquina que não esteja na rede,
inspecione a opção de Formato Transportável. Esta opção escreve dados em um
formato genérico e o permite restabelecer a cópia em qualquer máquina que
contenha o Interbase.

13
Franco da Rocha
Novembro de 2007
7.4.2. Back Up Metadata Only

Copia um banco de dados vazio, ou seja, só seu metadata. Você também


pode extrair o metadata de um banco de dados utilizando o Windows, o que vai
produzir um arquivo de script (arquivo texto).

7.4.3. Disable Garbage Collection

A cópia é procedida sem que os dados excluídos e ainda presentes


fisicamente, sejam também copiados para o destino.

7.4.4. Ignore Transactions in Limbo

Esta opção gera o backup desconsiderando as transações ativas e não


encerradas.

Antes de copiar um banco de dados que contém transações pendentes,


execute o recuperador de transação.

7.4.5. Ignore Checksums

Um checksum é uma análise “página-por-página” de dados para verificar sua


integridade.

Erros de Checksum indicam corrupção de dados, e o Interbase lhe impede de


copiar um banco de dados se são descobertos checksums ruins. Examine os dados
restabelecendo o banco de dados para posteriormente copiá-lo.

7.4.6. Verbose Output

Habilita uma tela para exibição de texto standard para as mensagens de erro.

A janela de exibição de texto standard permite procurar texto específico,


copiá-lo para um arquivo, e imprimir o texto.

7.4.7. Backing up a database from a remote server

Permite copiar um banco de dados para um servidor diferente do servidor


atual.
14
Franco da Rocha
Novembro de 2007
- Coloque o banco de dados na máquina onde é freqüentemente usado.

- Feche o servidor original para manutenção enquanto o banco de dados


estiver em funcionamento.

Figura 6: Caixa de dialogo Remote Backup Source

Entre com nome do servidor remoto. Selecione o protocolo de rede desejado.


Entre com seu nome de usuário e a senha no servidor remoto, e clique em OK.
O protocolo de rede para uma cópia remota deve ser utilizável pela fonte e
servidores de objetivo. Só use NetBEUI se a fonte e servidores de objetivo seja o
Windows NT.

Use TCP/IP para copiar entre servidores heterogêneos quando ambos


tenham software TCP/IP

8. IBRestoreService
8.1. Tasks | Restore
Este componente tem a função de restaurar o backup feito pelo IBConsole ou
pelo componente de backup.

15
Franco da Rocha
Novembro de 2007
Figura 7: Caixa de dialogo Database Restore

Permite restabelecer um banco de dados de um arquivo previamente criado.


Esta caixa de diálogo consiste em três áreas: Restore Source, Restore Destination,
e Restore Options. O nome de servidor atual é exibido na esquerda superior da área
Restore Source.

O arquivo posterior do qual o banco de dados está sendo restabelecido é


chamado FONTE. O banco de dados que é restabelecido é chamado de DESTINO ou
OBJETIVO.

Para Restabelecer um banco de dados:

- Digite o nome do arquivo de fonte ou dispositivo no servidor atual (inclusive


caminho do diretório) em Restore Source.

- Quando Restabelecer um banco de dados para múltiplos arquivos clique no


botão Multi-file.

- Restabeleça um banco de dados para um servidor remoto (um servidor


diferente do servidor atual), clique no botão Remote.

- Entre com tamanho de página de banco de dados, em bytes (1024 através


default). Outros valores legais para bancos de dados são: 2048, 4096 e 8192.

Na área Restore Options, estabeleça as opções para iniciar o Restore.


Restauração de Multi-volume não é aceito. Quando o banco de dados reside em
mais de uma fita, execute gbak no console do servidor para executar a restauração.

16
Franco da Rocha
Novembro de 2007
8.2. Restore options

8.2.1. Replace Existing Database

Não será escrito um arquivo de banco de dados existente e sim haverá


substituição de um banco de dados existente. Se você tentar restaurar um banco de
dados existente, e esta opção não estiver selecionada, o processo restore falhará.

8.2.2. Commit After Each Table

Normalmente, o Gerenciador do Servidor restaura todo o metadata antes de


restaurar qualquer dado. Selecionando Commit After Each Table, o Gerenciador
restabelece o metadata e os dados junto a cada tabela, e procede o comit em uma
tabela de cada vez. Esta opção é útil quando você está com dificuldade em restaurar
um arquivo posterior; como por exemplo, se os dados estão corrompidos ou
inválidos, de acordo com restrições de integridade.

8.2.3. Restore Without Shadow

Restabelece um banco de dados sem restaurar sua sombra (Shadow), se:

Está restabelecendo um servidor que suporta Shadow para um tipo de


servidor que não suporta Shadow.

O banco de dados que você está restabelecendo é uma cópia de um banco


de dados existente que tem uma Shadow.

Você está migrando de um banco de dados Interbase para uma versão de


servidor que não suporta Shadow.

A Shadow terminaria em uma máquina que é indisponível ao banco de dados


(devido a uma falha na rede, por exemplo).

8.2.4. Desactivate Indexes

Normalmente, reconstrói índices quando um banco de dados é restabelecido.


Se o banco de dados contiver valores duplicados em um índice sem igual quando foi
copiado, a restauração falhará. Podem ser introduzidos valores duplicados em um
banco de dados, se foram feitos índices temporariamente inativos (por exemplo,
permitir inserção de muitos registros ou para restabelecer um índice).

Um índice único deve ser excluído e então deve ser criado novamente. Para
mais informação sobre ativar índices, veja Referência de SQL on-line. Desativar a
17
Franco da Rocha
Novembro de 2007
opção de Índices também é útil para tornar as operações on-line de banco de dados
mais rápidas. O acesso de dados estará mais lento até que os índices sejam
reconstruídos, mas pelo menos o banco de dados estará disponível. Depois que o
banco de dados for restabelecido, os usuários podem ter acesso ao banco de dados
enquanto você reativa os índices.

8.2.5. Do Not Restore Validity Conditions

Habilitando esta opção, caso já exista dados consolidados, estes dados não
estarão sujeitos às restrições do conjunto de restrições que estão sendo
restaurados. Mantendo esta opção desabilitada, tentando restabelecer o banco de
dados, uma mensagem de erro ocorrerá quando certo dado não cumprir certa
restrição. Precaução: sempre faça uma cópia de metadata antes.

Restabelecer um banco de dados que contém dados nulos, Do Not Restore


Validity Conditions. Esta opção apaga a constraint de validação do metadata.
Depois que o banco de dados seja restabelecido, mude os dados para tornar isto
válido de acordo com as constraints de integridade. Então adicione as constraints
que foram excluídas antes.

8.2.6. Verbose Output

Ativa o editor que servirá para acompanhar as mensagens de retorno das


operações que acusarem erro.

8.2.7. Changing the Database Page Size

Servidor de Workgroup copia página de banco de dados com tamanhos de


1024, 2048, 4096, e 8192 bytes. O default é 1024 bytes.

Mudar o tamanho da página pode melhorar desempenho por que:

Armazenar e acessar dados Blob é muito eficiente quando o Blob inteiro


resida em uma única página de banco de dados. Se uma aplicação armazena
muitos Blobs que excedem 1K e usar um tamanho de página maior, reduz o tempo
para ter acesso aos dados Blob.

O Blob tem melhor desempenho ao acessar strings quando acomodadas em


uma única página. Considere aumentar o tamanho de página, quando usar campos
Blob que armazenam grande massa de texto.

Se um banco de dados tem um índice grande e aumenta o tamanho de


página de banco de dados reduz o número de níveis na hierarquia de índice. Índices
trabalham mais rapidamente se a profundidade deles/delas é mantida a um mínimo.
18
Franco da Rocha
Novembro de 2007
Escolhas estatísticas de Banco de dados para exibir estatísticas de índice, e
considere aumentar o tamanho de página se profundidade de índice é maior que
dois em qualquer índice freqüentemente usado.

Se a maioria das transações envolve só algumas linhas de dados, um


tamanho de página menor pode ser apropriado, desde que menos necessidades de
dados sejam passadas de um lado para outro e menos memória é usada pelo
esconderijo de disco.

8.2.8. Restoring a database to multiple files

Você poderia querer restabelecer um banco de dados para múltiplos arquivos


distribuídos entre discos diferentes que provêem mais flexibilidade alocando
recursos de sistemas.

Restabelecer um banco de dados para banco de dados de arquivo múltiplo


clique no botão multiple files.

Especifique nomes de arquivos para restabelecer, digitando o nome de cada


arquivo para restore, digite também o número de páginas para estes arquivos campo
de texto abaixo. O número mínimo de páginas em um arquivo é 200. Escolha salvar,
e o nome de arquivo aparecerão à direita na Lista de Arquivo do lado da caixa de
diálogo.

9. Firebird
Também chamado de FirebirdSQL é um sistema gerenciador de banco de
dados. A fundação FirebirdSQL coordena a sua manutenção e desenvolvimento
sendo que os códigos fontes são disponibilizados sob o CVS da SourceForge.

Baseado no código do Interbase da Borland, quando da abertura de seu


código na versão 6.0 no ano de 2000, alguns programadores em associação,
assumiram o projeto de identificar e corrigir inúmeros bugs da versão original
surgindo então Firebird que se tornou um banco de dados com características
próprias, obtendo uma aceitação imediata no círculo de programadores. Seu maior
diferencial ainda se baseia na gratuidade, o banco é gratuito em todos os sentidos:
não há limitações de uso, seu suporte é amplamente discutido em listas na internet,
o que facilita enormemente a obtenção de ajuda técnica. O produto se mostrou
bastante seguro, suportando sistemas com dezenas de usuários simultâneos e base
de dados acima de dois gigas de tamanho.

Atualmente, o Firebird é distribuído em três formas: Super-Server, Classic e


Embedded. A versão Super-Server trabalha com um processo único no servidor,
criando linhas de execução (threads) para cada conexão. A versão Classic, indicada
para ambientes com suporte SMP (Symmetric Multiprocessing), dispara um

19
Franco da Rocha
Novembro de 2007
processo para cada conexão, necessitando de maior quantidade de memória RAM
no servidor. A versão Embedded (embutida), uma variante do Super-Server para
plataformas Windows, introduzida a partir do Firebird 1.5, é extremamente adequada
para a criação de versões de demonstração de softwares, uma vez que o servidor,
completamente funcional, é disponibilizado em uma única biblioteca dinâmica
(fbembed.dll). Naturalmente, a versão é limitada ao método de acesso local e
permite conexão com um único usuário. Uma aplicação “embutida” pode ser
executada concorrentemente na mesma máquina em que se encontra um servidor
Firebird normal. Contudo, os dois servidores não podem ter acesso a um banco de
dados ao mesmo tempo.

10. Características

10.1. Recursos de desenvolvimento (trigger, stored


procedures, functions, XML, Java e orientação a objetos)
Os recursos de desenvolvimento do Firebird são abundantes, incluindo
triggers, stored procedures e funções definidas pelo usuário (user defined functions).
Diversos drivers de conexão, pagos ou gratuitos, estão disponíveis para conexão
com bancos de dados Firebird. Especialmente com relação a Java, os drivers JDBC
JayBird, executados em Java 2 JRE 1.3.1, 1.4.x e 1.5.x, são distribuídos sem
qualquer custo.

Os triggers podem ser executados em duas fases relativas à execução da


alteração solicitada no estado dos dados: antes ou depois. Todos os gatilhos do
Firebird são disparados em nível de linha, um a cada vez que a imagem da linha se
altera. A versão 1.5 introduziu os chamados gatilhos universais, em que um gatilho
pode estar associado a vários eventos. Para tanto, foram criadas as variáveis
lógicas de contexto INSERTING, UPDATING e DELETING, que devem ser
introduzidas e convenientemente tratadas no código do trigger. Com isso, é possível
codificar um trigger.

10.2. MGA
Uma característica especial do Firebird é a Arquitetura de Múltiplas Gerações
(Multi-Generational Architecture), que permite ao banco manipular várias versões do
mesmo registro físico em qualquer momento, assim qualquer transação pode ter sua
própria versão sem se importar com outras transações concorrentes (leitura não
bloqueia escrita e escrita não bloqueia leitura).

20
Franco da Rocha
Novembro de 2007
10.3. Controle total de transações
Uma simples aplicação cliente pode ter múltiplas transações concorrentes. Os
diversos níveis de isolamento podem ser completamente controlados pelo cliente.

10.4. Backup On-line


Não há necessidade de parar a base de dados para efetuar backup. Um
processo de backup captura a imagem da base de dados no momento em que ele
inicia e assim usuários podem continuar trabalhando enquanto um backup roda.

10.5. Exigência de hardware


O Firebird roda em quase todo hardware. Mesmo hardwares “fracos” podem
fazer o trabalho, especialmente quando utilizados com Linux. Como qualquer
SGBDR, há os aspectos comuns que influenciam o desempenho, a qualidade física
da RAM, por exemplo.

10.6. Disponível para diversas plataformas de SO’s


Migrar de uma plataforma para a outra é indolor e possível a qualquer
momento: simplesmente faça um backup de dados de um SO usando o formato
transportável e então restaure - o em outro SO qualquer.

10.7. Licença
O Firebird é licenciado sob a IPL (Interbase Public License), é totalmente
gratuito para usar e distribuir, não é necessário entregar o código fonte de seu
sistema, independente de seu modelo de licenciamento. Se você modificar o núcleo
deste, entretanto, você deve liberar o acesso público ao código fonte de suas
modificações.

10.8. Conectividade
O Firebird suporta um grande número de métodos de conectividade,
incluindo: pacotes de componentes nativos para C/C++ e Delphi, ODBC, JDBC,
Driver PHP, Driver OLEDB, dbExpress, .net Data Provider e outros.

21
Franco da Rocha
Novembro de 2007

Você também pode gostar