1. ¿Qué garantiza la atomicidad de una transacción?
- Que todas las sentencias se ejecuten en orden alfabético
- Que se realice un backup automático
- Que todas las operaciones se apliquen o ninguna
- Que el servidor se reinicie al finalizar
2. En MySQL, ¿cuál es la forma correcta de iniciar una transacción con autocommit desactivado?
- SET AUTOCOMMIT=1;
- START TRANSACTION;
- COMMIT;
- ROLLBACK;
3. ¿Cuál es la sentencia que finaliza una transacción aceptando los cambios?
- ROLLBACK WORK;
- COMMIT WORK;
- SET AUTOCOMMIT=ON;
- BEGIN WORK;
4. Si una sesión se cierra sin ejecutar COMMIT, ¿qué ocurre con la transacción?
- Se guarda automáticamente
- Se cancela automáticamente
- Se vuelve a ejecutar al reconectar
- Se convierte en read‑only
5. ¿Qué problema de concurrencia ocurre cuando una transacción lee datos modificados por otra que aún no ha hecho COMMIT?
- Phantom Read
- Dirty Read
- Non‑repeatable Read
- Deadlock
6. En el nivel de aislamiento READ COMMITTED, ¿qué tipo de lecturas pueden producirse?
- Solo Dirty Read
- Phantom Read y Non‑repeatable Read
- Solo Phantom Read
- Ninguna
7. ¿Cuál es el nivel de aislamiento por defecto en MySQL para tablas InnoDB?
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
8. ¿Qué nivel de aislamiento impide completamente los tres problemas de concurrencia (Dirty, Non‑repeatable y Phantom)?
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
9. ¿Cuál de los siguientes comandos cambia el nivel de aislamiento de una sesión en MySQL?
- SET AUTOCOMMIT=0;
- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
- START TRANSACTION;
- COMMIT;
10. En Oracle, ¿cuál es el nivel de aislamiento por defecto?
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
11. ¿Qué ocurre en un deadlock entre dos transacciones?
- Ambas se confirman simultáneamente
- El SGBD elimina una de ellas mediante rollback
- Se crea una nueva transacción automática
- Se vuelve a iniciar la primera transacción
12. ¿Cuál de los siguientes niveles de aislamiento permite Phantom Read pero no Dirty Read?
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
13. ¿Qué sentencia SQL se usa para revertir una transacción en curso?
- COMMIT;
- ROLLBACK;
- START TRANSACTION;
- SET AUTOCOMMIT=1;
14. ¿Cuál es la diferencia principal entre AUTOCOMMIT=ON y AUTOCOMMIT=OFF?
- ON permite múltiples sentencias en una transacción, OFF no
- ON ejecuta cada sentencia como transacción independiente, OFF requiere COMMIT/ROLLBACK explícitos
- ON desactiva los índices, OFF los activa
- ON solo funciona en Oracle, OFF solo en MySQL
15. En el ejemplo del PDF, ¿qué operación se realiza antes de insertar la cabecera del pedido?
- Se elimina el producto
- Se actualiza el stock del producto
- Se crea una tabla nueva
- Se hace un SELECT de clientes
16. ¿Cuál de los siguientes niveles de aislamiento NO permite ningún tipo de lectura sucia?
- READ UNCOMMITTED
- READ COMMITTED
- READ UNCOMMITTED con bloqueo explícito
- Ninguno
17. ¿Qué comando se usa en MySQL para desactivar temporalmente el autocommit?
- SET AUTOCOMMIT=0;
- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
- COMMIT;
- ROLLBACK;
18. ¿Cuál de los siguientes problemas de concurrencia se evita en el nivel REPEATABLE READ?
- Dirty Read
- Non‑repeatable Read
- Phantom Read
- Ninguno
19. ¿Qué opción de configuración en my.cnf permite establecer el nivel de aislamiento por defecto para todas las conexiones en MySQL?
- transaction-isolation
- max_connections
- innodb_buffer_pool_size
- sql_mode
20. En Oracle, ¿qué nivel de aislamiento adicional al predeterminado está disponible?
- READ UNCOMMITTED
- REPEATABLE READ
- SERIALIZABLE
- READ ONLY
21. ¿Cuál de los siguientes enunciados describe mejor una "Lectura No Repetible"?
- Se leen filas que no existían al iniciar la transacción
- Se leen datos modificados por otra transacción después de la primera lectura
- Se leen datos que nunca fueron confirmados
- Se leen datos en orden aleatorio