Estruturas de Dados Espaciais
Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Gandra.
UNIVERSIDADE FEDERAL DE OURO PRETO Prof. Guilherme Tavares
9 de abril de 2013
Visão geral
1 Introdução
2 Grid
Introdução
Existem várias estruturas para manipular uma coleção de dados identicados por uma única chave:
arquivos alocados sequencialmente árvores
hash
Como podemos realizar estas operações quando um registro é identicado por mais de uma chave?
Introdução (cont.)
Um dos requisitos fundamentais para os sistemas de bancos de dados atuais é saber manipular dados espaciais:
SIG (Cartograa);
CAD (Computer-Aided Design);
Visão Computacional (Computer Vision); Robótica;
Bancos tradicionais, em que um registro com k atributos correponde a um ponto no espaço k-d;
Exemplo
Considere um arquivo F Recuperando Informações do BD Recuperar as informações do aluno cujo número de matrícula é 1243547?
Forma de pesquisa: sequêncial.
1 Recuperando Informações do BD
2 Este método de pesquisa (sequencial) é linear: O(n), onde n representa
o número de linhas da tabela. Algumas Considerações Importantes
3 A tabela pode ser muito grande, inviabilizando mantermos todas as
suas entradas na memória principal;
4 No banco de dados (repositório propriamente dito) podemos ter
diversas tabelas com milhares de linhas cada;
5 O acesso à memória secundária (hard-disk) é muito mais custoso do
que à memória principal (RAM);
6 Geralmente, estamos interessado em consultar apenas uma parcela do
BD;
Árvores
São estruturas que permitem organizar uma coleção de dados de forma hierárquica.
Os elementos de uma árvore são conhecidos como nodos (ou nós). Existe um nodo chamado raíz, de onde deriva-se todos os outros. O grau de um nó é dado pelo número de sub-árvores deste nó. O grau máximo da árvore é o mesmo do nó com maior grau. Um nó sem sub-árvores é chamado de folha.
Árvores Binárias de Pesquisa (BST) Grau máximo de um nó: 2.
Árvores balanceadas mais comuns:
Red Black Tree, AVL (Adelson-Velskii e Landis), Splay Tree. Operações permitidas em O(log2 n):
Localizar um nó, dada um valor de chave; Inserir um nó, dado um valor de chave; Remover um nó, dado um valor de chave.
A forma mais comum, e mais largamente empregada pelos sistemas comerciais atuais, é a representação do índice através de uma árvore B+ .
Árvores (cont.)
Árvores (cont.)
Grid
Divide a superfície em uma série de células contíguas. É um tipo especial de hashing
Simétrica Adaptável
O termo usado para célula é bucket, que representa uma localização física onde as tuplas podem ser recuperadas.
Grid (cont.)
Grid - Pesquisa
Determinar o endereço da página através da escala de endereços, fazendo um acesso à disco
Com mais um acesso à disco é possível recuperar o bucket contendo o registro
Inserção (cont.)
Remoção
Remoção(cont.)
Apanhado geral Fixed-Grid
Grid
espaço dividido por uma grade ortogonal: possivelmente de espaçamento irregular mesma dimensão que os dados
mantida na memória principal
dados armazenados em buckets, (mantidos em memória secundária) Estruturas espaciais são estruturas criadas para organizar dados em regiões semânticas através de planos de corte.
Apanhado geral Fixed-Grid (cont.)
Apanhado geral Fixed-Grid (cont.)
Apanhado geral Fixed-Grid (cont.)
Apanhado geral Fixed-Grid (cont.)
Apanhado geral Fixed-Grid
Existem várias estruturas para manipular uma coleção de dados identicados por uma única chave:
Recuperando Informações do BD
Recuperar as informações do aluno cujo número de matrícula é 1000203?
Forma de pesquisa: sequêncial.
Este método de pesquisa (sequencial) é linear: O(n), onde n representa o número de linhas da tabela.
Apanhado geral Fixed-Grid
Existem várias estruturas para manipular uma coleção de dados identicados por uma única chave:
Recuperando Informações do BD
Recuperar as informações do aluno cujo número de matrícula é 1000203?
Forma de pesquisa: sequêncial.
Este método de pesquisa (sequencial) é linear: O(n), onde n representa o número de linhas da tabela.
arquivos alocados sequencialmente árvores
hash
Como podemos realizar estas operações quando um registro é identicado por mais de uma chave?
Exemplo
Considere um arquivo F como uma coleção de registros R = [a1,a2, ...,ak],
onde a contém os valores dos atributos. ax = [Doe, John, 1951, 123456789].
1 Registro completo
2 Doe, nascido em 1951 (pesquisa por uma chave parcial)
3 Todos os registros que possuem Doe como último nome
4 CPF
5 Todos nascidos entre 1940 e 1960
BSP
Fim
Refrências
J. NIEVERGELT, H. HINTERBERGER (1984)
The Grid File: An Adaptable, Symmetric Multikey File Structure
MINISTÉRIO DA CIÊNCIA E TECNOLOGIA INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS
Disponível em: http://www.dpi.inpe.br/ gribeiro/apresentacoes
Processamento Geométrico Bancos de Dados Espaciais Sistemas de Informações Geográcos (GIS)