las geodatabases en el panorama del foss gis. introduccion y casos de estudio

44
Presentaci´on Geodatabases Mini proyecto SIGUA.NET Las geodatabases en el panorama del FOSS GIS Introducci´on y casos de estudio Benito M. Zaragoz´ ı Seminario Tem´ atico aster en Tecnolog´ ıas de la Informaci´on Geogr´ afica Universidad de Alcal´ a de Henares 2 y 3 de abril de 2013 Las geodatabases en el panorama del FOSS GIS Introducci´ on y casos de estudio Benito M. Zaragoz´ ı

Upload: benito-m-zaragozi

Post on 20-Jun-2015

626 views

Category:

Education


2 download

DESCRIPTION

Presentación para un seminario temático impartido en el Máster en Tecnologías de la Información Geográfica. Hablamos sobre SIG libre, geodatabases e hicimos una introducción a Postgis.

TRANSCRIPT

Page 1: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Las geodatabases en el panorama del FOSS GISIntroduccion y casos de estudio

Benito M. Zaragozı

Seminario TematicoMaster en Tecnologıas de la Informacion Geografica

Universidad de Alcala de Henares

2 y 3 de abril de 2013

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 2: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Tendencias en el acceso a la informacion geografica

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 3: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Knowledge Discovery in Databases (KDD)

• El KDD analiza las bases de datos mas voluminosas.

• El KDD puede aprovechar datos con orıgenes y formatos tandistintos como los existentes en el area de las TIG.

• Las tareas y metodos de “Data Mining” sirven para extraerconocimiento a partir de las bases de datos.

• La IG tiene particularidades que la hacen mas difıcil de analizarque los datos provenientes de otras areas de aplicacion.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 4: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Open Geospatial Consortium (OGC)

Miembros OGC• Empresas distribuidoras de software: ESRI, Autodesk, Bentley

Systems, Cadcorp, Intergraph, NAVTEQ, etc.

• Universidades: Delft University of Technology, HarvardUniversity, ITC University of Twente, MIT, etc.

• Agencias gubernamentales: Norwegian Building Authority, USGeological Survey (USGS), etc.

http://www.opengeospatial.org/

Estandar OGC

Documento establecido por consenso y aprobado por los miembrosdel OGC. Este documento provee de reglas y directrices quebuscan la interoperabilidad del software geoespacial.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 5: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

WKT y WKB

Well-known text (WKT)

WKT es uno de los estandares OGC mas conocidos. WKT es unlenguaje de etiquetado para representar geometrıas vectoriales,sistemas de referencia espacial y transformaciones. En su versionbinaria, el well-known binary (WKB) se utiliza para transferir dichainformacion rapidamente entre bases de datos y distintos tipos desoftware geoespacial.

POINT(53 105)MULTIPOINT(100 0, 100 100)LINESTRING(0 0, 25 100, 50 0, 75 100, 100 0)MULTILINESTRING((100 100, 75 0, 50 100, 25 0, 0 100), (0 0, 25 100, 50 0, 75 100, 100 0))POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))POLYGON((0 0, 100 0, 100 100, 0 100, 0 0), (25 25, 25 75, 75 75, 75 25, 25 25))MULTIPOLYGON(((125 125, 125 175, 175 175, 175 125, 125 125)), ((0 175, 0 100, 100 175, 0 175)))GEOMETRYCOLLECTION(POINT(53 105), LINESTRING(0 0, 25 100, 50 0, 75 100, 100 0),POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)))

Practica

Edita y crea geometrıas en OpenJump y familiarzate con el WKT.Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 6: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Open Source Geospatial Foundation (OSGeo)

OSGeo apoya, financia ycomercializaherramientas FOSS GIS.Ademas, fomenta elacceso a datosespaciales libres.

http://www.osgeo.org/

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 7: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Clasificacion de proyectos de FOSS SIG (Ramsey, 2007)

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 8: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Infraestructuras de Datos Espaciales (IDE)

Para analizar distintas posibilidades podeis echarle un vistazo aeste White Paper de Opengeo.org

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 9: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Contexto tecnologico del FOSS SIG

Generacion de informes

Las IDEs y los geoportales se centran en la difusion de lainformacion geografica. Sin embargo, las mismas tecnologıasutilizadas por las IDE pueden utilizarse para generar modelosgeograficos y analizar datos “inteligentes”. La primera parte deesta cuestion se puede abordar directamente en las geodatabases.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 10: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

