Métodos de acesso espaciais e indexação espacial

Documentos relacionados
Métodos de acesso espaciais, indexação espacial e tuning de bancos de dados geográficos

Dados Espaciais e Indexação

Indexação de dados espaciais R-Tree. CCO229 Bancos de dados Espaciais e Biológicos Prof. Ricardo Rodrigues Ciferri Debora Marrach

Algoritmos e estruturas espaciais

Busca em Regiões Ortogonais

Acesso Sequencial Indexado

Universidade Federal de São Carlos - UFSCar Departamento de Computação - DC Programa de Pós-Graduação em Ciência da Computação - PPGCC

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Hashing convencional...

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

São Carlos, 01 de outubro 2010 THE R* - TREE : AN EFFICIENT AND ROBUST ACCESS METHOD FOR POINTS AND RECTANGLES+

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Árvores-B (Parte IV) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Ordem. Árvores-B (Parte IV) Número mínimo de chaves por página. Definição formal das Propriedades de árvores-b /30 1

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Seleção e Otimização de Fontes

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Introdução a Estruturas de Dados Espaciais - QuadTree

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

R+ -Tree THE R+-TREE: A DYNAMIC INDEX FOR MULTI-DIMENSIONAL OBJECTS

Banco de Dados Espaciais

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações

Sumário. Índices Ordenados: Nível Único. Índices Primários. Bancos de Dados Avançados Índices. Índices: Ordenados em nível único Multiníveis

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Dados espaciais Árvores R

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I

Algoritmos geométricos

Bases de Dados. Índices. Discos. transferência lenta. transferência rápida e em blocos (512B ~ 4KB) e aos bytes. memória.

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Interval Trees, Priority Search Trees, Segment Trees. João Comba. Pesquisas intervalares sobre segmentos de reta

11/8/2010. Tópicos. Organização e Indexação de Dados em Memória Secundária

Arquivos invertidos 39

Árvores B Partes I e II

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

4 Algoritmo de reconstrução de curvas

Modelo Relacional. Josino Rodrigues

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Sistemas de Informação Geográficos. Informação na Organização. O Valor da Informação. Sistemas de Informação Tradicionais. O Valor da Informação

B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

BANCO DE DADOS Índices em BD Árvores B+

ACH2025. Laboratório de Bases de Dados Aula 9. Indexação e Hashing Parte 2. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Explorando a Multidimensionalidade da Kd-Tree para Suporte a Temporalidade em Dados Espaciais Vetoriais do Tipo Ponto

Banco de Dados Geográficos

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Visualização de terrenos em GPU

Hashing externo. Graça Nunes. Fonte: Folk & Zoelick, File Structures

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr.

Visualização de terrenos em GPU

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Árvores Genéricas de Busca

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Edição Vetorial de Ponto, Linha e Polígono. Prof. Herondino

PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO

ESTRUTURAS DE DADOS ESPACIAIS

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Sumário. Definição do Plano de Execução

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

3 Plano de Execução de Consultas

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Árvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira

Trabalho Prático. Primeira Parte do Trabalho (Parte I): peso 40%

Árvores B. Prof. Flávio Humberto Cabral Nunes

SQL-99: Esquema de BD EMPRESA

Ambiente de Data Warehouse Para Imagens Médicas Baseado Em Similaridade

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

INE5408 Estruturas de Dados

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Sistemas de Banco de Dados

Métodos de Acesso Métrico

SUMÁRIO 1. APRESENTAÇÃO FUNCIONALIDADES COMUNS AOS USUÁRIOS... 3

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Estratégias de Particionamento de Blocos para o Grid File

Resolução de Problemas de Busca

Banco de Dados. Banco de Dados

Banco de dados Brasil

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

Transcrição:

Métodos de acesso espaciais e indexação espacial Clodoveu Davis Clodoveu Davis 1

