You are on page 1of 67

Banco de Dados

Geográficos

Arquiteturas
Sistemas de Informação Geográfica - SIG

 Sistemas que realizam o tratamento computacional de


dados geográficos

 Funcionalidades de um SIG (Rigaux et al, 2002):


 Entrada e validação de dados espaciais;
 Armazenamento e gerenciamento desses dados;
 Saída e apresentação visual desses dados;
 Transformação de dados espaciais;
 Interação com o usuário;
 Combinação de dados espaciais para criar novas
representações do espaço geográfico; e
 Ferramentas para análise espacial.
Visão Geral de um SIG

Interface

Entrada e Integr. Consulta e Análise Visualização


Dados Espacial Plotagem

Gerência Dados
Espaciais

BANCO DE DADOS
GEOGRÁFICO
Organização lógica de dados em um SIG

 Organização por níveis (planos) de informação


 cada nível = dado específico

 Atributos de objetos
 armazenados em tabelas

divisão
política

elevação

rios
Organização lógica de dados em um SIG

 Plano de informação (nível, camada, layer)


 contém informações referentes a um único tipo de dados
 restrição: área geográfica definida. Exs:
 geologia de uma área

 conjunto de lotes (objetos)

País PIB Pop

Brasil 800 159

Argentina 300 34

Chile 45 14

PI com Campo (Geologia) PI com Objetos (Países)


Extrair informações sobre a base?

Qual a cidade mais populosa da meso região de Campinas?


SELECT municipio, populacao
FROM cidades
WHERE populacao = (SELECT MAX(populacao)
FROM cidades
WHERE mesoregiao = 'CAMPINAS');

Encontre as cidades cujas sedes estejam a uma distância menor ou igual a


100 kms da cidade de São José dos Campos?

SELECT municipio FROM cidades c1, cidades c2


WHERE (c1.municipio = ‘SAO JOSE DOS CAMPOS’ AND
c2.municipio <> ‘SAO JOSE DOS CAMPOS’ AND ???
DISTANCE (c1.geometry, c2.geometry) < 100)
Operações e consultas espaciais

 Unárias, com resultado Booleano:


São José dos Campos é convexo? V ou F

 Unárias com resultado Escalar:


Qual a área do município de SJC?

 Unária com resultado Espacial:


Determine um buffer de 100 kms sobre o município de SJC
Operações e consultas espaciais

 Binárias com resultado Booleano (predicados espaciais)


Caçapava é vizinha de Jacareí?

 Binárias com resultado Escalar


Qual a distância entre a sede de Jacareí e a sede de Caçapava?

 Binárias com resultado Espacial (operações de conjuntos)


Quais os trechos da Rod. Dutra que cruzam SJC?
Seleção espacial
 Dados um conjunto de objetos espaciais D e um predicado de
seleção espacial p sobre atributos espaciais dos objetos em D,
determine todos os objetos em D cujas geometrias satisfazem p.

Seleção por ponto Seleção por região Seleção por janela


Junção espacial
 Dados dois conjuntos de objetos espaciais D1 e D2 e um predicado
de seleção espacial θ determine todos os pares (d1, d2) ∈ D1 X D2
cujas geometrias satisfazem θ. Ex:
 Para cada rodovia
selecione as escolas que
estão a menos de
1000 metros.
Predicados Topológicos

 Freqüentemente utilizados nas consultas espaciais para


analisar informações.

 Definem restrições baseadas no relacionamento


espacial entre os objetos.

 Aparecem em consultas como:


 Cristalina e Paracatu são vizinhas?
 O trecho em vermelho da BR-040
cruza quais municípios?
Predicados Topológicos: Matriz 9-Interseções

Fronteiras (∂ A e ∂ B), Interiores (Ao e Bo) e Exteriores (A- e B- ).

Fonte: Adaptado de Egenhofer e Herring (1991)


Predicados Topológicos: Matriz 9-Interseções

Perdizes
(A)
Araxá
(B)

∂B B°° B-
∂A ¬∅ ∅ ¬∅
A°° ∅ ∅ ¬∅ TOCA
-
A ¬∅ ¬∅ ¬∅
Processamento de Consultas Espaciais

 Por quais municípios


brasileiros passa o trecho
da BR-040 destacado?
 Métodos de Acesso
Multidimensionais:

Aproximação pelo Retângulo Envolvente Mínimo


