SQL II: diseñar, indexar y transaccionar

Modelos, índices, transacciones y consultas que escalan, sobre SQLite de verdad.

13 aulas · 7 horas de práctica · en el navegador, sin instalar nada

Temario

  1. Modelar sin duplicar — Entidades, claves primarias y relaciones 1-N y N-N con REFERENCES.
  2. Restricciones: reglas que cuida la base — NOT NULL, UNIQUE, CHECK, DEFAULT y ON DELETE CASCADE: la base rechazando lo que no debería pasar.
  3. Normalizar: de la planilla a las tablas — De una sola tabla repetida a varias sin redundancia: por qué la duplicación es el problema, no una molestia estética.
  4. Taller — El modelo de la tienda — El primer reporte de gerencia, armado sobre las tablas recién separadas: cuánto gastó cada cliente, y quiénes gastan de verdad.
  5. Índices: por qué una consulta es lenta — De recorrer la tabla entera a saltar directo a la fila: CREATE INDEX, EXPLAIN QUERY PLAN e índices compuestos.
  6. Transacciones: todo o nada — BEGIN, COMMIT y ROLLBACK: cómo agrupar varias operaciones para que pasen todas juntas, o ninguna.
  7. CTEs y subconsultas — WITH para nombrar un resultado intermedio, EXISTS para preguntar sin traer datos, y la trampa de NOT IN con NULL.
  8. Window functions — ROW_NUMBER, RANK, SUM() OVER y LAG/LEAD: calcular sobre un grupo sin perder el detalle de cada fila.
  9. Taller — La consulta lenta — Diagnosticar por qué dos consultas de la tienda son lentas, indexar lo justo, y resolver el reporte que las motivó.
  10. Vistas y triggers — CREATE VIEW para empaquetar una consulta con nombre, y CREATE TRIGGER para que la base reaccione sola a un cambio.
  11. UPSERT, fechas y JSON — ON CONFLICT DO UPDATE para insertar-o-actualizar en un solo paso, strftime para agrupar fechas, json_extract para leer datos semiestructurados.
  12. Diseñar para el análisis — Tabla de hechos y dimensiones: por qué un reporte se arma distinto a como se guardan los datos operativos.
  13. Taller — El cierre de mes — El reporte de cierre: cuánto vendió cada categoría en enero, rankeadas, sin perder de vista cuántos pedidos hay detrás de cada número.

Es parte de