Métodos de acesso Métodos de acesso são os procedimentos empregados pelo gerenciador de banco de dados com o objetivo de acelerar a localização e a recuperação de algum dado Clodoveu Davis 2

Métodos de acesso Em bancos de dados convencionais, existem diversos tipos de métodos de acesso O SGBD utiliza aquele método que parece ser o mais adequado para a solução de cada operação Otimização de consultas Clodoveu Davis 3

Métodos de acesso A escolha do método é feita com base em Características estruturais da tabela e de índices porventura existentes: otimização heurística Cálculos aproximados do custo computacional de processamento da consulta: otimização baseada em custos Clodoveu Davis 4

Métodos de acesso Em BD convencionais, a criação de índices é opcional, ficando a cargo do administrador do banco de dados Cada índice provê uma maneira rápida de buscar dados dentro de uma tabela Existem diferentes tipos de índices, cada qual adequado a um tipo de atributo ou situação Clodoveu Davis 5

Métodos de acesso Exemplo: árvore binária balanceada Fonte: Casanova et al 2005, fig 6.1 Clodoveu Davis 6

Métodos de acesso Exemplo: árvore B+ Clodoveu Davis 7

Métodos de acesso espaciais Os métodos tradicionais se aplicam a chaves alfabéticas ou numérica simples, unidimensionais Para recuperar dados espaciais, seria necessário ter métodos de acesso multidimensionais Clodoveu Davis 8

Métodos de acesso multidimensionais Ex: encontrar empregados nascidos entre 1950 e 1955 cujo salário está entre R$3000 e R$5000 mensais Equivale ao problema geométrico de encontrar um ponto em um retângulo Clodoveu Davis 9

Métodos de acesso espaciais Em BD espaciais, o SGBD precisa contar com métodos de acesso especificamente voltados para as características dos dados de representação Os métodos tradicionais são também usados, mas apenas sobre os dados alfanuméricos Clodoveu Davis 10

Métodos de acesso espaciais Métodos de acesso espaciais são estruturas de dados auxiliares, porém essenciais para o processamento de consultas e para a execução de procedimentos de análise espacial com eficiência Também são chamados de índices espaciais Ao contrário dos índices convencionais, os espaciais são de uso obrigatório, para que o desempenho seja minimamente aceitável em BDs de tamanho razoável Clodoveu Davis 11

Métodos de acesso espaciais Em geral, uma consulta envolve apenas uma pequena parcela do BD Percorrer todo o BD procurando pelos dados relevantes para a consulta é em geral muito ineficiente O método de acesso estabelece um plano de execução para a consulta Clodoveu Davis 12

Métodos de acesso espaciais O plano de execução realiza uma filtragem, para determinar um subconjunto dos objetos do BD que podem atender às especificações da consulta Essa filtragem precisa ser executada com muita rapidez, e portanto é realizada sobre uma aproximação da forma geométrica de cada objeto Clodoveu Davis 13

Clodoveu Davis 14

Processamento de consulta espacial Consulta Espacial 50 15 66 11 22 88 Índice espacial 5 13 72 99 BD Espacial Candidatos Processamento geométrico Resultado final Falsos candidatos Clodoveu Davis 15

Filtragem: Retângulo envolvente mínimo de um objeto Menor retângulo com lados paralelos aos eixos coordenados que contém totalmente o objeto Clodoveu Davis 16

Uso de índices espaciais Seleção de objetos para visualização Objetos contidos no retângulo do zoom Localização de objetos selecionados por apontamento Objetos cujas fronteiras contêm ou se aproximam do ponto indicado na tela Consultas topológicas Encontrar objetos relacionados topologicamente a um objeto espacial dado (contido em, contém, adjacente a, cruzando, etc.) Clodoveu Davis 17

Índices espaciais Tipos encontrados em SIG Sem indexação Grid file K-d tree Quad-tree Tiling R-tree Clodoveu Davis 18

