Seminário de Banco de Dados II Banco de Dados Espaciais Alunos: Professor: Bráulio Miranda Veloso Vítor Mangaravite Guilherme Tavares de Assis
Sumário Introdução SGBDs Espaciais Aplicações Tipos de Dados Representação dos Dados Tipos de Consultas Espaciais Representação Interna dos Dados Aplicações SGBDs Espaciais
Introdução O que é um SGBD Espacial Sistema que gerencia, além dos dados convencionais, os dados espaciais (localização, forma e relações topológicas); Armazena e provê operações para a manipulação dos dados espaciais diretamente.
Introdução O que são dados espaciais Atributos espaciais: localização e representação de um objeto geométrico em um determinado sistema de referência; Relacionamento espacial: relacionamentos de vizinhança (topologia, distância e ordem) Podem ser agregados a mais informações não espaciais, que descreve qualitativamente ou quantitativamente a entidade espacial.
SGBDs Espaciais
Aplicações Antes dos SGBD Espacial
Aplicações Com SGBD Espacial
Tipos de Dados
Representação dos Dados Matricial Vetorial
Ponto Menor unidade possível para representar um objeto espacial Definição no PostgresSQL: point(double x, double y); ex.: point(23.4, -44.5).
Segmento de Reta Linha unida entre dois pontos. Definição no PostgresSQL: lseg(point, point); ex.: lseg(point '(-1,0)', point '(1,0)').
Caminho Sequência aberta ou fechada de linhas Definição no PostgresSQL: path ( [point,, point] ); Aberto path ( (point,, point) ); Fechado ex.: path( [(0,0), (0,1), (2,2), (3,2)] ).
Polígono Sequência fechada de linhas Definição no PostgresSQL: polygon ( (point,, point) ); ex.: point((0,0), (0,1), (2,2), (3,2), (0,0)).
Caixa Polígono retangular, definido por dois vértices opostos Definição no PostgresSQL: box ( point, point ); ex.: box( (0,0), (1,1) ).
Circulo Polígono circular, definido pelo ponto central e um raio Definição no PostgresSQL: circle ( < ( point, point ), r > ); ex.: circle( < ( 0, 0 ), 2 >) ).
Exemplo de Dados Espaciais Municípios como polígonos Rios como caminhos e Escolas como pontos
Tipos de Consultas Espaciais Consultas espaciais usando SQL: Relacionamentos espaciais: de distância; de ordem; Topológicos. Operações espaciais: área (area) comprimento (length) intersecção (intersection) união (union)
Tipos de Consultas Espaciais Exact Match Query Dado um objeto o com atributo espacial o.g Ed, encontre todos os objetos o que possuam as mesmas coordenadas que o, ou seja, que possuam a mesma extensão e localização no espaço EMQ (o, dataset) = { o o dataset o.g = o.g }
Tipos de Consultas Espaciais Partial Match Query Dado um objeto o com atributo espacial o.g Ed, encontre todos os objetos o que possuam, em uma dada dimensão, a mesma extensão e localização no espaço que o
Tipos de Consultas Espaciais Point Query Dado um ponto p Ed, encontre todos os objetos o que sobrepõem p O objeto contem o ponto? SELECT circle '((0,0),2)' @> point '(3,3)'; O ponto está no objeto? SELECT point '(1,1)' <@ circle '((0,0),2)';
Tipos de Consultas Espaciais Range Query Intersection Range Query: dado um retângulo d-dimensional iso--oriented R Ed, encontre todos os objetos o que tenham pelo menos um ponto em comum com R SELECT lseg '((-1,0),(1,0))'?# box '((-2,-2), (2,2))';
Tipos de Consultas Espaciais Range Query Containment Range Query: dado um retângulo d-dimensional iso-oriented Ed, encontre todos os objetos contidos em R O objeto1 está dentro do objeto2? SELECT box '((0,0),(10,10))' @> box '((0,0),(2,2))';
Tipos de Consultas Espaciais Range Query Enclosure Range Query: dado um retângulo d--dimensional iso--oriented R Ed, encontre todos os objetos que o englobam R O objeto2 está dentro do objeto1? SELECT box '((0,0),(10,10))' <@ box '((0,0),(2,2))';
Tipos de Consultas Espaciais Adjacency Query Dado um objeto o com atributo espacial o.g Ed, encontre todos os objetos o que são adjacentes a o Está horizontalmente alinhado? SELECT point '(1,0)'?- point '(0,0)'; Está verticalmente alinhado? SELECT point '(0,1)'? point '(0,0)';
Tipos de Consultas Espaciais Nearest Neighbor Query k-nearest Neighbor Query: dado um objeto o com atributo espacial o.g Ed, encontre os k objetos o mais próximos de o SELECT ps.p FROM points AS ps ORDER BY ps.p <-> p_analisado LIMIT k;
Tipos de Consultas Espaciais Direction Query Dado um objeto espacial o com atributo espacial o.g Ed, encontre todos os objetos o posicionados na direção s com relação ao objeto o Valores válidos para a direção s incluem: ao norte de, ao sul de, a leste de e a oeste de.
Tipos de Consultas Espaciais Direction Query Está estritamente a esquerda? SELECT circle '((0,0),1)' << circle '((5,0),1)'; Está estritamente a direita? SELECT circle '((5,0),1)' >> circle '((0,0),1)'; Não se estende acima? SELECT box '((0,0),(1,1))' &< box '((0,0), (2,2))'; Não se estende abaixo? SELECT box '((0,0),(3,3))' &> box '((0,0), (2,2))';
Tipos de Consultas Espaciais Direction Query Está estritamente a esquerda? SELECT circle '((0,0),1)' << circle '((5,0),1)'; Está estritamente a direita? SELECT circle '((5,0),1)' >> circle '((0,0),1)'; Não se estende acima? SELECT box '((0,0),(1,1))' &< box '((0,0), (2,2))'; Não se estende abaixo? SELECT box '((0,0),(3,3))' &> box '((0,0), (2,2))';
Tipos de Consultas Espaciais Distance Query Dado um objeto o com atributo espacial o.g Ed, encontre todos os objetos o cuja distância com relação ao o seja no máximo q SELECT cs.circle FROM objects AS cs WHERE cs.circle <-> circulo_analisado <= q;
Representação Interna dos Dados Árvores Balanceadas R-tree Quad-tree Grid
Representação Interna dos Dados Quad-tree Divisão de quadrantes até obter quadros com somente um ponto.
Aplicações SGBDs Espaciais SIG Sistema de Informação Geográfica; Serviços de Mapas na Web; Mineração de Dados / Registros Multidimensionais; Very-large-scale-integration (VLSI); CAD - Computer Aided Design (desenho auxiliado por computador); CAM-Computer Aided Manufacturing (Fabricação Assistida por Computador).
Aplicações SGBDs Espaciais
Aplicações SGBDs Espaciais
Bibliografia Marco Casanova, Gilberto Câmara, Clodoveu Davis, Lúbia Vinhas, Gilberto Ribeiro de Queiroz. Bancos de Dados Geográficos. MundoGEO, 2005. (disponível em http://www.dpi.inpe.br/gilberto/livro/bdados/capitulos.html) Ricardo Rodrigues Ciferri. Banco de Dados Espacias, 2010. Lúbia Vinhas. Banco de Dados Geográficos - 2013 The PostgresSQL Global Development Group. PostgreSQL: Documentation: 9.1: Geometric Functions and Operators, 2013. (http://www.postgresql.org/docs/9.1/static/functionsgeometry.html)