Modelo relacional y SQLDiseño de bases de datosAlmacenamiento, índices y consultasTransacciones y distribuidos
  1. 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
  2. 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
  3. 03
    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
    P0 entregaP1 publicadoApuntesDiapositivasCódigo
  4. 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
  5. 05
    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
  6. 06

    El modelo entidad-relación

    Diseño de bases de datos✂️
    Sesión A
    El modelo entidad-relación
    Sesión B
    De E-R a tablas · E-R extendido
    Laboratorio
    Modelar un dominio
    P1 entregaP2 publicadoApuntesDiapositivasCódigo
  7. 07

    Dependencias funcionales y normalización

    Diseño de bases de datos✂️
    Sesión A
    Dependencias funcionales y BCNF
    Sesión B
    Teoría de dependencias: clausura, cubierta canónica, 3NF · 4NF
    Laboratorio
    Normalizar un esquema
  8. 08

    JSON en PostgreSQL y examen parcial

    Diseño de bases de datos✂️
    Sesión A
    Datos semiestructurados: JSON en PostgreSQL · Repaso
    Sesión B
    Examen parcial
    Laboratorio
    Repaso con ejercicios
  9. 09

    Almacenamiento físico: discos, SSD y bloques

    Almacenamiento, índices y consultas✂️
    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
    P2 entregaP3 publicadoApuntesDiapositivasCódigo
  10. 10

    Índices: conceptos y B+ trees

    Almacenamiento, índices y consultas✂️
    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. 11
    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. 12

    Optimización: equivalencias y estimación de cardinalidades

    Almacenamiento, índices y consultas✂️
    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
    P3 entregaP4 publicadoApuntesDiapositivasCódigo
  13. 13
    Sesión A
    Transacciones: ACID y serializabilidad
    Sesión B
    Recuperabilidad y niveles de aislamiento en SQL
    Laboratorio
    Anomalías con dos sesiones
  14. 14

    Control de concurrencia: locks, deadlocks y MVCC

    Transacciones y distribuidos✂️
    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
    P4 entregaP5 publicadoApuntesDiapositivasCódigo
  15. 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. 16

    Bases de datos distribuidas, NoSQL y cierre

    Transacciones y distribuidos✂️
    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