SIG sem Indexação Espacial Sistemas baseados em CAD Organização seqüencial Baixo desempenho para arquivos grandes Sistemas manuais de indexação Mapa chave Diversos arquivos Clodoveu Davis 19

SIG sem indexação espacial Mapa chave Um arquivo seqüencial para cada folha de mapa Manutenção por conta do usuário Clodoveu Davis 20

Grid file Baseado em hashing Adequado para conjuntos de pontos 1 A Q X 2 S K 3 V O I 4 Z... n C N Clodoveu Davis 21

Grid file Hashing em duas dimensões, usando uma grade regular A escolha das dimensões dos elementos da grade é orientada pela aplicação Clodoveu Davis 22

Grid file Pesquisa: pontos a menos de M metros do ponto P Apenas os buckets em cinza são lidos (x1, y1) P M (x2, y2) Clodoveu Davis 23

K-d Tree Indexa chaves formadas por k atributos (geometricamente, dimensões) Cada nível da árvore corresponde a uma das dimensões As dimensões ocorrem ciclicamente pelos níveis da árvore Clodoveu Davis 24

K-d Tree Exemplo Duas dimensões: x e y Níveis pares indexam o x e níveis ímpares indexam o y Clodoveu Davis 25

K-d Tree Clodoveu Davis 26

K-d Tree Clodoveu Davis 27

K-d Tree Clodoveu Davis 28

K-d Tree Pesquisa na k-d tree, partindo de um retângulo de coordenadas dadas Verificar se o nó corrente encontra-se no intervalo, se for ele é incluído na saída Se o nível for par Se o x1 do retângulo for menor que o x do nó, caminhar pela sub-árvore à esquerda e desprezar o restante Se o x2 do retângulo for maior que o x do nó, caminhar pela sub-árvore à direita e desprezar o restante Se o nível for ímpar Idem, considerando y1, y2 e y do nó. Clodoveu Davis 29

K-d Tree Clodoveu Davis 30

K-d Tree Clodoveu Davis 31

Quad-tree Espécie de árvore em que cada nó possui sempre quatro folhas A cada nó corresponde uma região quadrada do espaço Os objetos são relacionados ao menor quadrado que contém seu retângulo envolvente Clodoveu Davis 32

Quad-tree A 1 B 1 2 3 4 C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 C1 C2 C3 C4 B1 B2 C5 C6 C7 C8 A1 C9 C10 C11 C12 B3 B4 C13 C14 C15 C16 Clodoveu Davis 33

Animação do funcionamento de quad-trees (PR-quadtree) http://njord.umiacs.umd.edu:1601/users/br abec/quadtree/points/pointquad.html Clodoveu Davis 34

Tiling Camada 0: toda a base de dados Camada 1: largura 10000 Camada 2: largura 5000 Camada 3: largura 1000 Tiles, ladrilhos, quadrados Dimensões fixas Tamanho adequado aos objetos geográficos Número fixo de quadrados Limites conhecidos dos quadrados Clodoveu Davis 35

Camada 0: toda a base de dados Camada 1: largura 10000 Camada 2: largura 5000 Camada 3: largura 1000 Clodoveu Davis 36

Clodoveu Davis 37

Clodoveu Davis 38

Clodoveu Davis 39

Clodoveu Davis 40

R-tree Indexa objetos pelo seu retângulo envolvente mínimo Pontos também podem ser indexados (retângulo envolvente nulo) Cada bloco de armazenamento pode conter um número variável de retângulos O aumento do número de objetos causa subdivisões nos blocos, e a redução provoca fusões de blocos Clodoveu Davis 41

R1 R2 R-tree R3 R4 R5 R6 Exemplo: que objetos contêm o ponto Q? A I E J B C D H F G R3 Q R1 R5 B I C D A H F G E J R2 R6 Clodoveu Davis 42 R4

Algoritmos da R-Tree Search Insert Delete Update Node splitting Exhaustive Quadratic Linear Clodoveu Davis 43