Que es una geodatabase?

Definicion de geodatabase

Una geodatabase es una base de datos con tipos especiales paralos objetos geometricos. Permite almacenar datos geometricos yproporciona funciones especiales, ındices espaciales y lenguajes deconsulta (SQL). Una base de datos espacial es a menudo utilizadocomo un simple contenedor de almacenamiento para los datosespaciales, pero se puede ser mucho mas que eso.

Geodatabases relacionales

• Comerciales: Oracle Spatial, SQL Server (2008), IBM DB2Spatial, IBM Informix Spatial, MapInfo SpatialWare y ESRIArcSDE.

• Libres: MySQL Spatial, SpatiaLite y PostGIS.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 11: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

Otras geodatabases alternativas (NoSQL)

Definicion de NoSQL

Segun nosql-database.org, es la nueva generacion de bases dedatos que se distinguen por las siguientes caracterısticas:

• No-relacionales.

• Distribuidas.

• Open-source

• Horizontalmente escalables.

NoSQL con componente espacial

• Perst, SpaceBase y ¿DB4O-spatial?

• Neo4j y AllegroGraph.

• MongoDB y CouchDB.

• CartoDB y StormDB.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 12: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

SGBD espaciales vs SIG orientados a la aplicacion

La relacion entre SIG y Sistemas Gestores de Bases de Datos(SGBD) es cada vez mas cercana y esta tomando un interescreciente. Existen varios motivos que explican dicho interes:

Ventajas

• Reduccion de la redundanciade datos.

• Aumento de la integridad dedatos.

• Independencia de datos.

• Seguridad de los datos.

• Mantenimiento eficiente.

• Vision Corporativa.

Inconvenientes• Costes mas elevados.

• Personal adicional.

• Aumento del tiempo dedesarrollo.

• Riesgo centralizado.

• Anonimato de los datos.

• Racionalidad excesiva.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 13: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

PostgreSQL

Que es PostgreSQL?

PostgreSQL es un SGBD relacional orientado a objetos y libre.Entre sus principales ventajas podemos encontrar:

• Alta concurrencia y seguridad.

• Amplia variedad de tipos nativos (Numeros de precisionarbitraria, texto de largo ilimitado, direcciones IP, direccionesMAC, arrays, geometrıas, etc).

• Otras caracterısticas (foreign keys, triggers, vistas, integridadtransaccional, herencia de tablas, soporte para transaccionesdistribuidas, etc).

• Funciones en varios lenguajes procedurales (PL/PgSQL, C,C++, Java PL/Java web, PL/Perl, plPHP, PL/Python,PL/Ruby, PL/sh, PL/Tcl, PL/R, etc).

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 14: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

PostGIS

Que es PostGIS?

PostGIS es la extension espacial, FOSS y OGC, para el Sistema deGestion de Base de Datos PostgreSQL. PostGIS anade funcionesespaciales (distancia, area, union, interseccion, etc) y tipos dedatos espaciales a la base de datos. Esta extension es similar aESRI ArcSDE, Oracle Spatial, MySQL-spatial, y DB2 SpatialExtender. La version 2.0.0 tiene otras mejoras notables:

• 3D support.

• Raster/vector support.

• SQL/MM topology support.

• Tiger geocoder with loader for 2010 Tiger data.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 15: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

PostgreSQL y PostGIS con pgAdmin III

Query 1: Hello world!!1 SELECT version ();

2 -- SELECT postgis_full_version ();

3 -- SELECT * FROM pg_tables WHERE

schemaname = ’public ’;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 16: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

Crear una base de datos con una tabla espacial

Creamos una base de datos llamada “testdb”, le anadimos unanueva tabla y una columna de geometrıas:

Query 2: Crear una tabla1 CREATE TABLE ciudades ( id int4 , name varchar (50) );

2 SELECT AddGeometryColumn ( ’ciudades ’, ’the_geom ’, 4326, ’POINT’, 2);

A continuacion, se utiliza el comando INSERT para anadir losprimeros registros en la tabla que acabamos de crear (buscad masen geonames.org ).

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 17: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Introduccion a las geodatabases

Consultas basicas

