Exámenes

Examen Cuándo Temas
Parcial Semana 8, Sesión B Partes 1 y 2 (semanas 1–8): modelo relacional, álgebra relacional, SQL, SQL desde un programa, modelo E-R y normalización
Final Período de exámenes Todo el curso, con énfasis en las partes 3 y 4 (semanas 9–16): almacenamiento, índices, procesamiento y optimización de consultas, transacciones, concurrencia y recuperación

Formato sugerido

  • Escribir consultas: a partir de un esquema dado (no necesariamente el de Chasqui), escribir consultas en SQL y en álgebra relacional: joins externos, agregación con HAVING, subconsultas correlacionadas, división relacional, funciones de ventana. Importa la idea: un error menor de sintaxis no la invalida.
  • Leer consultas: qué devuelve una consulta sobre unas pocas filas, con atención a los NULL, los duplicados y las agregaciones sobre conjuntos vacíos.
  • Diseño: a partir de unos requisitos cortos, un diagrama E-R y su traducción a tablas; o, dado un esquema con dependencias funcionales, calcular clausuras y claves candidatas, decidir si está en BCNF o 3NF y descomponerlo.
  • Cálculos del motor: altura y fan-out de un B+ tree, inserciones con splits, costo en páginas de un block nested loop join o de un ordenamiento externo, selectividad estimada con un histograma, comparación de dos planes.
  • Transacciones: decidir si un schedule es serializable por conflictos (con su grafo de precedencia), si es recuperable o cascadeless, qué hace 2PL con él, qué anomalía permite cada nivel de aislamiento; recuperar una base de datos a partir de un log con el algoritmo de ARIES.
  • Preguntas cortas: “¿por qué un DBMS no deja el caché al sistema operativo?”, “¿cuándo un índice empeora una consulta?”, “¿qué garantiza COMMIT sobre el disco?”.

Cómo estudiar

  1. Las Preguntas de repaso al final de cada guía semanal.
  2. Los ejercicios de práctica de Silberschatz que tienen solución publicada en el sitio del libro (Practice Exercises). Las consultas sobre el esquema university del libro se pueden probar en su intérprete de SQL en línea.
  3. Los exámenes de semestres anteriores del curso CS186 de Berkeley, que se enlazan desde el sitio del curso, y los homeworks del curso 15-445 de CMU, en su calendario.
  4. Predecir el resultado y el plan de una consulta sobre Chasqui antes de correrla, y después verificar con psql y EXPLAIN ANALYZE.
  5. Releer el propio proyecto: muchas preguntas de diseño y del motor se parecen a decisiones que ya tomaron en Chasqui y en quipu.

Banco de preguntas

Guardar los enunciados aquí (parcial-AAAA-S.md, final-AAAA-S.md). Las soluciones no deberían subirse a un repositorio público; usar exams/solutions/ (está en .gitignore), una rama privada o un repositorio aparte.