las geodatabases en el panorama del foss gis. introduccion y casos de estudio
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
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı
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ı