Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I José Alberto F. Rodrigues Filho [email protected] Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird É a primeira geração, descendente do código da Open Edition do Interbase 6.0 da Borland, lançada em julho de 2000 sob a Interbase Public License (IPL). “É um sistema gerenciador de banco de dados relacional (SGBDR) SQL cliente/servidor compacto e poderoso que pode ser executado em uma diversidade de plataformas de sistemas operacionais servidores e clientes, incluindo Windows, Linux e diversas outras plataformas UNIX, tais como FreeBSD e Mac Os X. É um SGBDR de capacidade industrial que possui um alto nível de compatibilidade com os padrões SQL, ao mesmo tempo em que implementa alguns recursos poderosos de linguagem de programação.” Helen Borrie, 2006. http://www.dbfreemagazine.com.br – A escolha certa. Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Visão Geral dos Recursos http://www.firebase.com.br •SGBD Completo (Triggers, Stored Procedures, Integridade Referencial, etc.) •Cliente/Servidor •Gratuíto para qualquer uso •Código aberto •Multi-plataforma (Darwin, FreeBSD, HPUX, Linux, Sinixz, Sparc, Solaris, Win32, MacOS, AIX, WinCE 3.0(beta)) •Tecnologia amplamente testada •Diversos drivers de acesso (Nativo/API, Java, OLEDB, ODBC, dbExpress, .Net, etc.) Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Visão Geral dos Recursos http://www.firebase.com.br •Arquitetura Multigeracional (versioning) •Crash Recovery praticamente instantâneo •Suporte a domínios •Alocação de espaço dinâmica •Stored Procedures selecionáveis •UDFs (Funções Definidas pelo Usuário) •Múltiplos triggers para o mesmo evento •Commit em 2 fases (transações em mais de um bd) •Character Sets e collates (internacionalização) Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Limites http://www.firebirdsql.org – atualizado em 16.Jul.2007 Item Firebird 2.x Maximum size of database Practically unlimited using multiple database files (largest known database is over 980 GB) 32 TB using multiple files Maximum size of one database file Multiple terabytes on most platforms; limited by file systems (4 GB or 2 GB on some platforms) Same Maximum number of database files 64,535 Same Maximum number of tables 64,535 Same Maximum size of one table ~32 TB ~36 GB Piracicaba (SP) Inverno, 2007 Firebird 1.5.x Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Limites http://www.firebirdsql.org – atualizado em 16.Jul.2007 Item Firebird 2.x Firebird 1.5.x Maximum size of external table file 2 GB Same Maximum number of rows per table > 16 Billion (not been measured beyond this) ~4 Billion NOTE :: 1 Billion is 1024³ Maximum row size 65,536 bytes (64 KB) Maximum database page size 16 KB Same NOTE :: Page size (PAGE_SIZE) can be 1024, 2048, 4096, 8192 or 16384. Size 1024 is not recommended. Piracicaba (SP) Inverno, 2007 Same Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Limites http://www.firebirdsql.org – atualizado em 16.Jul.2007 Item Maximum number of columns per table Maximum number of indexes per table Maximum size (total width) of index key Maximum number of indexes per database Firebird 2.x Firebird 1.5.x Depends on data types used. (Example: 16,384 INTEGER (4-byte) values per row.) NOTE :: 8-byte ID is stored for each BLOB or ARRAY reference; size of BLOB or ARRAY data is not counted in row size. 65,535 Same 4,096 bytes when page size is 16 KB (limited to 1/4 of database page size) 252 bytes IMPORTANT :: Limit decreases for character columns when character set is multi-byte; non-binary collation further reduces limit. 4,398,046,511,104 Piracicaba (SP) Inverno, 2007 Same Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Versões do Servidor SuperServer: Um único processo do servidor Firebird utiliza multiplas threads para gerenciar as conexões. O cache das conexões é compartilhado entre elas. Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Versões do Servidor Classic: Cada conexão é tratada por um processo independente do servidor. O cache de cada conexão é independente. Exige maior quantidade de memória RAM. Pode prover melhor desempenho em servidores multi-processados. Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Versões do Servidor Embedded: É o extremo mínimo dos requisitos de escalabilidade. Disponível apenas para plataformas Windows, tem as funcionalidades de um SuperServer compilado em conjunto com um cliente, produzindo uma dll (fbembed.dll). Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Download e Instalação http://www.firebirdsql.org/index.php?op=files&id=engine_201 Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Configuração Arquivo de configuração do FireBird =>> firebird.conf Parâmetros importantes - DBFreeMagazine_012 Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Tipos de Dados CHAR / VARCHAR: Caracteres (limite 32.765 bytes) – VARCHAR não considera os espaços à direita DATE: Dialeto 1 = Data + Hora Dialeto 3 = Somente data TIMESTAMP = Data + Hora (só existe no dialeto 3) TIME = Hora (só existe no dialeto 3) INTEGER = Inteiros (32 bits) – faixa: -de 2.147.483.648 a 2.147.483.647 SMALLINT = Inteiro (16 bits) – faixa: 32.768 a 32.767 BIGINT = Inteiro (64 bits – Firebird 1.5) FLOAT = Ponto flutuante (32 bits) – faixa: 1.175 x 10–38 a 3.402 x 1038 DOUBLE PRECISION = “Float duplo” (64 bits) – faixa: 2.225 x 10–308 a 1.797 x 10308 Piracicaba (SP) Inverno, 2007 Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Firebird – Tipos de Dados NUMERIC/DECIMAL (p, s) = No dialeto 3, são armazenados internamente como inteiros, podendo ocupar de 16 até 64 bits. Exemplo: NUMERIC(10,3) ppppppp.sss p = precision (tamanho máximo de dígitos) s = scale (número de casas decimais) ARRAY = Conjunto de dados do mesmo tipo – não é possível criar arrays de blobs ou arrays BLOB = Qualquer tipo de informação. Subtipos: 0 – Dados binários 1 – Informação textual 2 – BLR – Binary Language Representation 3 – Lista de controle de acesso 4 – Não utilizado (reservado para uso futuro) 5 – Descrição codificada dos metadados de uma tabela 6 – Descrição de uma transação entre múltiplos bancos de dados que terminou de forma irregular -n – Tipo definido pelo usuário Piracicaba (SP) Inverno, 2007