Query 3: Anadir registros a la tabla ciudades1 INSERT INTO ciudades (id, the_geom , name) VALUES (1, ST_GeomFromText(’POINT

( -0.1257 51.508) ’ ,4326),’London , England ’);

2 INSERT INTO ciudades (id, the_geom , name) VALUES (2, ST_GeomFromText(’POINT

( -81.233 42.983) ’ ,4326),’London , Ontario ’);

3 INSERT INTO ciudades (id, the_geom , name) VALUES (3, ST_GeomFromText(’POINT

(27.91162491 -33.01529)’ ,4326),’East London ,SA’);

Query 4: Consultas basicas1 SELECT * FROM ciudades;

2 -- SELECT id, ST_AsText(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(

the_geom) FROM ciudades;

3 -- SELECT p1.name ,p2.name ,ST_Distance_Sphere(p1.the_geom ,p2.the_geom) FROM

ciudades AS p1, ciudades AS p2 WHERE p1.id > p2.id;

4 -- SELECT p1.name ,p2.name ,ST_Distance_Spheroid(p1.the_geom ,p2.the_geom , ’

SPHEROID [" GRS_1980 " ,6378137 ,298.257222] ’) FROM ciudades AS p1, ciudades AS

p2 WHERE p1.id > p2.id;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 18: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Introduccion

Problema

En una universidad con decenas de edificios y miles de empleadosse quiere optimizar la gestion de personal y el gasto. Los gerentessospechan que el gasto en limpieza parece desproporcionado enalgunos departamentos. Ademas, entre otros diversos problemas,bromean sobre el rumor de que en los edificios proximos a lacafeterıa se hacen mas horas extra. No obstante, no tienen unmodo de analizar este tipo de situaciones. La informacion dependede distintos departamentos independientes:

• Cartografıa digital de los proyectos de cada edificio (Oficinatecnica de proyectos).

• Un codigo para denominar a cada estancia (Gestion deespacios docentes).

• Un completo listado de personal (Gestion economica).

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 19: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Introduccion (II)

Una geodatabase es un medio ideal para solucionar estos y otrosposibles problemas. Analizar los datos de un modo sistematicodependera de que superemos con exito una serie de fases.

Objetivos especıficos

1 Definir un modelo de base de datos (ER, OO, Graph, etc).

2 Escoger un SGBD apropiado (centenares de usuarios).

3 Implementar la base de datos e incorporar toda la informaciondisponible.

4 Desarrollar metodos para responder a las preguntas especıficasde los gestores y del publico en general.

5 Publicar los informes de un modo dinamico, para que losusuarios encuentren lo que necesitan con poco esfuerzo.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 20: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Diagrama Entidad-Relacion basico

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 21: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Creacion de las tablas

CREATE TABLE

Crea una nueva tabla (vacıa) en la base de datos actual y admiteun buen numero de parametros (tablas temporales, herencia,valores por defecto, OIDs, restricciones, etc). El usuario que hayacreado la tabla sera el propietario.

Query 5: Crear tablas1 CREATE TABLE Departamentos (

2 DptoID VARCHAR (10) PRIMARY KEY ,

3 NomDpto VARCHAR (50) NOT NULL);

45 CREATE TABLE Personas (

6 PersId VARCHAR (20) PRIMARY KEY ,

7 Apellido1 VARCHAR (30) NOT NULL ,

8 Apellido2 VARCHAR (30),

9 Nombre VARCHAR (30) NOT NULL ,

10 Ciudad VARCHAR (20) NOT NULL ,

11 FechaNac DATE NOT NULL ,

12 HorasExtra SMALLINT DEFAULT 0 NOT NULL);

Query 6: Crear tablas1 CREATE TABLE Usos (

2 CodUso VARCHAR (10) PRIMARY KEY ,

3 DescUso VARCHAR (50),

4 GrupoUso VARCHAR (20) NOT NULL);

56 CREATE TABLE PuestoDeTrabajo (

7 PersId VARCHAR (20) NOT NULL ,

8 EstanId VARCHAR (20) NOT NULL ,

9 PerfilID VARCHAR (20) NOT NULL ,

10 Perfil VARCHAR (50) NOT NULL ,

11 PerfilGrupo VARCHAR (20) NOT NULL);

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 22: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Plugin SPIT en QGIS

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 23: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Definir claves externas

Mantener la integridad referencial

Los cambios en una tabla pueden implicar modificaciones en otrastablas relacionadas. En los SGBD simples esto se podrıa realizarmanualmente, pero esto puede generar problemas y es muyincomodo en BD grandes. PostgreSQL controla estoautomaticamente mediante el uso de claves ajenas.

Query 7: Anadir claves ajenas1 ALTER TABLE Estancias

2 ADD FOREIGN KEY (coddpto) REFERENCES Departamentos(dptoid);

34 ALTER TABLE Estancias

5 ADD FOREIGN KEY (coduso) REFERENCES Usos(coduso);

67 ALTER TABLE PuestoDeTrabajo

8 ADD FOREIGN KEY (EstanId) REFERENCES Estancias(codigo);

910 ALTER TABLE PuestoDeTrabajo

11 ADD FOREIGN KEY (PersId) REFERENCES Personas(PersId);

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 24: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Carga de datos

INSERT

Inserta nuevas filas en una tabla. Se puede insertar una unica filaespecificada por expresiones de valor, o varias filas, como resultadode una consulta.

Query 8: Insertate en la tabla de Personas1 INSERT INTO Personas VALUES(’PersId ’, ’Apellido1 ’, ’Apellido2 ’, ’Nombre ’, ’

Ciudad ’, ’FechaNac ’, HorasExtra);

Ahora puedes comprobar:

1 Lo que sucede al introducir un registro con una clave primariarepetida en la misma tabla.

2 Lo que sucede al vulnerar las restricciones especificadas en lacreacion de las tablas (Ej: Valores nulos o unicos).

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 25: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Carga de datos masiva

COPY

Utilizaremos este comando para importar y exportar datos entrePostgreSQL y los ficheros del sistema. Este metodo podra resultarmas practico y agil que realizar INSERT.

Query 9: Ejemplo de COPY1 COPY Departamentos FROM ’.../ Departamentos.csv’ WITH DELIMITER ’;’ csv header;

2 -- Ahora copia el resto de ficheros a la base de datos.

¿Importa el orden?

Si importas las estancias o los puestos de trabajo antes que lasotras tablas te habra aparecido un error de regla de integridadreferencial. No se puede hacer referencia a algo que, por lo queconcierne a nuestra base de datos actual, no existe.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 26: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Eliminar datos de la DB

DELETE

Este metodo elimina filas de una tabla que satisfagan la clausulaWHERE o si no hay WHERE, se eliminaran todas las filas de latabla. El resultado es una tabla valida, pero vacıa. Es interesantever como afecta la existencia de claves ajenas:

Query 10: Ejemplo de DELETE1 ----- Intentamos borrar un registro en la tabla Departamentos.

2 --SELECT * FROM Departamentos WHERE dptoid = ’09.24’;

3 --DELETE FROM Departamentos WHERE dptoid = ’09.24’;

4 ----- Comprobamos la existencia de registros relacionados en otras tablas.

5 --SELECT * FROM Estancias WHERE coddpto = ’09.24’;

6 ----- Borramos los registros relacionados de otras tablas.

7 -- DELETE FROM Estancias WHERE coddpto = ’09.24’;

8 ----- Finalmente podemos borrar los registros de la tabla principal.

9 -- DELETE FROM Departamentos WHERE DptoId = ’09.24’;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 27: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas a la BDEl SQL es un lenguaje estandar de consulta de bases de datos conun gran numero de alternativas a la hora de explotar una base dedatos. Existen muchos metodos y palabras clave para filtrar,ordenar y combinar los datos. Vamos a practicar un poco:

Query 11: Ejemplos de operadores1 SELECT * FROM Personas;

2 -- SELECT * FROM Personas WHERE Apellido1 = ’tu apellido ’;

3 -- SELECT Nombre ,Apellido1 FROM Personas WHERE extract(years from age(fechanac))

< 35;

4 -- SELECT Nombre ,Apellido1 FROM Personas WHERE extract(years from age(fechanac))

>= 50 AND extract(years from age(fechanac)) <=70;

5 -- SELECT Nombre ,Apellido1 FROM Personas WHERE extract(years from age(fechanac))

BETWEEN 50 AND 70;

6 -- SELECT NomDpto FROM Departamentos WHERE NomDpto LIKE ’ %GEO %’;

7 -- SELECT DISCTINCT Perfil FROM PuestoDeTrabajo WHERE Perfil LIKE ’ %Cate %’;

8 -- SELECT * FROM Personas ORDER BY Apellido1;

9 -- SELECT Nombre ,Apellido1 FROM Personas ORDER BY extract(years from age(

fechanac)) asc LIMIT 5 OFFSET 1;

1011 -- Investigad los metodos UNION , INTERSECT y EXCEPT

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 28: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Distintas consultas, mismo resultado

Sintaxis y rendimiento

El lenguaje SQL es muy rico y PosgreSQL ofrece muchas otrasposibilidades para manipular y consultar los datos. Ası pues, suelesuceder que hay distintos modos de formular una misma preguntaa una base de datos. En ocasiones la diferencia podra serpuramente sintactica, pero en otras situaciones unas opcionespueden ser mas rapidas y eficientes que otras.

Query 12: Ejemplo de OR1 SELECT Nombre , Apellido1

2 FROM Personas

3 WHERE

4 Ciudad=’Alicante ’ OR

5 Ciudad=’Elche ’ OR

6 Ciudad=’Benidorm ’ OR

7 Ciudad=’Alcoy ’ OR

8 Ciudad=’Torrevieja ’;

Query 13: Ejemplo de IN1 SELECT Nombre , Apellido1

2 FROM Personas

3 WHERE Ciudad IN

4 (’Alicante ’,’Elche ’,’Benidorm ’,’Alcoy

’,’Torrevieja ’);

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 29: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas sobre varias tablas

Query 14: Ejemplo de consultas sobre varias tablas (I)1 SELECT NomDpto ,Codigo

2 FROM Departamentos ,Estancias

3 WHERE Estancias.coddpto=Departamentos.dptoid

4 ORDER BY NomDpto;

Query 15: Ejemplo de consultas sobre varias tablas (II)1 SELECT COUNT(personas.persid)

2 FROM Departamentos ,Estancias ,PuestoDeTrabajo ,Personas

3 WHERE NomDpto LIKE ’ %QUIMICA %’

4 AND Departamentos.dptoid=Estancias.coddpto

5 AND Estancias.codigo=PuestoDeTrabajo.estanid

6 AND PuestoDeTrabajo.PersId=Personas.PersId;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 30: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas sobre varias tablas

Query 16: Ejemplo de consultas sobre varias tablas (III)1 SELECT NomDpto ,count(personas.persid)

2 FROM Departamentos ,Estancias ,PuestoDeTrabajo ,Personas

3 WHERE personas.Horasextra BETWEEN 900 AND 1000

4 AND Departamentos.dptoid = Estancias.coddpto

5 AND Estancias.codigo = PuestoDeTrabajo.estanid

6 AND PuestoDeTrabajo.persid = Personas.persid

7 GROUP BY nomdpto

8 ORDER BY count(personas.persid) desc;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 31: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas complejas

Consultas anidadas

Habitualmente, necesitaremos combinar consultas sencillas pararesponder a preguntas mas complejas. Existen muchos modos parahacer esto, pero el uso de consultas anidadas es el mas basico.

Un ejemplo

Si necesitasemos listar aquellos departamentos cuya superficiemedia es mayor que la media de la universidad, necesitaremosanidar dos consultas:

1 La superficie media de cada departamento.

2 La superficie media de los departamentos de la universidad.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 32: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas anidadas

Query 17: Superficie media de cada departamento1 SELECT Departamentos.nomdpto , SUM(ST_Area(Estancias.geom)) As dptom2

2 FROM Departamentos ,Estancias

3 WHERE

4 Departamentos.dptoid=Estancias.coddpto

5 GROUP BY Departamentos.nomdpto

6 ORDER BY dptom2 desc;

Query 18: Superficie media de los departamentos1 SELECT AVG(dptom2) as supmeddptos

2 FROM

3 (SELECT Departamentos.nomdpto , SUM(ST_Area(Estancias.geom)) As dptom2

4 FROM Departamentos ,Estancias

5 WHERE

6 Departamentos.dptoid=Estancias.coddpto

7 GROUP BY Departamentos.nomdpto

8 ORDER BY dptom2 desc) as avgm2;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 33: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas anidadas

Query 19: Departamentos que superan la superficie media1 SELECT nomdpto , dptom2

2 FROM

3 (SELECT Departamentos.nomdpto , SUM(ST_Area(Estancias.geom)) As dptom2

4 FROM Departamentos ,Estancias

5 WHERE

6 Departamentos.dptoid=Estancias.coddpto

7 GROUP BY Departamentos.nomdpto) as dptom2

8 WHERE

9 dptom2 >

10 (SELECT AVG(dptom2) as superficie_media_de_los_departamentos

11 FROM (SELECT Departamentos.nomdpto , SUM(ST_Area(Estancias.geom)) As dptom2

12 FROM Departamentos ,Estancias

13 WHERE

14 Departamentos.dptoid=Estancias.coddpto

15 GROUP BY Departamentos.nomdpto

16 ORDER BY dptom2 desc) as avgm2)

17 ORDER BY dptom2 desc;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 34: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas actualizadas

Vistas

Las vistas permiten personalizar la apariencia de una base dedatos. Una vista se genera a partir de una seleccion (SELECT) detablas (o vistas) existentes en la misma o en otras bases de datos.Una vez generada, la vista mantiene el enlace con las tablas deorigen. Esto quiere decir que los cambios en los datos que afectenlas tablas de origen tambien afectan las vistas que, de este modo,siempre estaran actualizadas.

Query 20: Creacion de una vista1 CREATE VIEW clasUsos AS

2 SELECT gid , d.dptoid , e.geom , d.nomdpto , e.codigo , u.descuso , st_area(e.geom)

3 FROM Departamentos d, Estancias e, Usos u

4 WHERE

5 d.dptoid=e.coddpto AND

6 e.coduso=u.coduso AND

7 d.nomdpto LIKE’ %GEO %’;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 35: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas espaciales

Query 21: Clasificacion de las estancias segun su superficie1 SELECT DISTINCT categoria , COUNT(codigo)

2 FROM

3 (SELECT codigo , ’a) enorme ’ as categoria

4 FROM Estancias

5 WHERE st_area(geom) >100

6 UNION

7 SELECT codigo , ’b) grande ’ as categoria

