A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Bancos de Dados Espaciais. São capazes de armazenar dados espaciais (geométricos) e realizar consultas baseadas em predicados espaciais."— Transcrição da apresentação:

1 Bancos de Dados Espaciais

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

3 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

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

5 Dados Espaciais Modelo Relacional

6 Bancos de Dados Espaciais Orientado a ObjetoRelacional Objeto

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

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

9 Primitivas Espaciais Oracle Spatial

10 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 );

11 Oracle Spatial Criação de uma tabela com atributo Espacial 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 ; 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( X Canto Inferior esquerdo, Y Canto Inferior esquerdo, X Canto Superior Direito, X Canto Superior Direito ) ));

12 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.

13 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,NULL), 'distance=100') = 'TRUE';

14 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

15 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.

16 Topologia no Oracle Spatial -- Create the topology. (Null SRID in this example.) EXECUTE SDO_TOPO.CREATE_TOPOLOGY('LAND_USE_HIER', ); -- 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 ( feature_name VARCHAR2(30) PRIMARY KEY, feature SDO_TOPO_GEOMETRY); CREATE TABLE tracts ( feature_name VARCHAR2(30) PRIMARY KEY, feature SDO_TOPO_GEOMETRY); CREATE TABLE counties ( feature_name VARCHAR2(30) PRIMARY KEY, feature SDO_TOPO_GEOMETRY); CREATE TABLE states ( feature_name VARCHAR2(30) PRIMARY KEY, feature SDO_TOPO_GEOMETRY); -- 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;/


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

Apresentações semelhantes


Anúncios Google