Operadores topológicos SQL ST_RELATE

Documentos relacionados
Modelagem e consultas espaciais

MANIPULAÇÃO DE DADOS GEOGRÁFICOS EM BANCOS DE DADOS NoSQL - resultados preliminares

PostGIS. Lubia Vinhas

Spatial Database Systems. Karine Reis Ferreira

Banco de Dados Espaciais

GIS & CAD Integrando os Processos

STRUCTURED QUERY LANGUAGE (SQL)

SIG SIG. GEO-OMT Exercícios. Alisson Fernando Coelho do Carmo

Introdução ao PostGIS. Introdução ao PostGIS. Introdução ao PostGIS. Introdução ao PostGIS. Introdução ao PostGIS

Metodologia para Representação da Estruturação de Dados Geoespacial Vetorial (EDGV) em Bancos de Dados Geográficos Relacionais

BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING. Prof. Angelo Augusto Frozza, M.Sc.

Introdução ao PostgreSQL

Dados Geográfico PostGIS

Banco de Dados I Introdução SQL

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

SQL Básica. Andre Noel

A linguagem SQL

BCD29008 Banco de dados

Linguagem SQL (Parte II)

AGENDA. Introdução Geometrias Suportadas Estrutura dos Dados Manipulação Indexação Funções Espaciais Exercícios

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Revisão de Bancos de Dados

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Tabelas. Banco de Dados I MySQL

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Bases de Dados. DDL Data Definition Language

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc.

Guia de boas práticas para o gerenciamento de dados vetoriais no Oracle Spatial

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Linguagem de Consulta Estruturada (SQL)

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Banco de Dados. Professora: Luciana Faria

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc.

BANCO DE DADOS SQL. Aprendendo a manipular dados. Banco de dados utilizado: PostgreSQL.

SQL Linguagem de Definição de Dados

MySql. Introdução a MySQL. Andréa Garcia Trindade

Modelo Entidade-Relacionamento (E-R)

Manipulação de Dados com SQL

Structured Query Language (SQL) Aula Prática

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Palavras-chave: PostGIS. PostgreSQL. Webmapping. GeoExt. OpenLayers. GeoServer.

IMPLEMENTAÇÃO DE BANCO DE DADOS

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Banco de dados geográficos 03/09/2010

Comandos de Manipulação

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados Geográficos

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Sistema de Informação Geográfica CURSO DE SISTEMAS DE INFORMAÇÃO KARLA DONATO FOOK A.EDU.B R DESU / DAI.

TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL

Comandos SQL. Exercícios com o MySQL ou MaridaDB. Prof. Emiliano S. Monteiro

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

Programação SQL. Introdução

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Mapserver e Bancos de Dados

Modelagem Física e SQL

Mapeamento Conceitual-Lógico

A linguagem SQL

Disciplina: Banco de Dados Tema: SQL Parte 2

Projeto Físico de BDG

Modelagem de BDG. Modelagem de BDG

Uma arquitetura híbrida para aplicações geográficas em dispositivos móveis

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Transcrição:

Operadores topológicos SQL ST_RELATE Fernando Coelho do Carmo - -

Arquitetura integrada - -

PostGIS + PostgreSQL PostGIS é uma extensão espacial para o PostgreSQL que implementa a especificação padrão OGC Tipos de dados PostGIS: - -

Tipos de dados Esses tipos possuem a seguinte representação textual: Point: (0 0) LineString: (0 0, 1 1, 2 2) Polygon: ((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), ( 1 0 0,...),...) MultiPoint: (0 0 0, 4 4 0) MultiLineString: ((0 0 0, 1 1 0, 2 2 0), (4 4 0, 5 5 0, 6 6 0)) MultiPolygon: (((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), (...),...),...) GeometryCollection: (POINT(2 2 0), LINESTRING((4 4 0, 9 9 0)) - -

Passos para construção Construção do Banco de dados espacial 1- Planejamento do banco de dados Esquematização (papel e lápis) Definição das entidades e relacionamentos 2 Implementação do modelo (SQL) Create table..., Foreign Key..., Primary key 3 Adição dos atributos espaciais SELECT addgeometrycolumn(...) 4 Inserção de dados INSERT INTO... 5 Consulta e manipulação dos dados - -

Planejamento do banco de dados Ex) Banco de dados para: Registrar os dados e geometrias dos lotes Registrar os dados e geometrias dos bairros Definição dos atributos e tipos de dados Esquematização lógica do banco de dados - -