8 FROM Estancias

9 WHERE st_area(geom) BETWEEN 50 AND 100

10 UNION

11 SELECT codigo , ’c) nada mal’ as categoria

12 FROM Estancias

13 WHERE st_area(geom) BETWEEN 20 AND 50

14 UNION

15 SELECT codigo , ’d) estandar ’ as categoria

16 FROM Estancias

17 WHERE st_area(geom) BETWEEN 7 AND 20

18 UNION

19 SELECT codigo , ’e) claustro -fobico ’ as categoria

20 FROM Estancias

21 WHERE st_area(geom) < 7) as clasif

22 GROUP BY categoria

23 ORDER BY categoria;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 36: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Consultas espaciales

Query 22: 100 estancias mas proximas a la cafeterıa1 SELECT codigo , coduso

2 FROM Estancias

3 ORDER BY geom <-> st_setsrid(st_makepoint (717185 ,4251205) ,25830) ASC

4 LIMIT 100;

Query 23: Despachos mas proximos a las cafeterıas1 SELECT st_astext(st_collect(Estancias.geom))

2 FROM Cafeterias , Estancias , Usos

3 WHERE

4 Estancias.coduso=Usos.coduso AND

5 Usos.descuso=’Despacho ’ AND

6 st_intersects(

7 (SELECT ST_Buffer(ST_Multi(ST_Collect(geom)) ,100) FROM Cafeterias),

8 Estancias.geom);

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 37: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Reglas geograficas

