Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una 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.
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.JOIN o subconsultas correlacionadas utilizando EXPLAIN ANALYZE, identificando el nodo problemático y aplicando la corrección correspondiente.B-tree, GIN, GiST) para un conjunto de consultas dado, creando los índices seleccionados y verificando su uso efectivo mediante EXPLAIN ANALYZE.ROW_NUMBER, RANK, LAG, LEAD) para mejorar su legibilidad y corrección.pg_locks y pg_stat_activity, proponiendo una solución con el nivel de aislamiento de transacciones adecuado.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.
psql o herramienta gráfica equivalente (pgAdmin 4, DBeaver, etc.).psycopg2 o SQLAlchemy) o Node.js 18+ (con pg), según la pista elegida por el alumno.pg_stat_statements activado en postgresql.conf).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.