Implementação do modelo (SQL) Para instalar a extensão espacial POSTGIS: Download do instalador POSTGIS Instalar POSTGIS Criar a extensão no banco de dados: CREATE EXTENSION POSTGIS; Utilizar as funções do POSTGIS (instalado no public): - - SET SEARCH_PATH TO nome_usu, public;

Consulta e manipulação dos dados Operadores topológicos conforme a Matriz de 9-Interseções : st_equals(geometry, geometry) st_disjoint(geometry, geometry) st_intersects(geometry, geometry) st_touches(geometry, geometry) st_crosses(geometry, geometry) st_within(geometry, geometry) st_overlaps(geometry, geometry) st_contains(geometry, geometry) Retornam a matriz de intersecção. st_relate(geometry, geometry): - -

Operadores topológicos (Todos) boolean ST_Relate(geometry geoma, geometry geomb, text intersectionmatrixpattern); text ST_Relate(geometry geoma, geometry geomb); SELECT ST_Relate( ST_GeometryFromText('POINT(1 2)'), ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2) ); DIMENSÕES 0 => ponto 1 => linha 2 => área T => {0,1,2} F => vazio * => Qualquer 0FFFFF212 SELECT ST_Relate( ST_GeometryFromText('POINT(1 2)'), ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212'); t - -

Padrões da DE-9IM - -

Operadores topológicos (Todos) RESULTADO (RELATE) 212101212 - -

Dados geométricos (20, 0) Fazer a DE-9IM: Interior, fronteira, exterior A (2, 18) (13, 18) (13, 7) (2, 7) A B (10, 0) (0,0) - - B (13, 18) (21, 18) (21, 2) (13, 2) (10, 0) 20, 0 (27, 0)

Inserção dos dados Definição das coordenadas (sistema local) A: (2, 18), (13, 18), (13, 7), (2, 7) B: (13, 18), (21, 18), (21, 2), (13, 2) Definição do SQL SELECT ST_RELATE( ST_GeomFromText('POLYGON((2 18, 13 18, 13 7, 2 7, 2 18))'), ST_GeomFromText('POLYGON((13 18, 21 18, 21 2, 13 2, 13 18))') ); "FF2F11212" - -

Exemplos operador topológico (8, 4) (2, 2) (1,1) (6,1) SELECT ST_RELATE( ST_GeomFromText('POLYGON((2 2, 8 2, 8 4, 2 4, 2 2))'), ST_GeomFromText('LINESTRING(1 1, 6 1)') ); - -

Exemplos operador topológico (8, 4) (2, 2) (1,1) (6,1) SELECT ST_RELATE( ST_GeomFromText('POLYGON((2 2, 8 2, 8 4, 2 4, 2 2))'), ST_GeomFromText('LINESTRING(1 1, 6 1)') ); - -

Exemplos operador topológico (9, 5) (5, 4) (3, 2) (1, 1) SELECT ST_RELATE( ST_GeomFromText('POLYGON((1 1, 5 1, 5 4, 1 5, 1 1))'), ST_GeomFromText('POLYGON((3 2, 9 2, 9 5, 3 5, 3 2))') ); - -

Exemplos operador topológico (9, 5) (5, 4) (3, 2) (1, 1) SELECT ST_RELATE( ST_GeomFromText('POLYGON((1 1, 5 1, 5 4, 1 5, 1 1))'), ST_GeomFromText('POLYGON((3 2, 9 2, 9 5, 3 5, 3 2))') ); - -

Exemplos operador topológico ST MakeBox2D ( ST Point ( 1, 1 ), ST Point ( 7, 3 ) ), ST MakeBox2D ( ST Point ( 3, 3 ), ST Point ( 9, 5 ) ) - -

Exemplos operador topológico ST MakeBox2D ( ST Point ( 1, 1 ), ST Point ( 7, 3 ) ), ST MakeBox2D ( ST Point ( 3, 3 ), ST Point ( 9, 5 ) ) - -

Exemplos operador topológico ST MakeBox2D ( ST Point ( 1, 1 ), ST Point ( 9, 5 ) ), ST MakeBox2D ( ST Point ( 2, 2 ), ST Point ( 8, 4 ) ) - -

Exemplos operador topológico ST MakeBox2D ( ST Point ( 1, 1 ), ST Point ( 9, 5 ) ), ST MakeBox2D ( ST Point ( 2, 2 ), ST Point ( 8, 4 ) ) - -

Exemplos operador topológico ST MakeBox2D ( ST Point ( 1, 1 ), ST Point ( 4, 3 ) ), ST MakeBox2D ( ST Point ( 6, 3 ), ST Point ( 9, 5 ) ) - -

Exemplos operador topológico ST MakeBox2D ( ST Point ( 1, 1 ), ST Point ( 4, 3 ) ), ST MakeBox2D ( ST Point ( 6, 3 ), ST Point ( 9, 5 ) ) - -

Exemplos operador topológico SELECT ST_RELATE( ST_GeomFromText('POLYGON((2 2, 8 2, 8 4, 2 4, 2 2))'), ST_GeomFromText('point(5 1)') ); - -

Exemplos operador topológico SELECT ST_RELATE( ST_GeomFromText('POLYGON((2 2, 8 2, 8 4, 2 4, 2 2))'), ST_GeomFromText('point(5 1)') ); - -

Operadores topológicos EXEMPLO com o TOCAR boolean ST_Touches(geometry g1, geometry g2); SELECT ST_Touches( ST_GeomFromText('LINESTRING(0 0, 1 1, 0 2)'), ST_GeomFromText('POINT(2 2)') ); f FALSE SELECT ST_Touches( ST_GeomFromText('LINESTRING(0 0, 1 1, 0 2)'), ST_GeomFromText('POINT(0 2)') ); t - - TRUE

SFS Simple Feature Specification - -

Funções PostGIS - SFS Especificação definida e bem documentada Padrão OGC É uma especificação criada pelo OGC que trata das seguintes questões: Armazenamento da componente espacial vetorial de dados geográficos em bancos de dados Fornecimento de interface de acesso a esses dados: SQL, CORBA e COM Versões: 1.1.0 e 1.2.0 Na prática: - - SQL: PostgreSQL/PostGIS ou Oracle Spatial SQL + Linguagem: TerraLib+MySQL ou ARCSDE+SQLServer

Funções PostGIS - SFS Simple Feature Access - Part 1: Common Architecture http://www.opengeospatial.org/standards/sfa Modelo Geométrico Operadores Espaciais Simple Feature Access - Part 2: SQL Option http://www.opengeospatial.org/standards/sfs SQL CORBA COM - -

Funções PostGIS - SFS - -

Funções PostGIS - SFS Dimensionalidade da figura geométrica: 0-dimensional: ponto 1-dimensional: linha 2-dimensional: polígono Dimensionalidade do espaço onde está inserida a figura geométrica: 2D: plano cartesiano 3D: espaço tridimensional 2D+M: plano cartesiano com uma medida associada 3D+M: espaço tridimensional com uma medida associada - -

Tipos de dados espaciais - -

Integridade das geometrias De acordo com SFS: Todas as geometrias devem ser simples e válidas (0-dim e 1-dim) Uma geometria é simples se: Não possuir pontos anômalos Auto-intersecções Auto-tangência Ponto: É inerentemente simples (0-dim) Multipoint: - - Não possuir dois pontos iguais (mesma coord.) (2-dim) Verificar se uma geometria é válida

Integridade das geometrias LINESTRING Não passa sobre o mesmo ponto (exceto extremos) - -

Integridade de geometrias MULTILINESTRING Todas as linhas devem ser simples Não existem Intersecções entre as linhas (exceto nos extremos) - -

Integridade das geometrias POLYGON A fronteira pode interceptar apenas em ponto (não linhas) Os anéis internos não podem se sobrepor Anéis internos devem estar inteiramente contido no anel externo - -

Integridade das geometrias MULTIPOLYGON Todos os polígonos devem ser válidos Interior de dois polígonos não se interceptam As fronteiras podem se tocar, mas apenas em pontos finitos - -

Funções PostGIS - SFS - -

Observação importante: a especificação é clara ao dizer que ainda que estejam previstas as geometrias no espaço tridimensional (3D), os operadores só são definidos no espaço bidimensional (2D). É deixado a cargo de cada implementador a definição dos operadores no espaço 3D Funções 3D ainda não estão totalmente desenvolvidas Manipulação não tão madura quanto as implementações 2D Especificação <> Implementação - -

Integridade dos dados Validando geometrias antes de inseri-las no BDGeo ST_ISVALID() Valida as coordenadas de uma geometria Exemplo: SELECT ST_ ISVALID ('LINESTRING(0 0, 1 1)'), ST_ISVALID ('LINESTRING(0 0,0 0)'); t f Opção default é não validar a entrada das geometrias Para validar deve-se adicionar uma restrição à tabela ALTER TABLE parks ADD CONSTRAINT geo_valid_chk CHECK (ST_ISVALID ( park_geom)) ; - -

Contato: alisondocarmo@gmail.com - -