(REM ou Bounding Box ou MBR)
Processamento de Consultas Espaciais

Consulta Espacial

Testes Geométricos
Índice Espacial

Objetos
Candidatos
Espaciais Falsos
Candidatos Resultado

Filtragem Refinamento
Evolução das arquiteturas de SIG

 SIG “desktop” (~1983-1990)


 Ambiente monousuário
 Ênfase em interfaces amigáveis e funções de análise

 SIG distribuído (~1990-2000)


 Ambiente multiusuário
 Compartilhamento de dados

 Ênfase em controle de acesso e manutenção de integridade

 Servidores Web (~2000)


 Uso da Internet para disseminar dados
 Ênfase em eficiência de acesso e interfaces de navegação
Evolução das arquiteturas de SIG

Centro de Dados
Global

BD Geográfico
Institucional

SIG
Desktop

Internet

Banco de Dados
Geográfico
Banco de Dados Geográficos

 Elemento fundamental do sistema

 Componentes
 Tratamento dos dados geométricos (mapas e imagens)
 Tratamento dos dados descritivos (tabelas)

 Responsabilidades
 Armazenar os dados e controlar o acesso

 Que tipo de uso faremos da informação (desktop,


distribuído, web)?
 O armazenamento/recuperação dos dados depende do tipo de
uso
SIGs e Sistemas de Banco de Dados

 Nova tendência no desenvolvimento de SIG


 Uso de Sistemas Gerenciadores de Banco de Dados (SGBDs)
para armazenar, manipular e gerenciar dados geográficos

 Objetivo:
 Liberar os programadores para enfocar em outras
funcionalidades de um SIG e deixar a responsabilidade de
gerenciamento dos dados para os SGBDs
SIGs e Sistemas de Banco de Dados

 Desafio:
 Adaptar os SGBDs tradicionais para suportar a componente
espacial de um dado geográfico

 Arquiteturas de SIGs que usam SGBDs:


 Arquitetura Dual
 Arquitetura Integrada
Arquitetura Dual

 Estrutura:
 SGBD relacional: para
armazenar dados
SIG SGBD
alfanuméricos
 Arquivos: armazenar
dados espaciais
Dados
Espaciai Dados
s Alfanuméricos

Arquivos SGBD

País PIB
Brasil 350
Uruguai 295
Arquitetura Dual
Arquitetura Dual - Exemplos

 SPRING
 Dados alfanuméricos: SGBD relacional (DBase, Access, MySQL,
Oracle)
 Dados espaciais: arquivos com formato específico

 ArcView/ ARC/INFO (até versão 7)


 Dados alfanuméricos: SGBD relacional
 Dados espaciais: “shapefiles”

 IDRISI
 Dados alfanuméricos: SGBD relacional
 Dados espaciais: matrizes

 Quem é o gerenciador de dados num sistema como SPRING,


ArcView e IDRISI?
 A própria aplicação
Arquitetura Dual
Dados de
 SPRING: SGBD - modelo relacional controle que
garantem o
modelo
conceitual
Arquitetura Dual
 SPRING: Arquivos ASCII-SPRING

Ancoras (.an1, .an2)


Polígonos (.po1, .po2)
Linhas (.lin)
Pontos das linhas (.blk)
Pontos 2D (.p2d)
Pontos 3D (.p3d)
Imagens (.grb, .thm)
Luts (.lut)
Grades (.dsc, .spg)
Cartas (.cht)
Árvores rtree (.rtl, rtp, .rta)
Árvores de indexação kdtree (.kdt)
Arquitetura Dual
 SPRING
Arquitetura Dual
 ArcView (versão 3.0): Banco de Dados de São Paulo
 Arquivos: sampa.shp, sampa.dbf, sampa.shx
Arquitetura Dual

 Vantagens
 Acesso externo aos atributos (SQL)
 Ferramentas do SGBD
 gerar formulários e relatórios

 Problemas
 Falta de interoperabilidade
 Consultas são divididas em duas partes
 Dificuldade em manter a integridade entre os dados espaciais e
atributos
 Não permite ambiente multiusuário
Arquitetura Dual

 Características:
 Apropriada para SIG “desktop”
 Cada usuário gerencia seus dados

 Compartilhamento de dados
 Exige duplicação dos dados

 Atualização da informação
 Requer nova cópia para todos os usuários
Arquitetura Integrada

 Estrutura:
 SGBD: para armazenar o dados