Search Encontrar todas as entradas cujo REM sobrepõe um retângulo de busca S, começando pelo nodo T S1. Se o nó T não é folha, verificar cada entrada E para determinar se E.ret sobrepõe S; caso positivo, chamar search recursivamente a partir de cada E.p i (filhos) S2. Se T é um nodo folha, verificar todas as entradas E para determinar se E.ret sobrepõe S; caso positivo, E vai para a saída Clodoveu Davis 44

Insert Inserir a entrada E a partir de T I1. Chamar ChooseLeaf para selecionar um nodo folha L no qual E vai ser posicionado I2. Se L tiver espaço para mais uma entrada, acomodar E; caso contrário, chamar SplitNode para obter L e LL, que conterão L e todas as entradas atuais I3. Chamar AdjustTree a partir de L, passando também LL se um split foi realizado I4. Se o split foi propagado até a raiz, causando seu particionamento, criar uma nova raiz Clodoveu Davis 45

ChooseLeaf CL1. Seja T o nodo raiz CL2. Se T for nodo folha, retornar T CL3. Caso contrário, seja F a entrada de T cujo retângulo precisaria ser menos expandido (largura ou altura) para acomodar E.ret; caso ocorra empate, resolver pela área do retângulo CL4. Faça T o nodo filho correspondente a F e faça uma chamada recursiva a ChooseLeaf Clodoveu Davis 46

AdjustTree Ascender da folha L até a raiz, ajustando os retângulos de cobertura e propagando os splits se necessário AT1. Inicialize, fazendo N = L; se L foi particionado anteriormente, inicializar também NN a partir de LL AT2. Se N for a raiz, termine AT3. Ajustar o retângulo de cobertura no nodo acima de N AT4. Se existe NN, criar uma nova entrada ENN, com um retângulo de cobertura adequado, e adicionar ENN no nodo acima de N se houver espaço; caso não haja, chamar SplitNode sobre P com NN, produzindo P e PP AT5. Faça N = P e NN = PPs se tiver ocorrido um split, e iterar em AT2 Clodoveu Davis 47

Delete Excluir o registro E da árvore D1. Chamar FindLeaf para encontrar o nodo folha L que contém E; se não for encontrado, terminar D2. Remover E de L D3. Chamar CondenseTree passando L D4. Se a raiz tiver apenas um filho após o ajuste, transformar esse filho na raiz Clodoveu Davis 48

FindLeaf Encontrar a entrada E a partir da raiz T FL1. Se T não for um nodo folha, verificar cada entrada F em T para determinar se F.ret contém E.ret; para cada entrada com resposta positiva, chamar FindLeaf recursivamente FL2. Se T for um nodo folha, verificar cada entrada para encontrar E; se E for encontrado, retornar T Clodoveu Davis 49

CondenseTree Dado um nodo do qual foi retirada uma entrada, eliminar o nodo se necessário e realocar suas entradas CT1. Inicialize, fazendo N = L, e criar Q = { } para ser o conjunto de nodos eliminados CT2. Se N for a raiz, pular para CT6; caso contrário, P é o pai de N e EN é a entrada de N em P CT3. Se N tiver menos de m entradas, deletar EN de P e adicionar N ao conjunto Q CT4. Se N não for eliminado, reajustar EN.ret para conter todas as entradas de N CT5. Fazer N = P e iterar a partir de CT2 CT6. Reinserir na árvore as entradas que restarem em Q; entradas provenientes de níveis superiores devem ficar mais altas na árvore, para Clodoveu equilibrá-la Davis na altura 50

SplitNode Para criar um novo nodo com capacidade para M entradas, é necessário dividir as M+1 entradas entre dois nodos A divisão deve ser feita de modo a minimizar a possibilidade de ambas as subárvores terem que ser verificadas no momento de uma consulta = minimizar a sobreposição entre os retângulos = minimizar a área total dos dois retângulos O mesmo critério é aplicado em ChooseLeaf Clodoveu Davis 51

