Bases de Datos
Calendario
Cada semana: dos sesiones de teoría (A y B, 2 h) y un laboratorio (2 h). Los temas marcados con ✂️ pueden pasar a lectura autónoma si se pierden clases.
Modelo relacional y SQLDiseño de bases de datosAlmacenamiento, índices y consultasTransacciones y distribuidos
- 01
Introducción y modelo relacional
Modelo relacional y SQL- Sesión A
- Presentación del curso · Introducción a los sistemas de bases de datos
- Sesión B
- El modelo relacional: relaciones, esquemas y claves
- Laboratorio
- Entorno: Docker, psql, Node.js
P0 publicadoApuntesDiapositivasCódigo - 02
Álgebra relacional y SQL básico
Modelo relacional y SQL- Sesión A
- Álgebra relacional
- Sesión B
- SQL I: definición de datos y consultas básicas
- Laboratorio
- Primeras consultas con psql
- 03
Conjuntos, NULL, agregación y subconsultas
Modelo relacional y SQL- Sesión A
- SQL II: conjuntos, NULL y agregación
- Sesión B
- SQL III: subconsultas y modificación de datos
- Laboratorio
- Consultas con agregación y subconsultas
- 04
Joins, vistas e integridad
Modelo relacional y SQL- Sesión A
- Joins y vistas
- Sesión B
- Restricciones de integridad, tipos y autorización
- Laboratorio
- Un esquema que se defiende solo
- 05
SQL desde un programa y SQL avanzado
Modelo relacional y SQL- Sesión A
- SQL desde un programa: Node.js y pg, inyección SQL
- Sesión B
- Funciones, triggers, consultas recursivas y funciones de ventana
- Laboratorio
- Una aplicación pequeña con pg
- 06
- Sesión A
- El modelo entidad-relación
- Sesión B
- De E-R a tablas · E-R extendido
- Laboratorio
- Modelar un dominio
- 07
- Sesión A
- Dependencias funcionales y BCNF
- Sesión B
- Teoría de dependencias: clausura, cubierta canónica, 3NF · 4NF
- Laboratorio
- Normalizar un esquema
- 08
- Sesión A
- Datos semiestructurados: JSON en PostgreSQL · Repaso
- Sesión B
- Examen parcial
- Laboratorio
- Repaso con ejercicios
- 09
- Sesión A
- Almacenamiento físico: discos, SSD y bloques
- Sesión B
- Archivos, páginas y registros · Buffer pool
- Laboratorio
- Las páginas de PostgreSQL por dentro
- 10
- Sesión A
- Índices: conceptos y B+ trees
- Sesión B
- Índices hash · Índices en la práctica · LSM trees
- Laboratorio
- Un B+ tree en Node.js · índices en PostgreSQL
- 11
Procesamiento de consultas: costo, selección y ordenamiento externo
Almacenamiento, índices y consultas- Sesión A
- Procesamiento de consultas: costo, selección y ordenamiento externo
- Sesión B
- Algoritmos de join · Evaluación con iteradores
- Laboratorio
- Joins a mano y en el motor
- 12
- Sesión A
- Optimización: equivalencias y estimación de cardinalidades
- Sesión B
- Elección de planes · EXPLAIN ANALYZE
- Laboratorio
- Leer y mejorar planes de ejecución
- 13
Transacciones: ACID, serializabilidad y aislamiento
Transacciones y distribuidos- Sesión A
- Transacciones: ACID y serializabilidad
- Sesión B
- Recuperabilidad y niveles de aislamiento en SQL
- Laboratorio
- Anomalías con dos sesiones
- 14
- Sesión A
- Control de concurrencia: 2PL, deadlocks y granularidad
- Sesión B
- MVCC y snapshot isolation · protocolos con timestamps
- Laboratorio
- Locks y MVCC en PostgreSQL
- 15
Recuperación: log, WAL y ARIES
Transacciones y distribuidos- Sesión A
- Recuperación: fallos, log y WAL
- Sesión B
- ARIES · Checkpoints
- Laboratorio
- El WAL de PostgreSQL
- 16
- Sesión A
- Bases de datos distribuidas: particionamiento, replicación y 2PC
- Sesión B
- NoSQL y MapReduce · Cierre y repaso
- Laboratorio
- Presentación de proyectos
P5 entregaApuntesDiapositivasCódigo