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] );
● 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ígonosRios 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/functions-geometry.html)