FireBird Final

download

of 25

  • date post

    04-Jul-2015
  • Category

    Documents
  • view

    852
  • download

    2

Embed Size (px)

transcript

UNIVERSIDADE POTIGUAR ESCOLA DE ENGENHARIAS E CINCIAS EXATAS CURSO DE SISTEMAS DE INFORMAO

ANDERSON IGOR CMARA DE ARAJO LU PAULO SILVA DE LIMA PRISCILLA DE ARAJO ROCHA

FIREBIRD

NATAL-RN 20111

SUMRIO

2

1. INTRODUO O banco de dados veio para otimizar, armazenar e recuperar os dados, foi quando surgiu o Firebird para ser no 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 vrias conexes em execuo. O trabalho foi proposto para obter um entendimento das funcionalidades do Firebird e entender melhor sua historia de surgimentos, caractersticas, recursos e limitaes.

3

2. CONCEITOS E DEFINIES a. SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS SGBD Os SGBDs so utilizados para como uma ponte entre os usurios e o banco de dados fsico de um computador. Ele proporciona segurana, pois todas as solicitaes de acesso ao banco de dados passam pelo SGBD. Sua funo principal aperfeioar a utilizao e a construo do banco de dados, sem deixar os detalhes de o hardware aparecer para os usurios, ou seja, permitindo a eles apenas a viso de cliente. O SGBD alm de manter os dados, ele determina as formas como sero 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, alm do firebird que o tema deste trabalho.

b. STORED PROCEDURE So procedimentos selecionveis que possuem uma ou mais SQL statements para realizar clculos e fazer transformaes em determinadas linhas no lado servidor, um tanto teis quando se quer obter um determinado valor de uma tabela que seria impossvel obter numa instruo SELECT convencional. (MECENAS, 2006). Exemplo:CREATE PROCEDURE FU_ABS( WVAR DOUBLE PRECISION) RETURNS( R_ABS DOUBLE PRECISION) AS BEGIN IF (:WVAR IS NOT NULL) THEN BEGIN IF (:WVAR < 0.0000) THEN R_ABS = :WVAR * -1; ELSE R_ABS = WVAR; END 4

SUSPEND END

c. TRIGGERS Quando ocorre algum evento que esteja associado a uma tabela condicionado a um INSERT, DELETE ou UPDATE um conjunto de comandos so executados automaticamente, estes so chamados triggers. Veja abaixo um exemplo de uma TRIGGER: Exemplo:CREATE TRIGGER TableView_Delete FOR TableView BEFORE DELETE AS BEGIN DELETE FROM Table1 WHERE ColA = OLD.ColA; DELETE FROM Table2 WHERE ColA = OLD.ColA; END

d. VIEW So tabelas virtuais, ou seja, no existem fisicamente por isso o nome de vises. No intuito de facilitar a consulta criada uma tabela que contm todos os dados das outras trs. Elas so criadas atravs de outras tabelas para se poder consultar dados ilimitadamente. Assim dado um Select na view e consultado todos dados das trs tabelas que formam a view de acordo com a necessidade do usurio. Exemplo de View: Exemplo:CREATE VIEW TableView AS SELECT Table1.ColA, Table1. ColB, Table2. ColC FROM Table1, Table2 WHERE Table1.ColA = Table2.ColA

e. GENERATIONS Juntamente com triggers e stored procedures o generator usado como um contador de inteiros onde se pode incrementar ou decrementar este contador, serve tambm para evitar chaves duplicadas em campos que correspondem a nmeros inteiros. O valor5

de um generator pode ser obtido usando a funo GEN_ID. Exemplo de um generator sendo incrementado: Exemplo:GEN_ID(Gen_Cliente_Codigo, 1)

Pode-se tambm 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 AS BEGIN NEW.Codigo = GEN_ID(Gen_Cliente_Codigo,1) END