Fonte: Guttman (1984) Clodoveu Davis 52

SplitNode: escolha exaustiva Analisar todas as combinações de agrupamentos de retângulos seria o ideal Porém, se considerarmos blocos de 1024 bytes, M pode chegar facilmente a 50 entradas, e portanto gerando 2 50-1 combinações, o que é inviável Clodoveu Davis 53

SplitNode: algoritmo quadrático Não garante a solução ótima Custo quadrático em M O algoritmo escolhe duas das M+1 entradas para ser os primeiros elementos (sementes) dos dois novos nodos Critério: maior área combinada do retângulo para cobrir a ambos A cada passo, calcula-se o acréscimo de área correspondente a cada entrada para cada um dos grupos A entrada que tiver a maior diferença no acréscimo de área será então associada ao grupo sobre o qual causou o menor impacto Clodoveu Davis 54

SplitNode: algoritmo linear A diferença para o quadrático está no processo de escolha das sementes Ao longo de cada dimensão, encontrar o retângulo que tem a maior coordenada inferior, e o retângulo que tem a menor coordenada superior Ex.: em x, encontrar quem tem o maior x1 e o menor x2 Armazenar a distância de separação entre esses retângulos Ex: diferença entre o menor x2 e o maior x1 Normalizar usando como denominador a largura total segundo a dimensão Escolher as entradas com a maior separação dentre as duas dimensões Clodoveu Davis 55

Clodoveu Davis 56

R-tree Existem diversas variações na literatura R + -Tree R*-Tree Hilbert R-Tree X-Tree... O mais usual é encontrar implementações da R-tree original nos produtos Clodoveu Davis 57

R + -Tree A R + -tree é um refinamento da R-tree em que não se permitem retângulos superpostos em nós que não sejam folhas A regra de não-superposição faz com que a árvore fique mais esparsa, e portanto menos eficiente no disco; algoritmos mais sofisticados de inserção e exclusão são necessários para garantir que a árvore fique pelo menos meio-cheia Obtém bons resultados para consultas baseadas em pontos e em retângulos, mas tem custo maior na inserção e exclusão Clodoveu Davis 58

R*-Tree Modifica a estratégia de divisão de nodos Introduz a idéia de reinserção de objetos na árvore em caso de overflow no nodo Os algoritmos de consulta e exclusão são os mesmos da R-Tree original Clodoveu Davis 59

Animação do funcionamento de R-trees http://gis.umb.no/gis/applets/rtree2/jdk1.1/ Visualização da árvore http://donar.umiacs.umd.edu/quadtree/ Vários tipos de índices espaciais http://research.att.com/~marioh/spatialinde x/ Biblioteca spatialindex e visualizador de R- Tree 3D Clodoveu Davis 60

Otimização de consultas espaciais Seleções com funções geográficas SELECT d.nome, d.populacao FROM cidade d, cidade c WHERE c.nome = Belo Horizonte AND ST_DISTANCE(c.geom, d.geom) < 50000 AND d.populacao > 50000 Junções com critério geográfico SELECT c.nome, a.nomeaerop FROM cidade c, aeroporto a WHERE a.pavimento = Asfalto AND ST_DISTANCE(c.geom, a.geom) < 50000 Clodoveu Davis 61

Seleção: plano de execução P11. Determine a posição de Belo Horizonte (p) P12. Determine o conjunto C de cidades a menos de 50 km da posição p P13. Determine o subconjunto C de C de cidades com mais de 50 mil habitantes Clodoveu Davis 62

Seleção: plano de execução canônico P11. Determine a posição de Belo Horizonte (p) Convencional: busca exaustiva pelo atributo nome ou uso de índice convencional, se houver P12. Determine o conjunto C de cidades a menos de 50 km da posição p Espacial: depende do processamento da função de distância; acelerado na presença de índice espacial na etapa de filtragem P13. Determine o subconjunto C de C de cidades com mais de 50 mil habitantes Convencional: busca exaustiva em C Clodoveu Davis 63

