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

Post on 19-Apr-2015

110 views 0 download

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

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

O que é Interbase

Banco de dados comercial

O que é Interbase

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

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

O que é Firebird?

Baseado no Interbase 6.0 Código aberto

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.

Histórico: Início

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

Hoje

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

Recursos (1 de 3)

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

Recursos (2 de 3)

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

Recursos (3 de 3)

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

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)

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

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

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)

Equipe do Firebird

4 Administradores 56 Membros dos projetos 12 Desenvolvedores ativos

Banco de dados ativo

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

Computed Fields

Incluem uma fórmula em sua definição

Triggers

SQL extendido Ações BEFORE e AFTER

Views com triggers

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

Visões não atualizáveisUso de procedimentos

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

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

Filtros BLOB

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

programação

Stored procedures

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

Linguagem dos triggers e procedimentos

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

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

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

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

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

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;

Exemplos consultas(inserindo e procurando dados)

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

SQL> SELECT * FROM sales_catalog;

Conclusões

Ideal para banco de dados embutidos

Possui todas os recursos comuns Baixa complexidade

Perguntas?