Banco de Dados Espaciais - DECOM-UFOP

Propaganda
Seminário de Banco de Dados II
Banco de Dados
Espaciais
Alunos:
Bráulio Miranda Veloso
Vítor Mangaravite
Professor:
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] );
●
–
path ( (point, …, point) );
●
–
Aberto
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
–
●
O objeto contem o ponto?
–
●
Dado um ponto p ∈ Ed, encontre todos
os objetos o que sobrepõem p
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?
●
–
Está estritamente a direita?
●
–
SELECT circle '((5,0),1)' >> circle '((0,0),1)';
Não se estende acima?
●
–
SELECT circle '((0,0),1)' << circle '((5,0),1)';
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?
●
–
Está estritamente a direita?
●
–
SELECT circle '((5,0),1)' >> circle '((0,0),1)';
Não se estende acima?
●
–
SELECT circle '((0,0),1)' << circle '((5,0),1)';
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)
Download