320 likes | 438 Views
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)
E N D
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 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) • 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, and By 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 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 • 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ção Cascade Escritas 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 / ELSE BEGIN / END WHILE / DO Exceptions FOR 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