[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!