Introducción
El curso de SQL Avanzado está diseñado para profesionales que ya tienen un dominio intermedio de SQL y desean profundizar en el uso de bases de datos relacionales, optimización de consultas, estructuras complejas y automatización avanzada. En 20 horas, en formato online y en directo, se abordarán temas esenciales para trabajar con bases de datos de alto rendimiento, arquitecturas de datos empresariales y análisis de consultas complejas, con un enfoque técnico, práctico y orientado a entornos reales de empresa.
Objetivos
Al finalizar el curso, los participantes podrán:
- Escribir consultas complejas con subconsultas, expresiones de tabla comunes (CTE), consultas recursivas y funciones de ventana.
- Diseñar y optimizar esquemas de base de datos (normalización, relaciones, índices, constraints) según necesidad.
- Crear y gestionar objetos de base de datos como vistas, procedimientos almacenados (stored procedures), funciones definidas por el usuario y triggers.
- Analizar planes de ejecución y aplicar técnicas de optimización de consultas para mejorar rendimiento y eficiencia.
- Gestionar transacciones, concurrencia y aislamiento cuando trabaje en entornos multiusuario.
- Manipular datos avanzados: agregaciones complejas, pivot/unpivot, ranking, totales acumulados, análisis de series temporales.
- Combinar capacidades estándar de SQL con extensiones/funcionalidades avanzadas (según gestor) para tareas corporativas exigentes.
Índice de Contenidos
Módulo 1. Repaso sólido y fundamentos avanzados
- Repaso de SELECT, JOINs, subconsultas básicas, GROUP BY, agregaciones.
- Revisión de estructuras: tablas, claves primarias/foráneas, normalización, constraints.
- Revisión de tipos de datos y consideraciones comunes al modelar datos a escala.
Módulo 2. Consultas complejas con subconsultas, CTE y recursividad
- Subconsultas anidadas (in SELECT, WHERE, FROM).
- Expresiones de tabla comunes (CTE — Common Table Expressions).
- Consultas recursivas: manejo de jerarquías, árboles y relaciones padre-hijo.
- Uso de CTE vs subconsultas: ventajas, legibilidad, mantenimiento.
Módulo 3. Funciones de ventana, ranking y agregaciones avanzadas
- Introducción a funciones de ventana (OVER, PARTITION BY, ORDER BY).
- Aplicaciones: totales acumulados, medias móviles, análisis por ventanas, ranking, diferencia entre filas (LAG, LEAD), primeros/últimos valores, percentiles, agrupaciones avanzadas.
- Uso de GROUPING SETS, ROLLUP, CUBE (si el SGBD lo admite) para agregaciones multidimensionales.
Módulo 4. Diseño avanzado de esquemas, normalización y optimización estructural
- Repaso de normalización y buenas prácticas de modelado.
- Indices: naturales, compuestos, cuándo y cómo usarlos.
- Vistas (views): creación y utilidad para simplificación, seguridad y mantenibilidad.
- Consideraciones de integridad, constraints y buenas prácticas estructurales.
Módulo 5. Programación en base de datos: stored procedures, funciones y triggers
- Qué son los procedimientos almacenados y sus ventajas.
- Creación de funciones definidas por el usuario, parametrización, modularidad.
- Triggers (disparadores): uso automático ante inserción, actualización o borrado — cuándo y cómo implementarlos.
- Uso de lógica procedural en SQL (si el SGBD lo permite, como en T-SQL, PL/pgSQL u otros).
Módulo 6. Optimización de consultas y rendimiento
- Análisis de planes de ejecución: cómo interpretarlos, identificar cuellos de botella.
- Estrategias de indexación, estadísticas, uso eficiente de JOINs y subconsultas.
- Diseño de consultas basadas en conjuntos (set-based) vs soluciones iterativas.
- Buenas prácticas: legibilidad, modularidad, documentación, mantenimiento en entornos de datos reales.
Módulo 7. Gestión de datos complejos y tareas avanzadas
- Operaciones avanzadas de manipulación: merge, upsert, manejo de datos temporales/fechas, series temporales.
- Pivot / Unpivot, agregaciones sobre strings, funciones analíticas.
- Transacciones, control de concurrencia, aislamiento, integridad de datos en entornos multiusuario (si el SGBD lo soporta).