SIG

Bases de Datos Espaciales

José Samos Jiménez
()
Dpto. LSI
Universidad de Granada

Citar y Licencia: https://doi.org/10.6084/m9.figshare.27315681.v1

Vídeo: https://youtu.be/2zP6KjmZzaw

Contenido


  • Datos geográficos y BD Espaciales

  • Estándares en BD Espaciales

  • Historia de las BD Espaciales

Datos geográficos y BD Espaciales

Ejemplo de datos geográficos (i)

Ejemplo de datos geográficos (y ii)


Ciudad Código Postal Calle Número
Madrid 28013 Prta del Sol 7
Barcelona 08007 Pg. de Gràcia 43
Granada 18009 C. Mariana Pineda 21


Ciudad Código Postal Calle Número Latitud Longitud
Madrid 28013 Prta del Sol 7 40.4166 -3.7038
Barcelona 08007 Pg. de Gràcia 43 41.3917 2.1649
Granada 18009 C. Mariana Pineda 21 37.1751 -3.5982


Ciudad Código Postal Calle Número geom
Madrid 28013 Prta del Sol 7 POINT(-3.7038, 40.4166)
Barcelona 08007 Pg. de Gràcia 43 POINT(2.1649, 41.3917)
Granada 18009 C. Mariana Pineda 21 POINT(-3.5982, 37.1751)

BD Espaciales


  • Gestión centralizada y control de acceso

  • Normalización de datos, restricciones de integridad

  • Escalabilidad


  • Consultas espaciales

  • Indexación espacial

  • Transformación de SRC

  • Interoperabilidad con aplicaciones SIG

Consultas espaciales

SELECT d.*
FROM direcciones AS d, 
    (SELECT ST_SetSRID(ST_MakePoint(2.1525, 41.3902), 4326) AS centro) 
        AS u
WHERE ST_DWithin(d.geom::geography, u.centro::geography, 5000);
SELECT 
    d1.id AS punto1_id,
    d2.id AS punto2_id,
    ST_Distance(d1.geom::geography, d2.geom::geography) AS distancia_m
FROM 
    direcciones AS d1,
    direcciones AS d2
WHERE 
    d1.id < d2.id;

Indexación espacial


GiST (Generalized Search Tree): R-tree

CREATE INDEX idx_dir_geom_gist ON direcciones USING GIST (geom);

SP-GiST (Space-Partitioned Generalized Search Tree): quad-tree

CREATE INDEX idx_dir_geom_spgist ON direcciones USING SPGIST (geom);

Transformación de SRC


SELECT DISTINCT ST_SRID(geom) AS srid
FROM direcciones;

-- 4326
SELECT 
    id,
    "Ciudad",
    "Código Postal",
    "Calle",
    "Número",
    ST_Transform(geom, 25830) AS geom_utm
FROM 
    direcciones;

Interoperabilidad con aplicaciones SIG

Estándares en BD Espaciales


  • Definición y consultas

    • OGC
      • Simple Features
      • SFS (Simple Feature SQL)
        • WKB y WKT
    • ISO
      • SQL/MM Spatial
  • Almacenar geometrías

    • GeoJSON

Simple Features - geometrías espaciales

Fuente: Geocomputation with R, CC BY-NC-ND 4.0

Simple Features - ejemplos

Fuente: Geocomputation with R, CC BY-NC-ND 4.0

WKB y WKT


Id
([PK] integer)
Ciudad
(character)
Código Postal
(character)
Calle
(character)
Número
(character)
geom
(geometry)
1 Madrid 28013 Prta del Sol 7 0101000020E6100000E11B52E85FA10DC0AC89990752354440
2 Barcelona 08007 Pg. de Gràcia 43 0101000020E61000002C13F4C8D75101409C983A5323B24440
3 Granada 18009 C. Mariana Pineda 21 0101000020E610000016CCB2361CC90CC0D4678B9766964240
SELECT id, "Ciudad", "Código Postal",  "Calle", "Número", ST_AsText("geom") as geom 
FROM public.direcciones
ORDER BY id ASC;
Id
([PK] integer)
Ciudad
(character)
Código Postal
(character)
Calle
(character)
Número
(character)
geom
(geometry)
1 Madrid 28013 Prta del Sol 7 POINT(-3.703796210294499 40.41656584736788)
2 Barcelona 08007 Pg. de Gràcia 43 POINT(2.164962358425688 41.39170303689136)
3 Granada 18009 C. Mariana Pineda 21 POINT(-3.598198344546755 37.17500585848725)

Operaciones


Grupo Funciones
Relaciones espaciales ST_Contains, ST_Disjoint, ST_Equals, ST_Intersects, ST_Overlaps, ST_Touches, ST_Within
Proximidad y distancia ST_Buffer, ST_Distance
Transformaciones - ST_AsBinary, ST_AsText
- ST_Area, ST_Length, ST_Perimeter
- ST_Centroid, ST_ConvexHull, ST_Envelope
- ST_Difference, ST_Intersection, ST_Union
Operaciones adicionales (no OGC) ST_AsGeoJSON, ST_Simplify, ST_Transform

Historia de las BD Espaciales


  • Años 90:
    • Oracle Spatial
    • IBM DB2 Spatial Extender
  • Años 2000:
    • Adopción estándares de interoperabilidad (OGC)
    • PostgreSQL y PostGIS
  • Actualidad:
    • Big Data, BD NoSQL
    • BigQuery, MongoDB

SGBD Espaciales


SGBD Tipo Software Modelos Escalabilidad
PostGIS (PostgreSQL) Relacional Open Source Vectorial y Ráster Alta
MySQL (Spatial) Relacional Open Source Vectorial Moderada
Spatialite (SQLite) Relacional Open Source Vectorial y Ráster Baja
Oracle Spatial Relacional Privativo Vectorial y Ráster Alta
Microsoft SQL Server Relacional Privativo Vectorial Alta
MongoDB NoSQL Open Source Vectorial (GeoJSON) Alta
Neo4j (con Spatial) NoSQL Open Source Vectorial Moderada
GeoCassandra (Cassandra) NoSQL Open Source Vectorial Muy alta (distribuida)
Google BigQuery SQL (columnar) Privativo Vectorial (WKT, GeoJSON) Muy alta
Amazon Redshift SQL (columnar) Privativo Vectorial (WKT, WKB) Muy alta