Principal
¿Qué son las transacciones en bases de datos? ¿Cuáles son los niveles de aislamiento de transacciones, cuál es su significado y cuál es la diferencia principal?
sobes.tech AI
Respuesta de la IA
Una transacción en una base de datos es una secuencia lógicamente relacionada de operaciones que se ejecuta como una sola unidad. Las propiedades principales de las transacciones se describen con el acrónimo ACID:
- Atomicidad — todas las operaciones de la transacción se completan por completo o no se realizan en absoluto.
- Consistencia — la transacción lleva la base de datos de un estado correcto a otro correcto.
- Aislamiento — las transacciones paralelas no se afectan entre sí.
- Durabilidad — después de un commit, los cambios se mantienen incluso en caso de fallos.
Niveles de aislamiento de transacciones determinan el grado en que los cambios de una transacción son visibles para otras y afectan a las posibles anomalías:
- Read Uncommitted — la transacción puede ver cambios no confirmados de otras (lectura sucia).
- Read Committed — solo se ven cambios confirmados, pero pueden ocurrir lecturas no repetibles.
- Repeatable Read — se garantiza que una lectura repetida de los mismos datos en una transacción dará el mismo resultado, pero pueden ocurrir lecturas fantasma (nuevas filas).
- Serializable — el nivel más estricto, las transacciones se ejecutan como si fueran secuenciales, eliminando todas las anomalías.
La principal diferencia es el equilibrio entre rendimiento y aislamiento estricto. Cuanto más alto sea el nivel, menor será el paralelismo, pero mayor será la integridad de los datos.