Reglas y disparadores

Las reglas (“rules”) y los disparadores (“triggers”) son metodosque permiten automatizar procesos dentro de las bases de datos.Ya habeis visto algun ejemplo de “triggers” cuando habeisatentado contra la integridad referencial de las tablas. Aparecenmensajes que os informan de que no podıais borrar un registro,puesto que habıa registros de otras tablas relacionados con el queintentabais borrar con el DELETE. De un modo similar, estoscomportamientos pueden muy utiles para gestionar la informaciongeografica. Ahora veremos un ejemplo de trigger y mas adelanteutilizaremos una regla para solucionar un ejercicio.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 38: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Reglas geograficas (con un “trigger”)

Query 24: Nadie trabajara en...1 CREATE OR REPLACE FUNCTION comprueba_superficie ()

2 RETURNS trigger AS

3 $BODY$

4 BEGIN

5 IF new.codigo

6 IN (SELECT codigo FROM estancias WHERE st_area(geometria) < 6) THEN

7 RAISE EXCEPTION ’ERROR FATAL. Intentas insertar una persona con NIF % en

la estancia %, que tiene una superficie de menos de 6 metros

cuadrados. ¿Quieres emparedarlo?’, NEW.persid , NEW.codigo;

8 END IF;

9 RETURN NEW;

