[MO410A]–Banco de Dados I ImageDatabase - Relatório 1 24 de Abril de 2006 Alunos: Cláudio Siqueira de Carvalho Nádia Puchalski Kozievitch Roteiro 1. 2. 3. 4. 5. Introdução Conceitos Básicos Descrição do Trabalho Realizado Metodologia Conclusão 1. Introdução Um sistema de gerência de banco de dados (SGBD) pode ser definido como sendo um pacote de sistemas que fornece funcionalidades da gerência de dados para a criação, recuperação, manipulção e manutenção de um banco de dados Tipos binários -> armazenamento de imagens Suporte a vários tipos de dados. Ex: numéricos, datas, cadeias e binários. Importante para a área de Sistemas de Informação Geográfica (GIS). Objetivo do projeto: Realização de um estudo comparativo de SGBDs no que diz respeito ao gerenciamento (inserção, remoção e realização de consultas) de imagens. 2. Conceitos Básicos MySQL MyISAM InnoDB PostgreSQL 2.1. MySQL Um dos SGBDs mais populares com mais de 4 milhões de instalações pelo mundo. Utiliza a linguagem SQL como interface. Portabilidade; Compatibilidade; Desempenho e estabilidade; Pouco exigente quanto a recursos de hardware; Facilidade de uso; Software Livre; Implementa tipos geométricos; Suporte a vários tipos de tabelas. 2.1.1. MyISAM Bom desempenho na leitura de dados Índices em árvores binárias balanceadas; Arquitetura simplificada. Desvantagens Não oferece mecanismos para controle de transação e mecanismos de integridade referencial; Mecanismo de lock (geral) por tabela. 2.1.2. InnoDB Desenvolvido pela InnoDBase e integrado ao MySQL a partir da versão 4.0. Vantagens: Integridade referencial (SET NULL, RESTRICT, etc); Ferramenta para backup on-line; Lock de registro; Níveis de isolamento; Armazenamento de dados em tablespaces. Exige mais memória e disco que o MyISAM. Apresenta mais lento em algumas situações. 2.1.2. InnoDB Tipo binário para armazenamento de qualquer tipo de dados Utilizado para imagens. BLOB (Binary Large Object) TINYBLOB: 8bits carac. e 1 de controle; BLOB: 1) com 16bits carac. e 2 de controle; MEDIUMBLOB: 1) com 24 bits de carac. e 3 de controle; LONGBLOB: 1) com 32 bits de carac. e 4 de controle. Preferência para uma tabela InnoDB exclusiva para imagens. 2.2. PostgreSQL Um dos SGBDs de código fonte aberto mais avançados. É gratuito. Consultas complexas; Chaves estrangeiras; Integridade transacional; Controle de concorrência multi-versão; Suporte ao modelo híbrido objeto-relacional; Suporte a tipos geométricos; Triggers; Views; Stored procedures. 2.2. PostgreSQL Dois tipos para armazenamento de imagens: oid e bytea. oid insere um na tabela. bytea utilizado objeto (imagem) e insere um identificador para armazenar cadeias binárias. 3. Descrição do Trabalho Realizado: Etapas Escolher os SGBDs a serem comparados; MySQL (Versão 14.12 Versão 5.0.19) PostgreSQL (Versão 8.1.2) Determinar computadores utilizados: M32_HP: 2G de RAM, arquitetura 32 bits M64_DUAL: 1G de RAM, arquitetura 64 bits 3. Descrição do Trabalho Realizado Aspectos do Escopo Inicial: Imagens utilizadas: 90 imagens de 50 MB A não utilização dos tipos geométricos do Mysql e PostgreSQL Tabela de imagens sem metadados A não utilização do modelo de dados do WebMaps 3. Descrição do Trabalho Realizado A instalação dos SGBD’s Arquiteturas 32 e 64 bits; Diferenças do PostgreSQL e MySQL no armazenamento físico. Geração dos scripts para criação e população do banco (PostgreSQL, MySQL InnoDB e MySQL MyISAM). 3. Descrição do Trabalho Realizado CREATE TABLE IMAGE( Date date not null, image oid not null, constraint "pk_image" primary key (Date) ); CREATE TABLE IMAGE_MYISAM( DATE date not null primary key, image longblob not null ) TYPE=MYISAM; CREATE TABLE IMAGE_INNODB( DATE date not null primary key, image longblob not null ) TYPE=INNODB; lo_import '.../mo410/imagens/30092001__NDVI.tif'; insert into imagem(data,imagem) values( '30/09/2001 00:00:00',:LASTOID); INSERT INTO IMAGE_MYISAM (DATE, IMAGE) VALUES(str_to_date('22/03/2001','%d/%m /%Y'), LOAD_FILE(".../mo410/imagens/22032001_NDVI .tif")); INSERT INTO IMAGE_MYINNODB(DATE, IMAGE) VALUES(str_to_date('22/03/2001','%d/%m /%Y'), LOAD_FILE(".../mo410/imagens/22032001_NDVI .tif")); 4. Metodologia: Etapas Realizadas 1) OS BANCOS DE DADOS POSTGRESQL x MYSQL 1.1) Verificar informações sobre os bancos e como funcionam com relação a imagens; 1.2) seus tipos, operações, possíveis extensões, funções especiais; 2) CONFIGURAÇÃO DE MÁQUINA 2.1) Verificar configuração da máquina utilizada (memória, processamento, quantas máquinas testar) 3) BANCO DE DADOS 3.1) Verificar instalação/configuração do MySQL/PostgreSQL; -verificar sua dificuldade de instalação; 3.2) Obter conjunto de imagens ex: conjunto de imagens de satélite de 1 mês 3.3) Verificar metadados e construir o modelo de dados; 3.4) Implementar modelo e carregar informações no banco. -Verificar banco de dados do Webmaps -Criar tabela no MySQL (InnoDB e MyISAM) e PostgreSQL 3.5) Verificar como fazer carga e exportação dos arquivos de imagens para o sistema 4. Metodologia: Etapas Futuras 3.6) Verificar o método para avaliar o desempenho: -utilizar benchmark (TPC) (a decidir) -utilizar alguma outra ferramenta (Jmeter http://jakarta.apache.org/jmeter/) (a decidir) -alguma outra ferramenta para tratar de imagens (a decidir) -medir somente o tempo de resposta (a decidir) 3.7) Estudar o método de avaliação de desempenho e sua interação com o sistema; 3.8) Criar script para operações escolhidas, gerando um trace. 3.9) Executar operações escolhidas 5 vezes nos 2 BD's 3.10) Analisar saídas de scripts, gerar médias e gráfico no gnu-plot 3.11) Analisar informações 3.12) Finalizar o relatório 4. Metodologia: Possibilidades de Pesquisa Integração com o WebMaps; Utilização de extensões (PostGIS, por ex.) Utilização dos tipos geométricos do PostgreSQL e MySQL Simulação do ambiente multi-usuário 5. Conclusão Foram escolhidos os SGBDs MySQL e PostgreSQL, gratuitos. Possuem suporte para o armazenamento de imagens. Os SGBDs foram instalados sem grandes complicações. Um escopo inicial foi definido. As decisões tomadas buscam reduzir o escopo do projeto e permitir que futuras extensões sejam agregadas. Gerados os scripts a próxima fase é a simulação e avaliação de resultados. PERGUNTAS?? Obrigado!