SQL Avanzado
Concurrencia y Aislamiento
Locks y Recuperacion
Seguridad y Backups
Arquitectura SQL
100

¿Para qué sirve una VIEW y cómo se usa?

Para guardar una consulta reutilizable, como una tabla virtual.

100

¿Qué es la concurrencia en bases de datos?

Es la capacidad de que múltiples transacciones accedan o modifiquen la base de datos al mismo tiempo.

100

¿Qué hace SELECT ... FOR UPDATE dentro de una transacción?

Bloquea las filas para escritura exclusiva.


100

¿Qué es un SQL Injection?

Es una técnica donde el atacante inserta código malicioso en una consulta.

100

¿Cuáles son las tres capas típicas en la arquitectura de un sistema SQL?

Conexión, SQL (parser/optimizador), almacenamiento.

200

¿Qué beneficio da un índice sobre una columna con muchas filas?

Acelera búsquedas y reduce escaneos completos.

200

 ¿Qué es un dirty read y cómo puede evitarse?

Es leer datos no confirmados de otra transacción; se evita con READ COMMITTED o superior.

200

¿Qué diferencia hay entre LOCK IN SHARE MODE y LOCK TABLES?

El primero bloquea filas específicas; el segundo toda la tabla.

200

¿Cómo se evita un SQL Injection al programar?

Usando consultas preparadas y validando entradas.

200

¿Qué rol cumple la capa de optimización?

Determina el plan más eficiente para ejecutar una consulta.

300

¿Qué diferencia hay entre un TRIGGER y un PROCEDURE?

El trigger se ejecuta automáticamente; el procedure se invoca manualmente.

300

 ¿Qué nivel de aislamiento permite phantom reads pero evita non-repeatable reads?

REPEATABLE READ.

300

¿Qué log se usa para deshacer cambios de transacciones no confirmadas?

Undo Log.

300

¿Qué comando se usa para hacer un backup lógico en MySQL?

mysqldump

300

¿Cómo maneja el almacenamiento físico MySQL vs PostgreSQL?

MySQL usa motores modulares como InnoDB. PostgreSQL tiene su propio motor integrado.

400

¿Qué son las WINDOW FUNCTIONS y por qué son útiles?

Permiten hacer cálculos sobre particiones sin agrupar, como ranking o promedios móviles.

400

¿Qué tipo de error se produce cuando una consulta dentro de una transacción da resultados distintos por modificaciones externas?

Non-repeatable read.

400

¿Qué herramienta permite hacer respaldos físicos sin detener la base de datos?

Percona Xtrabackup.

400

¿Qué diferencia hay entre mysqldump y mysqlpump?

mysqlpump es más moderno y usa múltiples hilos para mayor velocidad.

400

¿Qué hace el comando EXPLAIN y por qué es útil?

Muestra cómo se ejecutará una consulta, ideal para optimización.

500

Tienes 2 min para crear un ejemplo de función de ventana que enumere los alumnos por orden de inscripción dentro de cada carrera.

ROW_NUMBER() OVER (PARTITION BY carrera ORDER BY fecha_inscripcion)

500

Explica la diferencia entre los 4 niveles de aislamiento y da un caso práctico donde usarías SERIALIZABLE.

READ UNCOMMITTED: permite dirty reads. READ COMMITTED: evita dirty. REPEATABLE READ: evita non-repeatable. SERIALIZABLE: evita phantom reads. Se usa en operaciones críticas como pagos.

500

Si el servidor falla tras un COMMIT pero antes de escribir en disco, ¿qué log permite recuperar la transacción?

Redo Log.

500

Nombra tres herramientas de backup avanzadas y cuándo usar cada una.

mysqldump: simple, para bases pequeñas. mydumper: para bases grandes, exporta en paralelo. xtrabackup: backups en caliente sin detener la base.

500

¿Qué es InnoDB?  

InnoDB es el motor de almacenamiento por defecto en MySQL que permite el uso de transacciones, bloqueo a nivel de fila y recuperación ante fallos. Es ideal para aplicaciones que requieren alta confiabilidad y concurrencia.