10 END;

11 $BODY$

12 LANGUAGE plpgsql VOLATILE

13 COST 100;

14 ALTER FUNCTION comprueba_superficie ()

15 OWNER TO pgis;

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 39: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Gestion de espacios de una corporacion

Ejercicios libres (buscate la vida)

1 Teniendo en cuenta que los costes de la limpieza de launiversidad dependen del uso de las estancias y de susuperficie. Responde:

• ¿Cuales son 5 los departamentos con mayores necesidades?• ¿Cuanto cuesta la limpieza de las estancias vacıas de la

universidad?• Indica cuales son los departamentos que mas “despilfarran”.

2 ¿Es cierto que las personas que trabajan cerca de la cafeterıa(XY) hagan mas horas extra? Propon una idea de comocomprobarlo.

3 La universidad necesita mantener un registro de todas laspersonas que ya no trabajan allı. Se que sera difıcil pero debesdimitir ;-)

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 40: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Solucion experta a la gestion de infraestructuras

Gestion de espacios en la Universidad de Alicante

¿Que es SIGUA?

SIGUA es un Sistema de Informacion especializado en la gestion deespacios universitarios basado diferentes estandares y tecnologıasFOSS. El nucleo principal SIGUA es una geodatabase montada enPostgreSQL, que utiliza la extension PostGIS para la gestion yanalisis de la informacion espacial.

