Bancos de Dados Espaciais

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Estudo de Caso, modelo Oracle 10g
Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
Aula 3 – DB2 Express-C Autor:
Triggers Renata Viegas.
SQL Avançado Continuação
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Laboratório de Banco de Dados
Visões Marilde Santos.
SQL Structured Query Language Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente.
Maurício Edgar Stivanello
Hierarquia de Visões de Objeto
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
Banco de Dados Objetos Relacionais
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Banco de dados Profª Kelly Medeiros.
PostgreSQL.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Comandos de SQL Excel VBA II.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2]
PL/SQL, Procedures e Funções
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Monitoria GDI Aula Prática
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Design Patterns / Acesso ao banco de dados (java.sql)
Equipe de monitoria Aula prática 4
Banco de dados de analise de dados
Primeira aula de PL/SQL Parte II
Especialização em Tecnologia da Informação
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
III – Oracle10g Apontadores – Tipo de Dado (REF).
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
III – Oracle10g Funções que Manipulam Apontadores.
III – Oracle 10g Herança.
Com coleções, cursor não é mais necessário
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Monitoria GDI Aula Prática
Desenvolvendo um script SQL
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Treinamento sobre SQL.
Criação de Tabelas. CREATE TABLE nome_da_tabela ( >>. >> ) Ex.: SQL SERVER 2008 CREATE TABLE pessoa ( CPF VARCHAR(11) NOT NULL, NOME VARCHAR(100) NOT.
Baseado no material do Professor Raul Paradeda
BANCO DE DADOS GEOGRAFICO (ESPACIAL)
Conceitos básicos de SQL
1 Projeto do Sistema de Monitoramento das Águas da Amazônia 2 (MONITORAMA II) Instituto Tecnológico de Aeronáutica CE240 - Projeto de Sistema de Banco.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
SEGUNDA FASE / S2B MIC PERNAMBUCO
SQL Server Constraint UNIQUE.
Interface para Consultas Espaciais em Banco de Dados Geográficos
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Treinamento SQL Server
Ricardo Ferreira Schiavo
Banco de Dados Avançado
III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método.
Banco de Dados I I Comandos SQL
CASE WHEN THEN ELSE END Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com.
III - Oracle9i Apontadores – Tipo de Dado (REF). Identificador de Objeto A todo objeto de uma “object table” é associado um OID (“Object IDentifier”)
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Daniel Paulo SQL Módulo I Daniel Paulo
VBA – Visual Basic para Aplicativos
Linguagem de definição de dados - SQL
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
MS-SQL Server Structure Query Language
Transcrição da apresentação:

Bancos de Dados Espaciais

Bancos de Dados Espaciais São capazes de armazenar dados espaciais (geométricos) e realizar consultas baseadas em predicados espaciais.

Bancos de Dados Espaciais Arquitetura Dual Uma base para dados Alfanuméricos Uma base para dados Espaciais Arquitetura Unificada Modelo Relacional Campos Normalizados Campos CLOB e BLOB Modelo Orientado a Objeto Modelo Relacional-Objeto SQL

Dados Espaciais Modelo Relacional Criação Tabela Inclusão de Registros Create Table TB_PONTOS( ID_PONTO NUMBER ,COORD_X NUMBER ,COORD_Y NUMBER ,CONSTRAINT TB_PONTOS_PK PRIMARY KEY (ID_PONTO) ); Insert into TB_PONTOS( ID_PONTO ,COORD_X ,COORD_Y) VALUES( 1 ,10 ,5 ); Insert into TB_PONTOS 2 ,-3 ,7

Dados Espaciais Modelo Relacional

Bancos de Dados Espaciais Orientado a Objeto Relacional Objeto

Bancos de Dados Espaciais Oracle – Spatial Teradata – Geospatial Informix – Spatial Datablade DB2 – Spatial Extender PostgreSQL – PostGis MySQL SQL Server

Armazenamento de Dados Espaciais Armazenamento Geométrico Armazenamento Topológico

Primitivas Espaciais Oracle Spatial

MDSYS.SDO_GEOMETRY CREATE TYPE sdo_geometry AS OBJECT ( SDO_GTYPE NUMBER, indica o tipo de geometria SDO_SRID NUMBER, indica o sistema de coordenadas utilizado SDO_POINT SDO_POINT_TYPE, coordenadas quando a forma é um ponto SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY, ajuda na interpretação do atributo SDO_ORDINATES SDO_ORDINATES SDO_ORDINATE_ARRAY Coordenadas );

Oracle Spatial Inclusão de um Registro Criação de uma tabela com atributo Espacial Inclusão de um Registro INSERT INTO TB_RETANGULOS_TESTE( ID_RENTANGULO ,RETANGULO) VALUES( 1 ,SDO_GEOMETRY(2003, -- Retângulo Bidimensional NULL, -- sem sistema de coordenadas NULL, -- não é um ponto SDO_ELEM_INFO_ARRAY(1,1003,3), -- 1º par, polígono externo, fechado SDO_ORDINATE_ARRAY( 100 -- X Canto Inferior esquerdo ,150 -- Y Canto Inferior esquerdo ,200 -- X Canto Superior Direito ,180 -- X Canto Superior Direito ) )); CREATE TABLE TB_RETANGULOS_TESTE (ID_RENTANGULO NUMBER, RETANGULO MDSYS.SDO_GEOMETRY, CONSTRAINT RETANGULOS_PK PRIMARY KEY (ID_RETANGULO) ); CREATE INDEX IDX_RETANGULO ON TB_RETANGULOS_TESTE (RETANGULO) INDEXTYPE IS MDSYS.SPATIAL_INDEX ;

Alguns Operadores Espaciais SDO_FILTER: usada para identificar se um grupo de objetos interage espacialmente com um objeto ou uma área de interesse SDO_NN: usada para identificar os vizinhos mais próximos de uma geometria. SDO_WITHIN_DISTANCE: retorna os objetos que estão a uma determinada distância de um objeto SDO_GEOM.SDO_AREA: retorna a área de um polígono bidimensional. SDO_GEOM.SDO_CENTROID: retorna a centróide, também conhecida como centro de gravidade, de um polígono, ponto ou conjunto de pontos. SDO_GEOM.SDO_DISTANCE: retorna a distância entre dois objetos geométricos. A distância é calculada como sendo a distância entre os dois pontos, ou segmentos mais próximos entre os objetos.

Consultas com Predicados Espaciais SELECT ID_RENTANGULO, RETANGULO FROM TB_RETANGULOS_TESTE WHERE SDO_FILTER( RETANGULO , MDSYS.SDO_GEOMETRY(2003, NULL, NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(0,0,300,300) ) ,'querytype=window') = 'TRUE'; SELECT ID_RENTANGULO, RETANGULO FROM TB_RETANGULOS_TESTE WHERE SDO_WITHIN_DISTANCE( RETANGULO, sdo_geometry(2001 ,NULL ,sdo_point_type(10,7,NULL) ,NULL), 'distance=100') = 'TRUE';

Consultas com Predicados Espaciais SELECT SAMPA.DENO BAIRRO ,SUM(CASE WHEN ACD.ANO_ACIDENTE = 2007 THEN 1 ELSE 0 END) TOTAL_2007 ,SUM(CASE WHEN ACD.ANO_ACIDENTE = 2008 THEN 1 ELSE 0 END) TOTAL_2008 ,SUM(CASE WHEN ACD.ANO_ACIDENTE = 2009 THEN 1 ELSE 0 END) TOTAL_2009 FROM TB_FAT_ACIDENTE ACD ,TB_DISTRITOS_SAOPAULO SAMPA WHERE SDO_RELATE(ACD.geom_loc_acidente, SAMPA.DISTRITOS_GEOM, 'mask=inside') = 'TRUE' GROUP BY SAMPA.DENO ORDER BY COUNT(ACD.ID_ACIDENTE) DESC

Topologia no Oracle Spatial Elementos Básicos Nó Par de coordenadas associado Fronteira Delimitada por um nó final e um nó inicial (direção) e uma linha associada Face Representada por um polígono composto por fronteiras.

Topologia no Oracle Spatial -- Create the topology. (Null SRID in this example.) EXECUTE SDO_TOPO.CREATE_TOPOLOGY('LAND_USE_HIER', 0.00005); -- Create feature tables. CREATE TABLE land_parcels ( -- Land parcels (selected faces) feature_name VARCHAR2(30) PRIMARY KEY, feature SDO_TOPO_GEOMETRY); CREATE TABLE block_groups ( CREATE TABLE tracts ( CREATE TABLE counties ( CREATE TABLE states ( -- Associate feature tables with the topology; include hierarchy information. DECLARE land_parcels_id NUMBER; block_groups_id NUMBER; tracts_id NUMBER; counties_id NUMBER; BEGIN SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('LAND_USE_HIER', 'LAND_PARCELS', 'FEATURE','POLYGON'); SELECT tg_layer_id INTO land_parcels_id FROM user_sdo_topo_info WHERE topology = 'LAND_USE_HIER' AND table_name = 'LAND_PARCELS'; SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('LAND_USE_HIER', 'BLOCK_GROUPS', 'FEATURE','POLYGON', NULL, land_parcels_id); SELECT tg_layer_id INTO block_groups_id FROM user_sdo_topo_info WHERE topology = 'LAND_USE_HIER' AND table_name = 'BLOCK_GROUPS'; SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('LAND_USE_HIER', 'TRACTS', 'FEATURE','POLYGON', NULL, block_groups_id); SELECT tg_layer_id INTO tracts_id FROM user_sdo_topo_info WHERE topology = 'LAND_USE_HIER' AND table_name = 'TRACTS'; SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('LAND_USE_HIER', 'COUNTIES', 'FEATURE','POLYGON', NULL, tracts_id); SELECT tg_layer_id INTO counties_id FROM user_sdo_topo_info WHERE topology = 'LAND_USE_HIER' AND table_name = 'COUNTIES'; SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('LAND_USE_HIER', 'STATES', 'FEATURE','POLYGON', NULL, counties_id); END;/