geográfico: SIG SGBD

 SGBD relacional
 SGBD objeto-relacional

Dados alfanuméricos
+
Dados espaciais

SGBD

País PIB
Brasil 350
Uruguai 295
Arquitetura Integrada - SGBD Relacional

 Modelo relacional
 Banco de dados é organizado em uma coleção de relações ou tabelas
relacionadas entre si

Aluno
MATRICULA NOME CURSOID
98765 João MAT
67765 José BIO
84562 Maria ENG
34256 Luis INFO
Curso
3452672 Ana MAT
CURSOID TITULO DURAÇÃO
34529 Luana MAT INFO Informática Indust. 4
BIO Biologia 4
ENG Engenharia Civil 5
MAT Licenciatura Mat. 4
Arquitetura Integrada - SGBD Relacional

 Como armazenar um polígono em um SGBD-R?


Alternativa 1: tabelas de pontos (x,y)
Poligonos

id num_coords num_holes
1,5 5,5 pol1 4 0
pol2 12 1

Pts_pol Pontos
1,1 5,1
Pol1 id pt id x y
pol1 1 1 1 5
pol1 2 2 5 5
pol1 3 3 5 1
pol1 4 4 1 1
pol1 5 5 1 5
Arquitetura Integrada - SGBD Relacional

 Como armazenar um polígono em um SGBD-R?


Alternativa 2: campo longo binário (BLOB)

1,5 5,5

Tipo BLOB

1,1 5,1
Pol1 Poligonos
id num_coords num_holes poligono
pol1 4 0 (xy, xy, xy...)
pol2 12 1 (xy, xy, xy...)
Arquitetura Integrada - SGBD Relacional

 Vantagens
 Facilidade na manutenção de integridade entre a componente
espacial e alfanumérica
 Uso dos recursos do SGBD:
 transação, recuperação de falhas, controle de acesso concorrente, etc.

 Desvantagens
 Perda de semântica dos dados espaciais
 Limitações da SQL para manipular BLOBs
 Métodos de acesso e otimizados de consulta devem ser
implementados pelo SIG
Arquitetura Integrada - SGBD-OR

 Utiliza extensões espaciais construídas sobre SGBD-OR para


armazenar, gerenciar e acessar dados espaciais

 SGBD-OR: modelo objeto-relacional


 Combina benefícios do modelo Relacional com a
capacidade de modelagem do modelo OO
 Fornecem suporte para:
 Criar objetos complexos
 Executar consultas complexas sobre dados complexos

 O modelo de dados OR é uma extensão do modelo


Relacional
Extensão espacial
 SGBD-OR são estendidos para suportar:
 Tipos de dados espaciais: polígono, ponto, linha, etc;
 Operadores e funções utilizados na SQL para manipular dados
espaciais (consultas e junção)
 Métodos eficientes de acesso aos dados espaciais

 Extensões existentes:
 Comerciais
 Oracle Spatial
 IBM DB2 Spatial Extender
 Livres
 PostGIS
 Extensão espacial para MySQL
OpenGIS

 Consórcio entre companhias, universidade e agências


governamentais

 Objetivo: promover o desenvolvimento de tecnologias que


facilitem a interoperabilidade entre sistemas envolvendo
informação geo-espacial

 Os produtos do trabalho do OGC são apresentados sob


forma de especificações de interfaces e padrões de
intercâmbio
OpenGIS

 Algumas especificações OGC:

 GML (Geography Markup Language): intercâmbio de dados

 OWS (OGC Web Service): especificações de serviços WEB


 WFS: Web Feature Service

 WMS: Web Map Server

 SFSQL (Simple Feature Specification For SQL): especificações


sobre o armazenamento e recuperação de dados espaciais
pelos SGBDs
OpenGIS - SFSQL
 Tipos de geometrias vetoriais:
OpenGIS - SFSQL
 Tipos de geometrias vetoriais - exemplos:
 Criar uma tabela para armazenar os municípios de São Paulo:
CREATE TABLE municipiossp
(cod INTEGER,
nomemunicp VARCHAR(255) NULL,
populacao REAL
geometria POLYGON);

 Criar uma tabela para armazenar os rios de São Paulo:


CREATE TABLE drenagemsp
( cod INTEGER,
nomerio VARCHAR(255) NULL,
geometria LINESTRING);
OpenGIS - SFSQL
 Spatial SQL:
 Operadores topológicos baseados na matriz de 9-Interseções
