Você está na página 1de 44

Curso: Ciências da Computação

Disciplina: Sistemas de Informações Geográficas

Banco de dados Espaciais –


Linguagem de Consulta Espacial
Caio Eduardo Falcão Matos
Depto. de Informática, UFMA
caioefalcao@nca.ufma.br
2018
Na Aula Passada!!

• Linguagem de Consulta
❑ Introdução
❑ SQL
o Características;
o Álgebra Relacional;

o Comandos;
o Componentes;
o Exemplos de Consultas

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 2


Agenda

• Estendendo SQL para Dados Espaciais:


❑ Linguagem de Consulta Espacial
❑ SQL para Dados Espaciais;

❑ Consultas Espaciais com SQL/OGIS

❑ Propriedades espaciais;

❑ Relações espaciais
❑ Exemplos de Consultas Espaciais

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 3


Estendendo SQL para Dados Espaciais

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 4


Estendendo SQL para Dados Espaciais

• Deficiência da Linguagem SQL:


❑ Embora sejam poderosas linguagens de processamento de consulta, o RA e o
SQL têm suas deficiências;

❑ Principal deficiência:
o Essas linguagens tradicionalmente forneciam apenas tipos de dados simples
(inteiros, datas e strings)

❑ SGBD Espaciais devem manipular tipos de dados complexos, como pontos,


linhas e polígonos.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 5


Estendendo SQL para Dados Espaciais

• Surgimento SQL3:
❑ SQL 3 permite tipos e operações definidas pelo usuário;

❑ “A principal exigência da SQL espacial é fornecer uma maior abstração de dados


espaciais, incorporando conceitos mais próximos de nossa percepção do espaço
[Egenhofer, 1994]”.

❑ Isso é feito incorporando o conceito orientado a objetos de Tipo Abstrato de


Dados (TAD) definidos pelo usuário.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 6


Estendendo SQL para Dados Espaciais

• Surgimento SQL3:
❑ Um TAD é um tipo definido pelo usuário e suas funções associadas;

❑ Por exemplo se temos parcelas de terra armazenadas como polígonos em um


banco de dados, então um TAD útil pode ser uma combinação do tipo polígono
e alguma função associada (método), digamos, adjacente.
o Método adjacente:
• Pode ser aplicada a parcelas de terra para determinar se elas compartilham um limite
comum;
❑ O termo abstrato (Abstract) é usado porque o usuário final não precisa
conhecer os detalhes de implementação das funções associadas;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 7


O padrão OGIS para estender o SQL

• OGIS:
❑ Consórcio OGIS foi formado pelos principais fornecedores de software para
formular um padrão amplo da indústria relacionado à interoperabilidade de
GIS;

❑ O modelo de dados espaciais do OGIS pode ser incorporado em uma variedade


de linguagens de programação, por exemplo, C, Java, SQL e assim por diante.

❑ Suportado pelas principais empresas, e.g. ESRI, Intergraph, Oracle, IBM,...

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 8


O padrão OGIS para estender o SQL

• OGIS:
❑ O OGIS é baseado em um modelo de dados de geometria:

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 9


O padrão OGIS para estender o SQL

• OGIS:

Geometry
• Classe base;
• Especifica um sistema de referência
espacial aplicável a todas as suas
subclasses;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 10


O padrão OGIS para estender o SQL

• OGIS:
Classes Derivadas
• As quatro subclasses principais derivadas
da superclasse GEOMETRY são Point, Curve
Surface e Geometry Collection;
• Associado a cada classe um conjunto de
operações que atua em instâncias das
classes.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 11


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ As operações especificadas no padrão OGIS se dividem em três categorias:
1. Operações Básicas;

2. Operações de Testes;

3. Operações Gerais;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 12


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ Operações Básicas;

o Aplicam-se a todos os tipos de dados de geometria;

o Por exemplo, SpatialReference retorna o sistema de coordenadas subjacente onde a


geometria do objeto foi definida.
• Exemplos de sistemas de referência comuns incluem o sistema de latitude e longitude
bem conhecido e o Universal Traversal Mercator (UTM) usado com frequência;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 13


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ Operações Básicas;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 14


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ Operações de Testes:

o Teste de operações para relações topológicas entre objetos espaciais.

o Por exemplo, a sobreposição testa se o interior de dois objetos tem uma interseção
não vazia do conjunto.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 15


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ Operações de Testes:

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 16


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ Operações Gerais:

o Operações gerais são para análise espacial.

o Por exemplo, a distância retorna a menor distância entre dois objetos espaciais.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 17


O padrão OGIS para estender o SQL

