Ruta Base de Datos Jr: aprende gratis desde cero en 6 semanas
De cero a resolver tareas sencillas de base de datos en un equipo real, con SQL y PostgreSQL (y nociones de MongoDB y Redis). Con videos gratis en español, explicaciones en palabras simples, retos prácticos, cuestionarios y revisión de un docente.
- Nivel: Principiante
- 6 semanas
- 58 retos
- 29 videos gratis
- 48 preguntas
- Certificado al terminar
El contenido de las rutas está en español.
Temario semana a semana
Semana 1 · SQL básico + Git
Una base de datos relacional es una biblioteca enorme: cada estante es una tabla, cada libro una fila y cada dato del libro (título, autor, año) una columna. SQL es el idioma para pedirle cosas al bibliotecario. Ejemplo: SELECT titulo FROM libros WHERE anio = 2020 ORDER BY titulo; pide los títulos de 2020 en orden alfabético. Git guarda cada versión de tu trabajo, como partidas guardadas.
Error típico de principiante: hacer UPDATE o DELETE sin WHERE: cambias o borras toda la tabla. Escribe siempre primero el SELECT con el mismo WHERE para ver qué filas tocarás.
Temas de la semana 1
- Qué es una base de datos relacional: tablas, filas, columnas, llave primaria
SELECT, alias (AS),DISTINCT,LIMITWHEREcon=,<>,>,AND,OR,IN,BETWEEN,LIKE/ILIKE,IS NULLORDER BYascendente y descendente, por varias columnas- Funciones de agregación:
COUNT,SUM,AVG,MIN,MAXy cómo tratan losNULL - Funciones útiles:
UPPER,LOWER,CONCAT/||,COALESCE,ROUND,EXTRACT,CASE WHEN INSERT,UPDATE,DELETEbásicos (siempre conWHERE)- Git:
clone,branch,commit,push,pull, Pull Request, resolver un conflicto simple
Cursos: "SQL de cero: Tu guía práctica con PostgreSQL" (Fernando Herrera) + videos de SQL y Git de MoureDev en YouTube.
10 retos · cuestionario de 8 preguntas
Semana 2 · JOINs, GROUP BY y subconsultas
Un JOIN junta información de varias tablas usando una columna en común, como unir la lista de alumnos con la de notas usando el número de alumno. Ejemplo: SELECT a.nombre, n.nota FROM alumnos a JOIN notas n ON n.alumno_id = a.id;. GROUP BY agrupa filas parecidas para contarlas o sumarlas, como separar tus gastos por categoría y ver cuánto gastaste en comida. Las subconsultas son una consulta dentro de otra.
Error típico de principiante: usar WHERE para filtrar sobre un COUNT o SUM. Eso va en HAVING, porque se evalúa después de agrupar.
Temas de la semana 2
INNER JOIN,LEFT JOIN,RIGHT JOINy cuándo apareceNULL- Unir la misma tabla dos veces con alias distintos (origen y destino de una transferencia)
GROUP BYcon una o varias columnas,HAVINGvsWHERECOUNT(DISTINCT ...)- Subconsultas en
WHERE(IN,EXISTS,NOT EXISTS) y enFROM - CTE con
WITHpara ordenar consultas largas UNIONvsUNION ALL- Orden lógico de ejecución:
FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→LIMIT
Cursos: "SQL de cero: Tu guía práctica con PostgreSQL" (secciones de agrupaciones, joins y subconsultas) + videos de pildorasinformaticas.
10 retos · cuestionario de 8 preguntas
Semana 3 · Modelado relacional, DDL, constraints y migraciones
Diseñar tablas es organizar un armario: decides qué va en cada cajón y pones etiquetas para no mezclar calcetines con camisetas. La clave primaria es el DNI de cada fila (único) y la clave foránea conecta una tabla con otra. Ejemplo: pedidos.cliente_id REFERENCES clientes(id) impide crear un pedido de un cliente que no existe. Una migración es una instrucción guardada que cambia la estructura paso a paso, como el manual de un mueble para armar.
Error típico de principiante: guardar dinero en FLOAT o editar una migración que ya se aplicó. Usa NUMERIC(14,2) y crea una migración nueva para cada cambio.
Temas de la semana 3
- Modelo entidad-relación: entidades, atributos, relaciones 1:1, 1:N y N:M
- Normalización: 1FN, 2FN y 3FN con ejemplos (y cuándo se desnormaliza a propósito)
- Tipos de datos en PostgreSQL:
BIGINT,NUMERIC(14,2)para dinero (nuncaFLOAT),VARCHAR,TEXT,DATE,TIMESTAMPTZ,BOOLEAN - DDL:
CREATE TABLE,ALTER TABLE,DROP TABLE - Llaves:
PRIMARY KEYconGENERATED ALWAYS AS IDENTITY,FOREIGN KEY,ON DELETE RESTRICT/CASCADE - Constraints:
NOT NULL,UNIQUE,CHECK,DEFAULT - Migraciones: qué son, por qué se versionan,
upydown, nunca editar una migración ya aplicada
Cursos: "SQL de cero: Tu guía práctica con PostgreSQL" (secciones de diagrama entidad-relación, llaves y constraints) + video de normalización de Vida MRR.
9 retos · cuestionario de 8 preguntas
Semana 4 · Índices, EXPLAIN y rendimiento
Un índice funciona como el índice de un libro: en vez de leer todas las páginas, vas directo a la que necesitas. Ejemplo: buscar un correo en una tabla de un millón de filas sin índice obliga a revisarlas todas (Seq Scan); con un índice en correo, la base salta directo (Index Scan). EXPLAIN ANALYZE es como pedirle al GPS la ruta antes de salir: te muestra si va por el camino largo y cuánto tardó de verdad.
Error típico de principiante: crear índices en todas las columnas "por si acaso". Cada índice ocupa espacio y hace más lentas las escrituras; crea solo los que tus consultas usan.
Temas de la semana 4
- Cómo lee PostgreSQL una tabla: páginas, Seq Scan vs Index Scan vs Bitmap Index Scan
- Índices B-tree: qué son, cuándo ayudan y cuándo no
- Índices compuestos y el orden de las columnas
- Índices sobre expresiones (
LOWER(email)) y consultas que "rompen" un índice (funciones sobre la columna) EXPLAINvsEXPLAIN ANALYZE: costo estimado, filas estimadas vs reales, tiempo real- El costo de un índice: espacio en disco y escrituras más lentas
ANALYZEy estadísticas;pg_stat_user_indexespara detectar índices sin uso- Paginación con
OFFSETvs paginación por llave (keyset)
Cursos: "SQL de cero: Tu guía práctica con PostgreSQL" (sección de índices) + libro gratuito Use The Index, Luke (capítulos 1 y 2) + video de índices de pildorasinformaticas.
9 retos · cuestionario de 8 preguntas
Semana 5 · Transacciones, ACID, bloqueos, funciones y vistas
Una transacción es una transferencia en un cajero: o se descuenta de una cuenta y se suma a la otra, o no pasa nada; nunca queda a medias. Ejemplo: BEGIN; UPDATE cuentas SET saldo = saldo - 100 WHERE id = 1; UPDATE cuentas SET saldo = saldo + 100 WHERE id = 2; COMMIT;. Si algo falla antes del COMMIT, haces ROLLBACK y no cambia nada. Los bloqueos son el cartel de "ocupado" de un probador: evitan que dos personas cambien lo mismo al mismo tiempo.
Error típico de principiante: dejar una transacción abierta (sin COMMIT ni ROLLBACK): bloquea filas y frena a los demás.
Temas de la semana 5
- Transacciones:
BEGIN,COMMIT,ROLLBACK,SAVEPOINT - ACID: atomicidad, consistencia, aislamiento, durabilidad (con el ejemplo de una transferencia)
- Niveles de aislamiento en PostgreSQL:
READ COMMITTED(por defecto),REPEATABLE READ,SERIALIZABLE - Problemas de concurrencia: actualización perdida, lectura no repetible
- Bloqueos de fila:
SELECT ... FOR UPDATE, esperas y deadlocks - Funciones y procedimientos en PL/pgSQL: parámetros, variables,
IF,RAISE EXCEPTION - Vistas (
CREATE VIEW) y vistas materializadas (idea general) - Triggers para auditoría
Cursos: "SQL de cero: Tu guía práctica con PostgreSQL" (secciones de funciones, procedimientos almacenados y triggers) + documentación oficial de transacciones y niveles de aislamiento.
10 retos · cuestionario de 8 preguntas
Semana 6 · NoSQL básico, backups y simulación de trabajo real
Hasta ahora usaste tablas con filas y columnas fijas. NoSQL son otras formas de guardar datos: MongoDB guarda fichas sueltas (documentos), como carpetas con hojas de formato distinto, y Redis es una pizarra rápida para lo que se consulta mucho. Ejemplo: SET sesion:ana "abc123" EX 3600 guarda una sesión que desaparece sola en una hora. Un backup es respaldar las fotos de tu teléfono por si lo pierdes; pg_dump hace la copia de tu base y pg_restore la devuelve.
Error típico de principiante: hacer backups y nunca probar restaurarlos. Un respaldo que no se ha restaurado es solo una esperanza.
Temas de la semana 6
- Cuándo SQL y cuándo NoSQL: documentos (MongoDB) y clave-valor (Redis)
- MongoDB: bases, colecciones, documentos,
insertOne,find, filtros, proyección,updateOne,deleteOne, índices yaggregatebásico - Redis:
SET/GET,EXPIREy TTL,INCR, hashes; uso como caché y contador - Backups en PostgreSQL:
pg_dump(formato plano y-Fc),pg_restore, probar la restauración - Cómo trabajar un ticket de base de datos: rama, migración, pruebas, PR, checklist de despliegue
- Corrección de datos en producción de forma segura (
SELECTantes, transacción, respaldo de las filas afectadas)
Cursos: "MongoDB: Aprende desde cero a experto" (introducción, CRUD y agregaciones) + videos gratis de MongoDB y Redis.
Videos gratis recomendados
- REDIS TUTORIAL EN ESPAÑOL — Programador Novato
- Cuando usar una base de datos SQL y cuando una NO-SQL? — HolaMundo
10 retos · cuestionario de 8 preguntas
Proyectos para tu portafolio
Cuando buscas tu primer trabajo, casi nadie te va a pedir un título: te van a pedir ver algo que hayas construido, y tener proyectos propios en GitHub (con tus scripts SQL, tu diagrama y un README que explique todo) demuestra que sabes trabajar con datos mejor que cualquier certificado.
1. Base de datos de un torneo de videojuegos
- Qué construyes: la base de datos de un torneo de League of Legends, Fortnite o el juego que prefieras, con equipos, jugadores, partidas y resultados, más consultas como "top 10 jugadores con más victorias" o "equipo con mejor promedio".
- Qué practicas: diseño de tablas, claves primarias y foráneas, constraints, JOINs, GROUP BY y migraciones (semanas 1 a 3).
- Súbele el nivel: registra los resultados de cada partida dentro de una transacción para que nunca quede una partida a medias.
2. Estadísticas de una liga de fútbol
- Qué construyes: una base de datos con equipos, partidos, goles y tarjetas de una liga (la de tu país o una inventada), que genera la tabla de posiciones y la lista de goleadores.
- Qué practicas: JOINs, GROUP BY, subconsultas, vistas para la tabla de posiciones, índices y
EXPLAINpara que las consultas sigan rápidas con muchos partidos (semanas 2 a 5). - Súbele el nivel: carga miles de partidos de prueba y compara con
EXPLAINcuánto mejora una consulta antes y después de crear un índice.
3. Catálogo de tus series y películas
- Qué construyes: tu propio "Netflix personal": un catálogo de series y películas con géneros, plataformas, temporadas, lo que ya viste y tu calificación, con consultas como "series de terror que me faltan terminar".
- Qué practicas: SQL básico, modelado de relaciones de muchos a muchos (una serie tiene varios géneros), constraints, funciones, backups y una versión en MongoDB para comparar (semanas 1 a 6).
- Súbele el nivel: crea una función que te recomiende qué ver según los géneros que mejor calificaste.
Glosario de Base de Datos Jr en palabras simples
| Palabra | Qué significa |
|---|---|
| Base de datos | Un lugar donde se guarda información ordenada para buscarla después, como una biblioteca bien organizada. |
| Tabla | Un conjunto de datos del mismo tipo ordenados en filas y columnas, como una hoja de cálculo de "clientes". |
| Fila | Un registro completo dentro de una tabla, como la ficha de un solo cliente. |
| Columna | Un tipo de dato que tienen todas las filas, como la columna "email" en una lista de contactos. |
| SQL | El idioma que se usa para pedirle cosas a una base de datos, como hablarle al bibliotecario. |
| Consulta (query) | Una pregunta que le haces a la base de datos, como "¿qué clientes viven en Lima?". |
| Clave primaria | Un valor único que identifica a cada fila, como el número de DNI de una persona. |
| Clave foránea | Una columna que apunta a la clave primaria de otra tabla, como el número de alumno escrito en una hoja de notas. |
| JOIN | Una forma de juntar datos de dos tablas que comparten algo, como unir la lista de alumnos con la lista de notas. |
| GROUP BY | Agrupa filas parecidas para contarlas o sumarlas, como separar tus gastos por categoría. |
| Subconsulta | Una consulta dentro de otra, como hacer una pregunta cuya respuesta necesitas para la pregunta principal. |
| Constraint (restricción) | Una regla que la base de datos obliga a cumplir, como "el precio no puede ser negativo". |
| Migración | Un archivo con cambios a la estructura de la base de datos que se aplica en orden, como los pasos numerados para armar un mueble. |
| Índice | Una estructura que ayuda a encontrar datos rápido, como el índice al final de un libro. |
| EXPLAIN | Un comando que muestra cómo piensa buscar la base de datos, como ver la ruta en el GPS antes de salir. |
| Transacción | Un grupo de cambios que se hacen todos juntos o ninguno, como una transferencia en un cajero. |
| Bloqueo (lock) | Una marca que impide que dos personas cambien el mismo dato a la vez, como el cartel de "ocupado" en un probador. |
| Vista (view) | Una consulta guardada con nombre que se usa como si fuera una tabla, como un filtro favorito en tu app de fotos. |
| NoSQL | Bases de datos que no usan tablas, sino documentos o pares clave-valor, como una carpeta de fichas sueltas. |
| Backup | Una copia de seguridad de los datos para recuperarlos si algo se pierde, como respaldar las fotos de tu teléfono. |
¿Listo para empezar?
Gratis, sin tarjeta y sin experiencia previa. Entra con Google o sin cuenta.
Empezar Base de Datos Jr gratis