seminário de banco de dados ii banco de dados espaciais · seminário de banco de dados ii banco...

Post on 29-Nov-2018

252 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

top related