Um generator tambm 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 funo externa ou UDF como mais conhecida consiste em construir a funo em DLL Delphi, C, C++, VB, e aps isto, declarar a funo no Firebird. Exemplo abaixo: Exemplo:DECLARE EXTERNAL FUNCTION ABREVIAR_NOME CHAR(60) RETURNS CHAR(60) BY VALUE ENTRY_POINT MINHAUDF MODULE_NAME MINHADLL.DLL

Algumas funes externas so:

addDay

-

Retorna

o

primeiro nmeros

argumento negativos

com para

o number dias subtrair.

adicionados. Usar

6

addHour

-

Retorna

o

primeiro

argumento

com

o number horas adicionadas. Usar nmeros negativos para subtrair.

addMillisecond - Retorna o primeiro argumento com

o number milissegundos acrescentou. Usar nmeros negativos para subtrair.

g. DOMAINS

Como na linguagem da matemtica o domnio no firebird tambm define um bloco de valores para uma determinada situao. A utilizao do domnio essencial para a organizao do seu banco de dados, por exemplo: se um usurio tiver que alterar a estrutura ou as caractersticas de um campo que est contido em vrias tabelas, ele ter que alterar tabela por tabela essas informaes, mas se tiver sendo usado um domnio ele ir alterar apenas o domnio e conseqentemente Exemplos:CREATE DOMAIN DATAHORA AS TIMESTAMP

todas

as

tabelas

tero

suas

informaes

atualizadas conforme o domnio. Criao de um domnio:

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( 7

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

8

3. HISTRIA 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 cdigo, a abertura do cdigo tinha como objetivo o interesse de programadores em estudar e melhorar o cdigo do produto da Borland que j se encontrava na verso 6.0. Assim programadores do mundo inteiro se associaram, identificando e corrigindo os erros da verso original, estes cdigos melhorados resultariam no Firebird. Em 2001 Borland criou uma nova verso 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 cdigo aberto e no possui licena dupla, fazendo com que o usurio possa utiliz-lo em qualquer tipo de aplicao, seja ela comercial ou no, 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 estvel e sempre em evoluo.

a. VERSO 1.0 A primeira verso do Firebird foi a open source na poca do Interbase, onde foi desenvolvido em C. Sendo totalmente livre para distribuio e sem limitaes, os custos eram mnimos. Onde garantia a transparncia desenvolvimento. do projeto e a colaborao em equipes de

b. VERSO 1.59

Essa verso foi quando comeou a distanciar do Interbase, e foi desenvolvido em C++ consolidando um nico SGBD de converso de linguagem, s que chegou um ponto que essa verso foi se tornando maior, pois foram muitas implementaes, e sendo assim foi preciso um SGBD maior. De uma verso para outra algumas mudanas ocorreram, onde as principais foram nos nomes de arquivos de extenso de .gdb para .fbd. E nesse momento foi desvinculando completamente o Firebird do Interbase. Foram criadas duas verses 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 possvel executar varias servidores simultaneamente na mesma maquina.

c. VERSO 2.0 Em 2006 numa conferencia foi o lanamento desse modulo, onde tinha a principal caracterstica de ter o cdigo mais robusto. Levando aos desenvolvedores e gerenciadores de SGDB a tranqilidade e a facilidade de utilizao pois continuava cdigo aberto, mostrando que a equipe da Firebird no ficou parada no tempo, mais sim com movimentao intensa para evoluir e melhorar o banco de dados e tornando o mais confivel e um excelente performance.

d. LINGUAGEM PSQL Linguagem nativa para stored procedures e trigger com grande procedimento em sistemas de importante gerenciamento de banco10

de dados. Onde suas principais caractersticas esto no suporte de variveis, com exceo do Array e Blob, os blocos de cdigos tero que ser finalizados por END, onde poder possibilitar excees dinmicas 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 cdigo o mais cedo possvel. Dessa juno resultar no Firebird 3.0 com total suporte a multiprocessamento simtrico (SMP), arquitetura unificada (sem mais nenhuma necessidade de compilaes classic / superserver / embedded) e outros melhoramentos. (IBPHOENIX, 2007)

f. TI