Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

PostgreSQL — Intermedio

10h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • PostgreSQL

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a profesionales que ya dominan los fundamentos de PostgreSQL y necesitan dar el salto hacia un uso profesional y robusto del motor relacional. A lo largo de las 10 horas del curso, los participantes profundizarán en el diseño de esquemas normalizados, la elección razonada de estrategias de indexación, la programación en PL/pgSQL y la escritura de consultas analíticas avanzadas con CTEs y funciones de ventana; culminando con el análisis de problemas reales de concurrencia y la integración de la base de datos con aplicaciones externas. Al finalizar, el alumno será capaz de diseñar, optimizar y mantener una base de datos PostgreSQL de nivel productivo, tomando decisiones técnicas justificadas en cada capa del sistema.

  1. Diseñar un esquema relacional normalizado hasta 3FN para un dominio concreto, definiendo las restricciones de integridad adecuadas y justificando cada decisión de diseño.
  2. Comparar el almacenamiento en JSONB frente a columnas relacionales convencionales y seleccionar la solución más adecuada en función de los requisitos de consulta e indexación del caso planteado.
  3. Depurar consultas SQL complejas con múltiples JOIN o subconsultas correlacionadas utilizando EXPLAIN ANALYZE, identificando el nodo problemático y aplicando la corrección correspondiente.
  4. Diseñar funciones y procedimientos almacenados en PL/pgSQL con parámetros tipados y manejo estructurado de excepciones para encapsular lógica de negocio reutilizable.
  5. Justificar la elección del tipo de índice (B-tree, GIN, GiST) para un conjunto de consultas dado, creando los índices seleccionados y verificando su uso efectivo mediante EXPLAIN ANALYZE.
  6. Adaptar consultas iterativas o con subconsultas anidadas reescribiéndolas con CTEs y funciones de ventana (ROW_NUMBER, RANK, LAG, LEAD) para mejorar su legibilidad y corrección.
  7. Integrar vistas materializadas en un flujo de análisis, configurando su refresco y evaluando su comportamiento frente a vistas estándar en términos de consistencia y coste.
  8. Depurar escenarios de concurrencia con bloqueos mediante pg_locks y pg_stat_activity, proponiendo una solución con el nivel de aislamiento de transacciones adecuado.
  9. Integrar PostgreSQL con una aplicación externa a través de un ORM o driver nativo, implementando operaciones CRUD que gestionen correctamente los errores de integridad referencial en la capa de aplicación.

Bloque 1 — Diseño avanzado de esquemas y tipos de datos El primer bloque aborda el diseño relacional a fondo: los participantes aprenderán a normalizar un esquema hasta tercera forma normal partiendo de un dominio real, definiendo claves primarias y foráneas, restricciones CHECK y UNIQUE, y documentando el razonamiento detrás de cada decisión estructural. A continuación se analiza el tipo JSONB como alternativa para datos semiestructurados, comparándolo con el modelo tabular puro en cuanto a flexibilidad, rendimiento de consulta e impacto en la estrategia de indexación, de modo que el alumno pueda elegir con criterio cuándo hibridar ambos enfoques.

Bloque 2 — Optimización de consultas e indexación Este bloque se centra en el rendimiento. Se trabaja la lectura e interpretación de planes de ejecución con EXPLAIN ANALYZE para localizar nodos costosos en consultas con múltiples JOIN o subconsultas correlacionadas, y se practica la corrección sistemática de dichos problemas. Paralelamente, se estudian los tipos de índice disponibles en PostgreSQL — B-tree, GIN y GiST — y se enseña a elegir el más apropiado según el patrón de consulta, crearlo y confirmar su activación real en el plan de ejecución.

Bloque 3 — SQL analítico avanzado y vistas materializadas Los participantes aprenden a sustituir consultas iterativas y subconsultas anidadas por expresiones de tabla comunes (CTEs) y funciones de ventana (ROW_NUMBER, RANK, LAG, LEAD), ganando legibilidad sin sacrificar corrección. El bloque cierra con las vistas materializadas: se configura su ciclo de refresco mediante REFRESH MATERIALIZED VIEW y se compara su comportamiento — consistencia, latencia y coste de mantenimiento — con el de las vistas estándar, integrándolas en un flujo de análisis real.

Bloque 4 — PL/pgSQL y extensibilidad Se introduce la programación procedural nativa de PostgreSQL. Los participantes diseñan funciones y procedimientos almacenados con parámetros tipados, lógica condicional y bloques de manejo de excepciones, encapsulando reglas de negocio que de otro modo quedarían dispersas en la capa de aplicación. Se hace especial énfasis en las buenas prácticas de reutilización y en la diferencia semántica entre función y procedimiento en versiones modernas de PostgreSQL.

Bloque 5 — Concurrencia, transacciones e integración con aplicaciones El bloque final aborda dos áreas críticas en entornos de producción. Por un lado, se analiza la gestión de la concurrencia: se reproducen y diagnostican escenarios de deadlock y lock wait timeout consultando pg_locks y pg_stat_activity, y se selecciona el nivel de aislamiento de transacciones que resuelve cada caso. Por otro, se cierra el curso con la integración de PostgreSQL en una aplicación externa —mediante ORM o driver nativo— implementando operaciones CRUD completas que respetan las restricciones del esquema y gestionan los errores de integridad referencial en la propia capa de aplicación.

  • PostgreSQL 15 o superior instalado localmente o accesible en un entorno de práctica en la nube.
  • Cliente psql o herramienta gráfica equivalente (pgAdmin 4, DBeaver, etc.).
  • Para el Bloque 5 de integración con aplicaciones: entorno de ejecución con Python 3.10+ (con psycopg2 o SQLAlchemy) o Node.js 18+ (con pg), según la pista elegida por el alumno.
  • Acceso a un sistema operativo con permisos suficientes para instalar extensiones de PostgreSQL (pg_stat_statements activado en postgresql.conf).
  • Mínimo 4 GB de RAM disponibles para el proceso de PostgreSQL durante los ejercicios de optimización.

Para aprovechar este curso el alumno debe haber completado POS01 — PostgreSQL Iniciación o disponer de conocimientos equivalentes: manejo fluido de sentencias SELECT, INSERT, UPDATE y DELETE; comprensión de los tipos de datos básicos de PostgreSQL; uso de JOIN simples y agrupaciones con GROUP BY; creación de tablas con restricciones elementales; y familiaridad con la herramienta psql o un cliente gráfico equivalente.