En esta clase explicaremos que PostgreSQL es un motor de base de datos relacional robusto y de código abierto, utilizado ampliamente en la industria para almacenar datos alfanuméricos convencionales. Sin embargo, cuando surge la necesidad de representar la ubicación espacial de un elemento (como coordenadas, puntos, líneas o polígonos) de una manera que vaya más allá de simples columnas de texto o números, es necesario extender las capacidades del motor. Aquí es donde entra PostGIS, una extensión que habilita el componente geoespacial en bases de datos PostgreSQL, permitiendo almacenar geometrías complejas y realizar análisis espaciales directamente mediante SQL.

Entenderemos que, mientras una tabla convencional almacena atributos como nombres o identificadores, una tabla espacial incluye una columna adicional, usualmente llamada geom, que almacena la información de la geometría en un formato codificado.

Instalación del Software Necesario

Para el desarrollo de la práctica, utilizaremos el instalador oficial de PostgreSQL para Windows. Durante el proceso de instalación, es crucial definir y recordar la contraseña del superusuario (postgres) y mantener el puerto por defecto 5432.

Una vez finalizada la instalación de PostgreSQL, se ejecutará una herramienta llamada Stack Builder. Esta utilidad nos permite descargar e instalar extensiones adicionales. Dentro de Stack Builder, seleccionaremos la opción de Spatial Extensions y elegiremos la versión de PostGIS correspondiente.

Acceso y Administración con pgAdmin

La administración de nuestras bases de datos se realizará a través de pgAdmin, la interfaz gráfica por defecto de PostgreSQL. Al abrir pgAdmin, nos conectaremos al servidor local ingresando la contraseña que definimos previamente. Podremos verificar si la extensión PostGIS está instalada revisando la sección de "Extensions" dentro de cada base de datos.

Creación de Bases de Datos Espaciales

Abordaremos dos métodos para crear una base de datos habilitada espacialmente:

Método 1: Uso de Plantilla
Al crear una nueva base de datos, en la pestaña de definición seleccionaremos el Template o plantilla que se creó durante la instalación de PostGIS.

Método 2: Habilitación Manual mediante SQL
Si creamos una base de datos estándar, utilizaremos la herramienta de consultas (Query Tool) para activar PostGIS:

SQL
CREATE EXTENSION postgis;

Restauración de Datos de Prueba

Para practicar consultas reales, cargaremos la base de datos de ejemplo de la ciudad de Nueva York (nyc_data.backup). El proceso se realiza creando una base de datos vacía y utilizando la opción de Restore. Si se presenta un error, se soluciona yendo a File > Preferences > Binary Paths y asignando la ruta de la carpeta bin de PostgreSQL.

Consultas Espaciales y Visualización

Una vez cargados los datos, utilizaremos SQL para interactuar con la información espacial:

SQL
-- Selección básica
SELECT * FROM nyc_neighborhoods;

-- Visualización en mapa (transformar a WGS84)
SELECT name, ST_Transform(geom, 4326) AS geom
FROM nyc_neighborhoods;

-- Filtrado por atributo
SELECT * FROM nyc_neighborhoods
WHERE boroname = 'Brooklyn';

Funciones de Agregación

PostGIS y PostgreSQL permiten realizar análisis estadísticos rápidos con funciones como COUNT, SUM y agrupación con GROUP BY:

SQL
-- Contar registros
SELECT COUNT(*) FROM nyc_streets;

-- Sumar población del Bronx
SELECT SUM(popn_total) FROM nyc_census_blocks
WHERE boroname = 'The Bronx';

-- Agrupar barrios por distrito
SELECT boroname, COUNT(*)
FROM nyc_neighborhoods
GROUP BY boroname;