Você está na página 1de 32

Banco de Dados Firebird

Ivanildo Jos de Sousa Aquino Jnior(JSAJ)

Viso Geral

Oque Interbase? O que Firebird? Um pouco de histria...

O que Interbase

Banco de dados comercial

O que Interbase

Fcil de administrar (instalar, manter, mover e modificar) Pequeno (5mb, 2milhes de linhas de cdigo, etc)

O que Firebird?

Baseado no Interbase 6.0 Cdigo aberto

Um pouco de histria

Firebird beasado no cdigo fonte do InterBase 6.0 que foi lanado como Open Source pela Borland em agosto de 2000. A histria do InterBase teve incio em 1984, logo, no total so 20 anos de histria de banco de dados relacional como experincio do Firebird.

Histrico: Incio

Fazer o cdigo funcionar Entender as convenes

Hoje

Adicionados novos recursos Remoo de bugs Migrao para C++ Reorganizao e Simplificao

Recursos (1 de 3)

SQL 89, SQL 92 e SQL99 Stored procedures Triggers Constraints Delimited Identifiers Index Compression

Recursos (2 de 3)

Compresso de dados Localizao Funes definidas pelos usurios Eventos Arrays Segurana baseada em regras

Recursos (3 de 3)

A.C.I.D Read-only database (cd-rom) Generetors Onlinebackup Character Sets

v1.5: Caractersticas

100% compatvel com a interface do Interbase Nova extenso padro para o banco de dados (.fdb) Novo administrador de configurao de servidor (Firebird.conf substistitui IBConf)

v1.5: Novos recursos Triggers e SP


Savepoints SAVEPOINT save_pointname; ROLLBACK [WORK] TO [SAVEPOINT] save_pointname; CREATE OR ALTER syntax Universal Triggers CREATE TRIGGER my_trigger FOR my_table BEFORE INSERT OR UPDATE Declarao de variveis aninhadas DECLARE [VARIABLE] name <variable_type> [{'=' | DEFAULT} value]; Exception re-initiate semantics (ie. Throw) Suporte para blocos BEGIN END vazios

v1.5: Novos recursos SQL (1 de 2)


Funo com suporte para CASE Funo com suporte para COALESCE Funo com suporte para NULLIF GROUP BY suporta: By Function, Sub-Query, By Column Alias, and By ordinal (posio da coluna) ORDER BY expresso arbitrria SELECT First X e ORDER BY suporta Sub-Selects

v1.5: Novos recursos SQL (2 de 2)


RECREATE VIEW NULL Ordering, como parte do padro SQL92 User-Defined Constraint index names Index names now based on either constraint name, or user defined name Explicit locking in SELECT statements SELECT FOR UPDATE WITH LOCK EXECUTE STATEMENT EXECUTE STATEMENT ; Boolean alias to SmallInt BIGINT alias to Numeric( 18, 0)

Equipe do Firebird

4 Administradores 56 Membros dos projetos 12 Desenvolvedores ativos

Banco de dados ativo


Computed Fields Triggers Views com triggers Funes definas pelo usurio Filtros BLOB Stored procedures

Computed Fields

Incluem uma frmula em sua definio

Triggers

SQL extendido Aes BEFORE e AFTER

Views com triggers


Vises atualizveis (Aes BEFORE e AFTER dos triggers) Vises no atualizveis Uso de procedimentos

Funes definidas pelo Usurio


Bibliotecas escritas em linguagem de programao Contexto de falta de conexo Retorna valores simples

Filtros BLOB
Blob type translation Compresso Criptografia Edio Cascade Escritas em linguagem de programao

Stored procedures

Encapsula mento de aes Construo de pseudo-tabelas Atomicidade

Linguagem dos triggers e procedimentos


IF / THEN / ELSE BEGIN / END WHILE / DO Exceptions FOR SELECT SUSPEND

Motivos para usar firebird (1/4)


DBA no requerido Alta performance nas aplicaes Versioning Arquitetura SuperServer

Motivos para usar firebird (2/4)


Sinalizadores de Eventos Funes definidas pelo usurio UDFs Binary Large Objects Arrays Multidimensionais Banco de Dados distribudos

Motivos para usar firebird (3/4)


Juno de mltiplos banco de dados Versioning Commit em duas fases Recuperao distribuda de commit em duas fases Sistema de travamento otimista

Motivos para usar firebird (4/4)


Flexibilidade de Plataforma Distribuio Livre Usurios de Peso

Exemplos consultas (adicionando usurios e regras)

SQL> GRANT SELECT, UPDATE, INSERT, DELETE ON sales_catalog TO administrator; SQL> GRANT administrator TO TestAdmin; SQL> quit;

Exemplos consultas (inserindo e procurando dados)


SQL> INSERT INTO sales_catalog VALUES('001', 'Aluminum Wok', 'Chinese wok');

SQL> SELECT * FROM sales_catalog;

Concluses

Ideal para banco de dados embutidos Possui todas os recursos comuns Baixa complexidade

Perguntas?

Você também pode gostar