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 Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 1 / 36
Visão geral 1 Introdução 2 Grid 3 BSP Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 2 / 36
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? Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 3 / 36
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; Bancos de dados temporais, onde considerado uma dimensão a mais; Bancos de dados cientícos, com dados espaço-temporais. Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 4 / 36
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; Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 5 / 36
Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 6 / 36
Á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 Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 7 / 36
Árvores(cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 8 / 36
Árvores (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 9 / 36
Árvores (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 10 / 36
Árvores (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 11 / 36
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. O grid é uma maneira de particionar objetos de forma que objetos vizinhos no espaço sejam armazenados no mesmo bucket Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 12 / 36
Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 13 / 36
Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 14 / 36
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 Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 15 / 36
Inserção Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 16 / 36
Inserção (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 17 / 36
Inserção (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 18 / 36
Remoção Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 19 / 36
Remoção(cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 20 / 36
Remoção(cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 21 / 36
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. Dados espaciais ocupam regiões do espaço (sua extensão), denidas por sua posição e limites A diferenciação de estruturas espaciais se dá principalmente pela forma como os índices de classicação são formulados: Exemplos de estruturas espaciais incluem as kd-trees e as BSP-trees Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 22 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 23 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 24 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 25 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 26 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 27 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 28 / 36
Apanhado geral Fixed-Grid (cont.) Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 29 / 36
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? Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 30 / 36
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? Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 31 / 36
Exemplo Considere um arquivo F como uma coleção de registros R = [a 1, a 2,..., a k ], onde a contém os valores dos atributos. a x = [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 Para este tipo de operação é necessária a utilização de estrutras espaciais. Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 32 / 36
BSP Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 33 / 36
BSP Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 34 / 36
Fim Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 35 / 36
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) Claudio Esperança Bruno, Fábio, Fernando, Hannon, Jandeilson, Marcos, Vinícius Grid/BSP Gandra. (UFOP) 9 de abril de 2013 36 / 36