SIGUA.NET

Varias instituciones han mostrado interes de tener su propioSIGUA. Sin embargo, la estructura de las universidades y los datosdisponibles pueden variar (cada universidad tendra su propiodiagrama ER). SIGUA.NET es una iniciativa para distribuir laestructura basica de SIGUA y que cada entidad pueda adaptarla asus necesidades.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 41: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Solucion experta a la gestion de infraestructuras

La geodatabase de SIGUA

SIGUA en cifras• 10 Esquemas.

• 67 Tablas.

• 104 Vistas.

• 1.217 Funciones.

• 24 Reglas y disparadores.

• 5 Roles.

• Backups diarios.

• 3 API (SOAP, REST y desktop).

• Mas todo lo de PostgreSQL/PostGIS.

Instalador de SIGUA.NET en GitHub

https://github.com/labgeo/siguanet-dbdemo

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 42: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Solucion experta a la gestion de infraestructuras

La geodatabase de SIGUA.NET

¿Que contiene?

SIGUA.NET proporciona lo esencial para tener una base de datossimilar a la de SIGUA pero mucho mas generica y adaptable a lagestion de espacios de otras organizaciones. Ademas de laestructura de la base de datos tambien incluye unos datos deejemplo para que el usuario pueda comprobar toda la funcionalidaddel esquema publico de SIGUA.

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 43: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Solucion experta a la gestion de infraestructuras

Inteligencia detras de SIGUA

Ejemplos de reglas

La estructura de las bases de datos de SIGUA o la de SIGUA.NETes mucho ma compleja que la del ejemplo que hemos desarrolladoen este curso, por lo que permite responder a un numero depreguntas incluso mayor de lo que hemos podido imaginar paranuestro modesto ejemplo. A continuacion, podemos ver un par deejemplos interesantes de reglas y disparadores existentes en SIGUA:

1 ¿que sucede al ubicar a un empleado en una estanciademasiado pequena o que ya esta abarrotada?

2 ¿que sucede al ubicar a un empleado en una estancia cuyo usono es apropiado?

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı

Page 44: Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio

Presentacion Geodatabases Mini proyecto SIGUA.NET

Solucion experta a la gestion de infraestructuras

Gracias por vuestra atencion!!

Las geodatabases en el panorama del FOSS GIS Introduccion y casos de estudio Benito M. Zaragozı