• OGIS: Operações
❑ Operações Gerais:

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 18


Consultas Espaciais

• Exemplo: BD DE PAISES

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 19


Consultas Espaciais

• Exemplo: BD DE PAISES
❑ Dados:

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 20


Consultas Espaciais

O que mudará no processo de criação das tabelas?

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 21


Consultas Espaciais

• Extensão OGIS:
o Primeiro, redefinimos o esquema relacional, assumindo que os tipos de dados e
operações do OGIS estão disponíveis no SQL.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 22


Consultas Espaciais

• Exemplos SELECT:
❑ 1ª Consulta:
o Lista todos os países que são vizinhos ao EUA.
• DICA: Use a operação Touch.

Touch
• O predicado Touch verifica se há dois objetos geométricos adjacentes sem sobreposição. É uma
operação útil para determinar objetos geométricos vizinhos.
• Uma das boas propriedades das operações topológicas é que elas são invariantes sob muitas
transformações geométricas. Em particular, a escolha do sistema de coordenadas

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 23


Consultas Espaciais

• Exemplos SELECT:
❑ 1ª Consulta:
o Lista todos os países que são vizinhos ao EUA.

Touch
• O predicado Touch verifica se há dois objetos geométricos adjacentes sem sobreposição. É uma
operação útil para determinar objetos geométricos vizinhos.
• Uma das boas propriedades das operações topológicas é que elas são invariantes sob muitas
transformações geométricas. Em particular, a escolha do sistema de coordenadas

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 24


Consultas Espaciais

• Exemplos SELECT:
❑ 2ª Consulta:
Para todos os rios listados na tabela do rio, encontre os
países através dos quais eles passam!

Dica: Utilizem o método CROSS

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 25


Consultas Espaciais

• Exemplos SELECT:
❑ 2ª Consulta:
o Para todos os rios listados na tabela do rio, encontre os países através dos quais
eles passam.

Cross
• A Cross é também um predicado topológico. É mais frequentemente usado para verificar a interseção
entre objetos LineString e Polygon, como neste exemplo, ou um par de objetos LineString.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 26


Consultas Espaciais

• Exemplos SELECT:
❑ 3ª Consulta:
o O rio St. Lawrence pode fornecer água para cidades que estão dentro de 300 km.
Liste as cidades que podem usar a água do St. Lawrence.
• DICA: Use a operação Buffer e Overlap.

Buffer
• O Buffer de um objeto geométrico é uma região geométrica centralizada no
objeto;
• No exemplo, a consulta determina o tamanho da região do buffer (300 km).
• A operação de buffer é usada em muitas aplicações GIS;

Buffer de um rio

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 27


Consultas Espaciais

• Exemplos SELECT:
❑ 3ª Consulta:
o O rio St. Lawrence pode fornecer água para cidades que estão dentro de 300 km.
Liste as cidades que podem usar a água do St. Lawrence.

Buffer
• O Buffer de um objeto geométrico é uma região geométrica centralizada no
objeto;
• No exemplo, a consulta determina o tamanho da região do buffer (300 km).
• A operação de buffer é usada em muitas aplicações GIS;
Buffer de um rio
Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 28
Consultas Espaciais

• Exemplos SELECT:
❑ 4ª Consulta:
o Liste o nome, a população e a área de cada país listado na tabela País;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 29


Consultas Espaciais

• Exemplos SELECT:
❑ 4ª Consulta:
o Liste o nome, a população e a área de cada país listado na tabela País;

Area
• Esta função é aplicável apenas para tipos de geometria Polygon e MultPolygon. Calcular a área
depende claramente do sistema de coordenadas subjacente do banco de dados.

• Por exemplo, se a forma das tuplas País for dada em termos de latitude e longitude, uma
transformação de coordenada intermediária deverá ser executada antes que a Área possa ser
calculada. O mesmo cuidado deve ser tomado para a distância e a função Length.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 30


Consultas Espaciais

• Exemplos SELECT:
❑ 5ª Consulta:
o Liste a extensão dos rios em cada um dos países pelos quais eles passam.
• DICA: Use a operação Intersection, Length e Cross.

Intersection
• O valor de retorno da operação binária Intersection é um tipo de geometria.
• A operação Intersection é diferente da função Intersects, que é um predicado topológico para
determinar se duas geometrias se cruzam. A intersecção de um LineString e Polygon pode ser um tipo
Point ou LineString. Se um rio passar por um país, o resultado será um LineString.
• Nesse caso, a função Length retornará o comprimento diferente de zero do rio em cada país pelo qual
ele passa.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 31


Consultas Espaciais

