Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

32
Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Transcript of Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Page 1: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Banco de Dados Firebird

Ivanildo José de Sousa Aquino Júnior(JSAJ)

Page 2: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Visão Geral

Oque é Interbase? O que é Firebird? Um pouco de história...

Page 3: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

O que é Interbase

Banco de dados comercial

Page 4: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

O que é Interbase

Fácil de administrar (instalar, manter, mover e modificar)

Pequeno (5mb, 2milhões de linhas de código, etc)

Page 5: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

O que é Firebird?

Baseado no Interbase 6.0 Código aberto

Page 6: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Um pouco de história

Firebird é beasado no código fonte do InterBase 6.0 que foi lançado como Open Source pela Borland em agosto de 2000.

A história do InterBase teve início em 1984, logo, no total são 20 anos de história de banco de dados relacional como experiêncio do Firebird.

Page 7: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Histórico: Início

Fazer o código funcionar Entender as convenções

Page 8: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Hoje

Adicionados novos recursos Remoção de bugs Migração para C++ Reorganização e Simplificação

Page 9: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Recursos (1 de 3)

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

Page 10: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Recursos (2 de 3)

Compressão de dados Localização Funções definidas pelos usuários Eventos Arrays Segurança baseada em regras

Page 11: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Recursos (3 de 3)

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

Page 12: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

v1.5: Características

100% compatível com a interface do Interbase

Nova extensão padrão para o banco de dados (.fdb)

Novo administrador de configuração de servidor (Firebird.conf substistitui IBConf)

Page 13: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

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…

Declaração de variáveis aninhadasDECLARE [VARIABLE] name <variable_type> [{'=' | DEFAULT} value];

Exception re-initiate semantics (ie. Throw) Suporte para blocos “BEGIN … END” vazios

Page 14: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

v1.5: Novos recursos SQL (1 de 2) Função com suporte para “CASE” Função com suporte para “COALESCE” Função com suporte para “NULLIF” “GROUP BY” suporta:

By Function,Sub-Query,By Column Alias, andBy ordinal (posição da coluna)

“ORDER BY” expressão arbitrária “SELECT First X” e “ORDER BY” suporta Sub-

Selects

Page 15: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

v1.5: Novos recursos SQL(2 de 2) RECREATE VIEW NULL Ordering, como parte do padrão 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 STATEMENTEXECUTE STATEMENT “…”;

“Boolean” alias to SmallInt “BIGINT” alias to Numeric( 18, 0)

Page 16: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Equipe do Firebird

4 Administradores 56 Membros dos projetos 12 Desenvolvedores ativos

Page 17: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Banco de dados ativo

Computed Fields Triggers Views com triggers Funções definas pelo usuário Filtros BLOB Stored procedures

Page 18: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Computed Fields

Incluem uma fórmula em sua definição

Page 19: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Triggers

SQL extendido Ações BEFORE e AFTER

Page 20: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Views com triggers

Visões atualizáveis(Ações BEFORE e AFTER dos triggers)

Visões não atualizáveisUso de procedimentos

Page 21: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Funções definidas pelo Usuário Bibliotecas escritas em linguagem

de programação Contexto de falta de conexão Retorna valores simples

Page 22: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Filtros BLOB

Blob type translation Compressão Criptografia EdiçãoCascadeEscritas em linguagem de

programação

Page 23: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Stored procedures

Encapsula mento de ações Construção de pseudo-tabelas Atomicidade

Page 24: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Linguagem dos triggers e procedimentos

IF / THEN / ELSEBEGIN / ENDWHILE / DOExceptionsFOR SELECT …SUSPEND

Page 25: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Motivos para usar firebird (1/4) DBA não requerido Alta performance nas aplicações Versioning Arquitetura SuperServer

Page 26: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Motivos para usar firebird (2/4) Sinalizadores de Eventos Funções definidas pelo usuário UDFs Binary Large Objects Arrays Multidimensionais Banco de Dados distribuídos

Page 27: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Motivos para usar firebird (3/4) Junção de múltiplos banco de dados Versioning Commit em duas fases Recuperação distribuída de commit

em duas fases Sistema de travamento otimista

Page 28: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Motivos para usar firebird (4/4) Flexibilidade de Plataforma Distribuição Livre Usuários de Peso

Page 29: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Exemplos consultas(adicionando usuários e regras)

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

Page 30: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Exemplos consultas(inserindo e procurando dados)

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

SQL> SELECT * FROM sales_catalog;

Page 31: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Conclusões

Ideal para banco de dados embutidos

Possui todas os recursos comuns Baixa complexidade

Page 32: Banco de Dados Firebird Ivanildo José de Sousa Aquino Júnior(JSAJ)

Perguntas?