GuíaIntermedio

Guía de Calidad de Datos y Testing en SQL

Aprende a medir y garantizar la calidad de los datos con SQL, y a testear el SQL mismo. Data quality aparece en buena parte de las vacantes de datos: se trata de detectar datos incompletos, inválidos, duplicados e inconsistentes, codificar reglas de negocio como consultas que devuelven las violaciones, y probar que tus consultas y migraciones dan el resultado correcto. Trabajas sobre la base de datos de Reservo, poblada a propósito con datos sucios reales, y sales sabiendo construir un sistema de chequeos de calidad de datos que corre y reporta.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Entender las dimensiones de calidad de datos (completitud, validez, unicidad, consistencia) y la diferencia entre prevenir con una restricción y detectar con un chequeo
  • Medir completitud: analizar NULLs, calcular el porcentaje de completitud por columna y distinguir 0, NULL y cadena vacía
  • Detectar validez: valores fuera de rango o de dominio, y formatos de fecha inválidos, expresados como un SELECT que representa la regla
  • Encontrar duplicados con GROUP BY... HAVING COUNT(*) > 1, incluidos los "casi iguales", y decidir cuál registro conservar
  • Cazar inconsistencias: filas huérfanas sin integridad referencial, campos que no cuadran entre sí y totales que no coinciden
  • Codificar reglas de negocio como aserciones SQL que devuelven las violaciones, donde cero filas significa que todo está sano
  • Testear el SQL mismo: fixtures con resultado esperado, aserciones PASS/FAIL, y testear una migración comparando antes y después
  • Construir el sistema de calidad de datos completo de Reservo: chequeos por dimensión, un reporte de salud agregado y los tests de las consultas clave

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Analistas y devs de datos que heredan bases con datos sucios y necesitan un proceso sistemático para detectarlos
  • Quien se prepara para roles de datos donde la calidad de datos aparece explícitamente en la vacante
  • Equipos que codifican reglas de negocio, como "un reembolso nunca supera el cargo", pero no las verifican con SQL
  • Devs que quieren testear sus consultas y migraciones antes de confiar en el resultado

Requisitos y materiales

  • SQL básico: SELECT, WHERE, GROUP BY
  • Python 3 instalado (el módulo `sqlite3` viene en la librería estándar)
  • Se recomienda haber visto JOINs y CTEs, o cursar en paralelo la guía de SQL avanzado

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

  • Introducción al Módulo 1: Datos malos y las dimensiones de la calidad
  • Por qué la calidad de datos importa: el costo de un dato malo
  • Qué es una dimensión de calidad
  • Completitud y validez
  • Unicidad y consistencia
  • Exactitud y actualidad
  • Prevenir con restricciones vs detectar con chequeos
  • Mini-proyecto: cargar el Reservo sucio

  • Módulo 2 — Completitud: ¿está todo lo que debería estar?
  • Qué es la completitud y por qué un `NULL` duele
  • `IS NULL`: listar las filas incompletas
  • `COUNT(*)` vs `COUNT(col)`: contar lo que falta
  • El porcentaje de completitud por columna
  • El trío `0` vs `NULL` vs `''`: tres cosas distintas
  • El perfil de completitud de una tabla
  • Mini-proyecto: el reporte de completitud de Reservo

  • Introducción al Módulo 3: Validez — rangos, formatos y dominios
  • Validez de rango: números fuera de límite
  • Validez de dominio: valores fuera del conjunto permitido con `NOT IN`
  • Validez de formato: fechas ISO 8601 con `date()`
  • El patrón `WHERE NOT (regla)`: el molde único de todo chequeo
  • Validez con `GLOB` y patrones: validar la forma del texto
  • Por qué chequear validez aunque haya un `CHECK`
  • Mini-proyecto: los chequeos de validez de Reservo

  • Introducción al Módulo 4: Unicidad y duplicados
  • Qué es un duplicado y por qué duele
  • El patrón canónico: `GROUP BY ... HAVING COUNT(*) > 1`
  • El `UNIQUE` que faltó: prevenir vs detectar
  • Duplicados exactos vs casi-iguales: `LOWER(TRIM())`
  • Ver las filas duplicadas completas
  • Criterio para decidir cuál conservar
  • Mini-proyecto: encontrar y resolver duplicados en Reservo

  • Introducción al Módulo 5: Consistencia e integridad referencial
  • Qué es la consistencia y la integridad referencial
  • Huérfanas con `LEFT JOIN ... IS NULL`
  • `PRAGMA foreign_key_check` y por qué SQLite las dejó entrar
  • Consistencia entre campos: `end_at > start_at`
  • Recalcular `price_cents` con la regla
  • Totales que deben conciliar: `payments` vs `price_cents`
  • Mini-proyecto: chequeos de consistencia de Reservo

  • Introducción al Módulo 6: Reglas de negocio como aserciones SQL
  • Qué es una aserción de calidad (el patrón "0 filas = PASS")
  • Regla: un reembolso nunca supera el cargo
  • Regla: no hay dos reservas confirmadas solapadas en la misma sala
  • Regla: el precio corresponde al tier del socio
  • Regla: la coherencia entre el estado y los pagos de una reserva
  • Aserción de calidad vs `CHECK` de tabla: detectar vs prevenir
  • Mini-proyecto: la batería de reglas de negocio de Reservo

  • Módulo 7 — Testear tu SQL: ¿tu consulta da la respuesta correcta?
  • Por qué testear una consulta: el número plausible pero falso
  • El fixture conocido: entrada controlada, salida esperada
  • La aserción SQL: que la base emita el veredicto
  • Testear una migración: el antes, el después y los invariantes
  • Un runner de tests de datos en Python
  • Frameworks de testing de datos: el mismo patrón, con nombre
  • Mini-proyecto: un suite de tests para las consultas de Reservo

  • Módulo 8: El sistema de calidad de datos de Reservo
  • Reunir los chequeos por dimensión
  • El patrón de un chequeo reutilizable y nombrado
  • El tablero de salud que agrega con UNION ALL
  • El puntaje de salud global y su interpretación
  • El runner de tests en Python que valida los chequeos
  • Empaquetar el sistema: quality.sql + run_checks.py
  • Proyecto: el sistema de calidad de datos de Reservo

Dónde encaja

Esta guía es parte de algo más grande

Se estudia dentro de estos programas, con acompañamiento y fechas.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!