Estruturas De Dados Espaciais
Total Page:16
File Type:pdf, Size:1020Kb
ESTRUTURAS DE DADOS ESPACIAIS Universidade Federal de Ouro Preto – UFOP Instituto de Ciências Exatas e Biológicas – ICEB Departamento de Computação – DECOM Estrutura de Dados II Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 2 Dados Espaciais x Dados Escalares • Multidimensionais x Unidimensionais • Noção de Forma x pontos ou tuplas • Ordenação parcial x Ordenação total • Relações geométricas x Relações sobre grandeza • Frequentemente, os dois tipos são combinados em: • Sistemas de Informação Geográficos • Computação Gráfica Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 3 Espaço de dados • Qualquer tipo de dado supõe um espaço onde ele está imerso • Modelagem de dados requer que se escolha um espaço apropriado • Frequentemente, mais de uma opção é possível • Exemplo: Cidade • Espaço de cadeias de caracteres • Código numérico (ex. CEP) • Ponto do planisfério (Latitude e Longitude) • Conjunto de pontos (ex. delimitado por um polígono) • Cada espaço é mais conveniente para um ou outro tipo de processamento Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 4 Dimensão • Dados escalares (não espaciais) são modelados como pontos em um espaço unidimensional • Dados espaciais são modelados como pontos ou conjuntos de pontos em espaço multidimensional Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 5 Relações entre dado e espaço • Localização • Existe uma cidade chamada “São Paulo” ? o o • Existe uma cidade em 39 29’30” S, 65 50’20” W ? • Vizinhança • Qual a cidade com nome subsequente a “São Paulo”? • Qual a cidade mais próxima de São Paulo? • Noção de métrica • Extensão (Dados Espaciais) • Qual o perímetro de São Paulo? • Qual a área de São Paulo? Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 6 Uso de ordenação • Dados escalares • É possível estabelecer uma ordem total • Ordenação facilita operações de localização e vizinhança • Dados espaciais • É impossível estabelecer uma ordem total sem romper com relações de vizinhança • A imposição de uma ordem total é conhecida como linearização do espaço. • Exemplo: ordenar um conjunto de pontos lexicograficamente • Ordenação parcial, no entanto, pode facilitar diversas operações • Estruturas de dados espelham ordenação Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 7 Estruturas de dados para dados escalares • Visam essencialmente facilitar operações de localização e de vizinhança • Exemplos: • Tabelas organizadas por cálculo de endereço (Hash Tables) • Usadas em localização de dados • Podem ser baseadas em memória ou disco • Árvores binárias balanceadas • Localização de dados: O(log n) • Vizinhança: O(log n) • Primariamente baseadas em memória principal Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 8 Estruturas de dados para dados escalares • Árvores B e suas variantes • Localização de dados: O(log n) • Vizinhança: O(log n) • Otimizadas para utilização em memória secundária (disco) • Asseguram alta taxa de utilização (garantidamente > 50%) Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 9 Idéia geral de estruturas de dados espaciais • Precisam suportar grande número de operações • Não existe estrutura de dados espacial que garantidamente seja eficiente para atender todos os tipos de operação • Aplicações em bancos de dados espaciais: • Utiliza-se estruturas de dados gerais que têm eficiencia razoável no caso médio. Ex.: PMR-quadtrees, Grid files, R-trees e suas variantes • Aplicações em CAD, Computação gráfica: • Frequentemente estruturas de dados gerais dão bons resultados • Em casos especificos, estruturas de dados especializadas podem ser indicadas.: Ex.: Diagramas de Voronoi Universidade Federal de Ouro Preto - Estruturas de 10 Dados II - Estrutura de Dados Espaciais Bancos de Dados Espaciais • Um dos requisitos fundamentais para os sistemas de bancos de dados atuais e saber manipular dados espaciais: • SIG (Cartografia); • CAD (Computer-Aided Design); • Visão Computacional (Computer Vision); • Robótica; • Bancos tradicionais, em que um registro com k atributos corresponde a um ponto no espaço k-d; • Bancos de dados temporais, onde o tempo pode ser considerado uma dimensão a mais; • Bancos de dados científicos, com dados espaço-temporais. Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 11 Banco de Dados Espaciais • Necessidade de indexação dos dados espaciais de modo a reduzir o tempo de acesso aos mesmos • Métodos de indexação tradicionais não são indicados para dados espaciais • Hash: não atende a consultas de faixa (range queries) • B-Tree: trata apenas uma dimensão Universidade Federal de Ouro Preto - Estruturas de 12 Dados II - Estrutura de Dados Espaciais Como Processar este tipo de consulta de forma eficiente? Universidade Federal de Ouro Preto - Estruturas de 13 Dados II - Estrutura de Dados Espaciais Como Processar este tipo de consulta de forma eficiente? Para esses sistemas existe uma classe de métodos conhecidos como métodos de acesso multidimensionais. Universidade Federal de Ouro Preto - Estruturas de 14 Dados II - Estrutura de Dados Espaciais Consultas • Considere 2 tipos de consultas: • Consultas de pontos • Consultas de intervalo Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 15 De 1 para 2 dimensões • Consultas de pontos: recupera as tuplas com referência espacial localizada numa dada coordenada Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 16 De 1 para 2 dimensões • Consultas de intervalos: recupera todas as tuplas com referências espaciais dentro de uma dada faixa. A faixa normalmente é uma área retangular especificada pelas coordenadas de dois vértices opostos ou um círculo identificado pelo centro e raio. Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 17 De 1 para 2 dimensões • Dados espaciais são expressos no espaço Euclidiano • Por exemplo, considere a tabela a seguir Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 18 Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 19 De 1 para 2 dimensões • Exemplos de consultas • 1. (Não Espacial): recupere a localização de Trentham Gardens • 2. (consulta de ponto espacial): recupere qualquer local em (37, 43) • 3. (consulta de intervalo espacial): recupere qualquer local com vértices sudoeste e nordeste (20,20), 40,50) respectivamente Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 20 De 1 para 2 dimensões • Algoritmo linear para consulta de ponto 1. Open Potteries file 2. while existem registros a examinar do 3. Leia o próximo registro r 4. if r.East = 37 then 5. if r.North=43 then 6. Recupere o nome do local deste registro Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 21 De 1 para 2 dimensões • Algoritmo linear para consulta de intervalo 1. Open Potteries file 2. while existem registros a examinar do 3. Leia o próximo registro r 4. if r.East está na faixa [20,40] then 5. if r.North está na faixa [20,50] then 6. Recupere o nome do local deste registro Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 22 De 1 para 2 dimensões • Desempenho dos algoritmos lineares ficam ruins a medida que a tabela de consulta cresce • Precisamos indexar os dados. Usando um índice convencional de BD, poderíamos indexar as colunas East e North obtendo a tabela a seguir: Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 23 Índice East Site North Site 14 Newcastle Museum 00 Trentham Gardens 17 Westport Lake 23 Gladstone Pottery Museum 18 New Victoria Theater 25 Beswick Pottery 20 Trentham Gardens 36 Coalport Pottery 31 Waterworld 39 Minton Pottery 31 Royal Doulton Pottery 43 Spode pottery 36 Minton Pottery 44 Park Hall Country Park 37 Spode Pottery 55 New Victoria Theater 41 City Museum 58 Newcastle Museum 53 Ford Green Hall 62 City Museum 54 Coalport Pottery 65 Waterworld 66 Beswick Pottery 87 Royal Doulton Pottery 74 Gladstone Pottery 92 Westport Lake Museum 86 Park Hall Country Park 99 Ford Green Hall Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 24 De 1 para 2 dimensões • Consulta de ponto • podemos percorrer o índice east para localizar os locais que têm primeira coordenada 37. Daí vai-se aos dados para ver das tuplas localizadas quais que têm segunda coordenada igual a 43. (Spode Pottery) • Consulta de intervalo • pode-se fazer uma busca por faixa [20,40] no primeiro índice, que resulta numa lista de ponteiros para o arquivo de dados. Então, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se a segunda coordenada está na faixa [20,50]; caso positivo, a tupla é retornada ao resultado Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais 25 De 1 para 2 dimensões • Problemas com indexação convencional: • Apenas um índice é usado por vez. • Precisamos de índices multidimensionais que consigam tirar proveito do espaço, principalmente em consultas de intervalos. • As tuplas vão estar ordenadas • tuplas que estão próximas no espaço deverão estar próximas no índice Universidade Federal