estendida dimensionalmente (DE-9IM) : touches, equals, overlaps,
disjoints, intersects, contains, insides, covers,
coveredBy.
OpenGIS - SFSQL
 Spatial SQL:
 Outros operadores: distance, buffer, convexHull,
intersection, union, difference, area, centroid e
pointOnSurface
OpenGIS - SFSQL
 Spatial SQL - Exemplos:
 Encontre todos os municípios de SP que são vizinhos do município
de São Paulo:

SELECT d2.nomemunicp
FROM municipiossp d1, municipiossp d2
WHERE TOUCHES(d1.geometria, d2.geometria)
AND (d2.nomemunicp <> 'SAO PAULO')
AND (d1.nomemunicp = 'SAO PAULO');
OpenGIS - SFSQL
 Spatial SQL - Exemplos:
 Encontre todos os municípios de SP que estão num raio de 3Km do rio
X:

SELECT nomemunicp
FROM municipiossp, drenagemsp
WHERE INTERSECTS
(BUFFER(drenagemsp.geometria, 3000),
municipiossp.geometria)
AND drenagemsp.nomerio = ‘X’;
OpenGIS - SFSQL
 Esquema de metadados
Extensão espacial – Oracle Spatial

 Extensão espacial do SGBD Oracle

CREATE TYPE sdo_geometry AS OBJECT (


SDO_GTYPE NUMBER,
SDO_SRID NUMBER,
SDO_POINT SDO_POINT_TYPE,
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES SDO_ORDINATE_ARRAY);

CREATE TABLE Estados (


SIGLA VARCHAR2(2) Estados
POP NUMBER(10,10) SIGLA POP GEOM
GEOM SDO_GEOMETRY)
MG 222222

RJ 333333

SP 444444
Extensão espacial – Oracle Spatial

1) Tipos de dados espaciais


2) Funções e operadores espaciais
3) Métodos de indexação espacial

SDO_GEOMETRY
Plano
SDO_GTYPE NUMBER
SDO_SRID NUMBER
SDO_POINT SDO_POINT_TYPE
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY Geometria
SDO_ORDINATES SDO_ORDINATE_ARRAY

CREATE TABLE ESTADOS ( Elemento


estado_id NUMBER,
nome VARCHAR2(100)
geometria MDSYS.SDO_GEOMETRY);
Extensão espacial – Oracle Spatial

1) Tipos de dados espaciais


2) Funções e operadores espaciais
3) Métodos de indexação espacial

Operadores e Funções baseados


SELECT ES.estado_id
na matriz de 9-Interseções FROM Estado ES, Rios RI
SDO_RELATE WHERE RI.gid = 234 AND
SDO_RELATE(ES.geometria,
SDO_DISTANCE RI.geometria,
‘mask=CONTAINS querytype=WINDOW’)
SDO_INTERSECTION = ’TRUE’;
SDO_DIFFERENCE
SDO_UNION SELECT SDO_GEOM.SDO_INTERSECTION
(ES.geometria, FL.geometria, 0.005)
SDO_XOR FROM Estado ES, Floresta FL
WHERE ES.nome = 'Pará' AND
SDO_BUFFER FL.nome = 'Amazonia';
SDO_CONVEXHULL
Extensão espacial – Oracle Spatial

1) Tipos de dados espaciais


2) Funções e operadores espaciais
3) Métodos de indexação espacial

11 11
X d
1 5
14 b 1 5
14

Y 8 8
2 6
2 6
12 12
13 13

Z a c
a T
3
3 9
9

10
10
7
7

4 4 b
R R
d c

Quad-Tree R-Tree
Extensão espacial – PostGIS

 Tipos de dados espaciais


 Tipos do OpenGIS

 Métodos de indexação espacial


 RTree implementado sobre a GiST

 Funções e operadores espaciais


 Operadores topológicos
 Métricos
 Geram novas geometrias
Arquitetura Integrada
 Componentes:
 Banco de dados (alternativas)
 Apenas suporte para campos longos (ex. MySQL, Access)

 Interface para tipos de dados espaciais (ex. PostGIS)

 Camada de Acesso
 Bibliotecas de funções

 TerraLib, ArcSDE Interface

 Interface
 Integrada com camada de acesso
Camada de acesso
 TerraView
 Cliente-Servidor

 SIGMUN, ArcGIS 8.0


