Bases de datos relacionales, transacciones, indexación y procesamiento de consultas, orientado a la preparación de entrevistas técnicas y cursos equivalentes.
Uniones (joins) SQL: Combinar filas de dos o más tablas según una columna coincidente.
Agregación y agrupamiento SQL: Reducir muchas filas a un solo número resumen por grupo, como un total o un promedio por categoría.
Subconsultas SQL: Una consulta anidada dentro de otra consulta, usada como valor sustituto o filtro.
Álgebra relacional: Las operaciones formales, de tipo matemático, a las que SQL realmente se compila por debajo.
Vistas y vistas materializadas: Una consulta guardada que actúa como una tabla; materializada significa que el resultado realmente se almacena, no se recalcula cada vez.
Procedimientos almacenados y disparadores: Código que vive dentro de la propia base de datos: se llama bajo demanda (procedimiento) o se dispara automáticamente ante un evento (disparador).
Índices y árboles B: Una estructura de atajo ordenada, en forma de árbol, que permite a la base de datos encontrar filas sin recorrer toda la tabla.
Selectividad de índices: Con cuánta precisión una condición filtra la tabla, la razón por la que un índice de baja selectividad se ignora a favor de un escaneo completo.
Procesamiento y optimización de consultas: Cómo decide la base de datos en qué orden ejecutar uniones y filtros, para responder una consulta al menor costo posible.
Transacciones y concurrencia
Transacciones y propiedades ACID: Las cuatro garantías (atomicidad, consistencia, aislamiento, durabilidad) que hacen que una transacción se sienta como una unidad indivisible.
Anomalías de concurrencia: Los problemas específicos que pueden ocurrir cuando dos transacciones se ejecutan al mismo tiempo: lecturas sucias, no repetibles y fantasma.
Niveles de aislamiento: Cuánto de esas anomalías de concurrencia está dispuesta a permitir una base de datos, elegido como equilibrio frente a la velocidad.
Serializabilidad por conflictos: Comprobar si una intercalación de transacciones podría haber ocurrido en algún orden secuencial en su lugar.
Control de concurrencia por bloqueo: Las transacciones que adquieren y luego liberan bloqueos sobre los datos, en dos fases estrictas, para garantizar la serializabilidad en la práctica.
Detección y prevención de interbloqueos: Dos transacciones esperando cada una un bloqueo que la otra tiene, y cómo la base de datos detecta o evita ese punto muerto.
Recuperación
Registro de escritura anticipada y recuperación: Escribir lo que se está a punto de cambiar en un registro antes de tocar la página real, para que un fallo pueda de todos modos recuperar el estado correcto.
Algoritmo de recuperación ARIES: El algoritmo específico de tres fases (análisis, rehacer, deshacer) que las bases de datos reales usan para recuperarse mediante el registro de escritura anticipada.
Teorema CAP: No se puede tener consistencia, disponibilidad y tolerancia a particiones perfectas al mismo tiempo, hay que elegir dos.
Modelos de consistencia: Con cuánta rigurosidad una base de datos distribuida insiste en que cada lectura vea la última escritura, frente a permitir cierto desfase.
Modelos de datos NoSQL: Alternativas a las tablas: documentos, pares clave-valor, columnas anchas o grafos, cada una adecuada a un patrón de acceso distinto.
Analítica
Almacenes de datos y OLAP: Una base de datos separada optimizada para grandes consultas analíticas sobre datos históricos, no para transacciones rápidas del día a día.