P12. Determine o conjunto C de cidades a menos de 50 km da posição p P121. Usando o índice espacial, determine as cidades que podem estar a menos de 50km de p, criando o conjunto I P122. Leia a geometria dos objetos de I P123. Verifique quais objetos de I estão de fato a menos de 50km de p Clodoveu Davis 64

Seleção: plano de execução alternativo P21. Determine a posição de Belo Horizonte (p) P12. Determine o conjunto C de cidades a com mais de 50 mil habitantes P13. Determine o subconjunto C de C de cidades a menos de 50 km da posição p Clodoveu Davis 65

Seleção: plano de execução alternativo P21. Determine a posição de Belo Horizonte (p) Idem ao anterior P22. Determine o conjunto C de cidades a com mais de 50 mil habitantes Eficiente se existir um índice sobre a população P23. Determine o subconjunto C de C de cidades a menos de 50 km da posição p Teste exaustivo sobre o resultado de P12; pode ser prejudicado se retornarem muitas cidades de P22 Clodoveu Davis 66

Seleção: outro plano de execução alternativo P31. Determine a posição de Belo Horizonte (p) P32. Determine o conjunto C de cidades a com mais de 50 mil habitantes P33. Determine o conjunto C de cidades a menos de 50 km da posição p P34. Determine a interseção de C e C Clodoveu Davis 67

Seleção: outro plano de execução alternativo P31. Determine a posição de Belo Horizonte (p) Idem aos anteriores P32. Determine o conjunto C de cidades a com mais de 50 mil habitantes Idem ao anterior P33. Determine o conjunto C de cidades a menos de 50 km da posição p Idem ao primeiro plano P34. Determine a interseção Clodoveu Davis de C e C 68

Junção: plano de execução P11. Determine o conjunto R, contendo nome n e localização l de cada aeroporto pavimentado Convencional P12. Inicialize uma lista de saída vazia P13. Para cada elemento (n, l) de R, faça P131. Determine o conjunto C de cidades que estão a menos de 50km de l, e acrescente a cidade à lista de saída Clodoveu Davis 69

Junção: plano de execução 2 P21. Determine o conjunto C, contendo nome n e localização l de cada cidade Convencional P22. Inicialize uma lista de saída vazia P23. Para cada elemento (n, l) de R, faça P231. Determine o conjunto A de aeroportos que estão a menos de 50km de l, e acrescente o aeroporto à lista de saída Clodoveu Davis 70

Junção: plano de execução 3 P31. Determine o conjunto A, contendo a localização l e nome n de cada aeroporto pavimentado P32. Determine o conjunto C de cidades, contendo localização cl e nome cn; P33. Determine o conjunto R de resultados contendo apenas pares (cn, an) quando a distância entre l e cl for menor que 50km Clodoveu Davis 71 Loops aninhados

Junção: um possível quarto plano de execução Ordenar os elementos de A e C pela coordenada x (uma única lista) Para o primeiro elemento da lista, verificar nos subsequentes quem está a uma distância inferior a 50km do primeiro, e é de classe diferente da dele Considere todos os elementos encontrados como processados, e retire-os da lista Retire o primeiro elemento da lista, e reinicie Clodoveu Davis 72

Leitura complementar Davis Jr., C. A. e Queiroz, G. R. Métodos de Acesso para Dados Espaciais. Capítulos 6 e 7 de Casanova, M. A., Câmara, G., Davis Jr., C. A., Vinhas, L., Queiroz, G. R. (editores) Bancos de Dados Geográficos. Ed. MundoGeo, 2005. Guttman, A. R-Trees: a dynamic index structure for spatial searching. ACM SIGMOD, 47-57, 1984. Elmasri, R. and Navathe, S. Fundamentals of Database Systems, 4th ed. Pearson, 2002. [métodos de acesso para BD convencionais] Clodoveu Davis 73