Banco de Dados
Arquitetura Integrada
 Exemplos:
 TerraView - TerraLib
 ArcGIS 8 - ArcSDE
TerraLib

 É uma biblioteca de software, livre e de código fonte


aberto, que oferece suporte para a construção de
aplicativos geográficos baseados na arquitetura
integrada.
 Desenvolvida em C++
 Suporta:
Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf

 SGBD relacional
Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf
Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf

 Access, Oracle, Postgres, MySQL, SQLServer


 SGBD OR
 Oracle Spatial, PostGIS TerraLib

SGBD
TerraLib

 Interface com SGBDs


Interface com
Database SGBDs

ADO Driver MySQL Driver Oracle Driver PostgreSQL


Oracle Spatial PostGIS

Access MySql Oracle PostgreSQL

SQL Server Oracle PostGIS


Spatial
TerraLib

 Uso de um SGBD relacional


 Dados vetoriais e matriciais são armazenados em campos longos
binários (BLOB).
TerraLib

 Uso de um SGBD-OR
 Dados vetoriais são armazenados em tipos de dados espaciais.
 Dados matriciais são armazenados em campos longos binários (BLOB).
TerraView

 Interface
 TerraView

 Camada de acesso
 TerraLib

 SGBD
 Access, Oracle, MySQL,
PostGIS…
ArcGIS e ArcSDE
ArcSDE

 Interface entre os softwares do ArcGIS e os SGBDs

 Responsável pelo armazenamento, gerenciamento e


recuperação dos dados geográficos nos SGBDs:
 IBM DB2 com extensão espacial
 IBM Informix com extensão espacial
 Microsoft SQL Server
 Oracle
 Oracle com extensão espacial ou Locator
ArcSDE

 Dados vetoriais são armazenados em tipos de dados espaciais


(SGBD com extensão espacial) ou em BLOBs (SGBD sem
extensão)
 Dados matriciais são armazenados em BLOBs em todos os
SGBDs

Dados Vetoriais
Arquitetura Integrada

 Considerações
 Permite construir SIG distribuídos
 Tem controle de integridade dos dados espaciais
 Permite acesso e atualização multiusuário
 Interoperabilidade
Arquiteturas SIG na Internet

 Evolução da Internet
 Início da Internet
 falta de recursos e ferramentas

 lentidão

 falta de conhecimento do seu potencial

 Internet hoje:
 novas ferramentas para desenvolvimento

 aumento de velocidade

 aumento no número de programas de aplicação


Arquiteturas SIG na Internet

 Servidor de mapas remotos


 Dados ficam no servidor
 Transmissão de arquivos matriciais (GIF, JPEG)
 Acessos sucessivos ao servidor
 Ex. TerraWeb (INPE)
 Ex. MapServer

 Servidor de dados remotos


 Dados ficam no cliente
 Transmissão de arquivos vetoriais
 Acesso único ao servidor
 Ex: SPRINGWeb
Servidores de Mapa Remoto

Cliente Servidor
Servidor
WWW Documentos
HTTP
Browser Web

Display
INTERNET
Servidor de Mapas
URL/Parâmetros do Mapa Servidor
Solicita Img
HTTP
Mapa / Imagem
Mostra Imagem

Gerador Dados
de Mapas Espaciais
Servidores de Mapa Remoto

 Vantagem
 não é necessário carregar, instalar ou manter qualquer software ou
dados especiais
 Permite diferentes tipos de acesso aos dados (servidor inteligente com
um banco de dados bem-organizado)

 Desvantagem
 Cada nova pesquisa, gera um novo mapa
Servidores de Dados Remoto

Cliente Servidor
Software SIG Requisição de arquivos Servidor
Local de dados
INTERNET Dados SIG
Transferência de Arquivos
Arquivos de dados SIG

Dados SIG
Locais
Arquiteturas – Sumário

Tipo Características Exemplo

Dual - uso de SGBD relacional de mercado para SPRING


atributos
- dificuldade de garantir integridade entre ArcView
atributos e dados espaciais
Integrada ou - armazenamento de atributos e geometrias na Terralib
Camadas mesma base
(SGBD Relacional) - uso de campos longos para geometrias ArcSDE
- problema de semântica dos dados

Integrada ou - definição de tipos de dados Oracle


Camadas geométricos Spatial
(SGBD OR) - extensão da linguagem SQL TerraLIB
IBM DB2
PostGIS

You might also like