• Exemplos SELECT:
❑ 5ª Consulta:
o Liste a extensão dos rios em cada um dos países pelos quais eles passam.

Intersection
• O valor de retorno da operação binária Intersection é um tipo de geometria.
• A operação Intersection é diferente da função Intersects, que é um predicado topológico para
determinar se duas geometrias se cruzam. A intersecção de um LineString e Polygon pode ser um tipo
Point ou LineString. Se um rio passar por um país, o resultado será um LineString.
• Nesse caso, a função Length retornará o comprimento diferente de zero do rio em cada país pelo qual
ele passa.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 32


Consultas Espaciais

• Exemplos SELECT:
❑ 6ª Consulta:
o Listar todos os países, ordenados por número de países vizinhos.

Nesta consulta, todos os países com pelo menos um vizinho são classificados com base no número de
vizinhos.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 33


Consultas Espaciais

• Exemplos SELECT:
❑ 7ª Consulta:
o Listar os países com somente um país vizinho.

O resultado deste SELECT é


uma tabela que consiste em
pares de países que são
vizinhos.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 34


Consultas Espaciais

• Exemplos SELECT:
❑ 7ª Consulta:
o Listar os países com somente um país vizinho.

A cláusula GROUP BY divide


a nova tabela com base nos
nomes dos países.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 35


Consultas Espaciais

• Exemplos SELECT:
❑ 7ª Consulta:
o Listar os países com somente um país vizinho.

A cláusula HAVING força a


seleção a ser emparelhada
com os países que têm
apenas um vizinho.
Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 36
Consultas Espaciais

• Exemplos SELECT:
❑ 7ª Consulta:
o Listar os países com somente um país vizinho.

Este SELECT retorna os


países com somente um
vizinho

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 37


Consultas Espaciais

• Views:
❑ Maneira alternativa de observação de dados de uma ou mais entidades
(tabelas), que compõem uma base de dados;

❑ Pode ser considerada como uma tabela virtual ou uma consulta armazenada;

❑ Views são como tabelas;

❑ Representam dados derivados ou o resultado de uma query;

❑ Pode ser usada para simplificar consultas aninhadas;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 38


Consultas Espaciais

• Views:
❑ A aplicação das views normalmente está vinculada ao encapsulamento de uma
instrução SELECT;

❑ Os dados são armazenados em uma tabela virtual e também na cache;

❑ Portanto, pode ser mais rápido ter uma consulta armazenada em forma de
view, em vez de ter que retrabalhar uma instrução;

❑ Vantagens:
o Economia de tempo com retrabalho;
o Velocidade de acesso às informações;
o Simplifica o gerenciamento de permissão;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 39


Consultas Espaciais

• View: Exemplo
❑ 8ª Consulta:
o Quais países possuem o máximo de vizinhos?
❑ Essa consulta demonstra o uso de VIEWs na simplificação de consultas
• Primeira consulta (VIEW) calcula o número
complexas.
de vizinhos para cada país. Essa visão cria
uma tabela virtual que pode ser usada
como uma tabela normal em consultas
subsequentes.

• A segunda consulta seleciona o país com o


maior número de vizinhos da VIEW
Neighbor.

Essa consulta demonstra o uso de VIEWs na simplificação de consultas complexas.

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 40


Definindo Tipo de Dado Espacial

• Extensão SQL3:
❑ O SQL3 permite a criação de novos tipos de dados como os TADs;
❑ Tipo Abstrato de Dados (TAD/ADT):
o Um ADT pode ser definido usando uma instrução CREATE TYPE;

o Um TAD consiste em atributos e métodos de acesso a valores dos atributos, tal


como as classes na orientação a objetos;

o Os métodos podem potencialmente modificar o valor dos atributos no tipo de dados


e, portanto, também podem alterar o estado do banco de dados;

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 41


Definindo Tipo de Dado Espacial

• Extensão SQL3: CREATE TYPE


❑ Tipo Abstrato de Dados (TAD/ADT)
(Cont):
o Para acessar o valor que o ADT
encapsula, um método especificado
em CREATE TYPE deve ser usada;

o Por exemplo, o script ao lado cria um


tipo Point com a definição de uma
função de membro Distance:

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 42


Próxima Aula

• Linguagem de Consulta Espacial


• SQL para Dados Espaciais;
• Consultas Espaciais com SQL/OGIS
• Propriedades espaciais;
• Relações espaciais
• Exemplos de Consultas Espaciais

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 43


Até a Proxima!

Prof. Caio Falcão UFMA / Ciência da Computação – Sistemas de Informações Geográficas 44

Você também pode gostar