Transacciones: Garantizando la Integridad
En los sistemas empresariales, una operación rara vez consiste en un solo paso. Una Transaction (Transacción) es una unidad lógica de trabajo que debe ejecutarse por completo o no ejecutarse en absoluto, garantizando que la base de datos pase de un estado válido a otro.
Conceptos Fundamentales (Propiedades ACID)
Para dominar la fiabilidad de los sistemas, debemos entender estos 5 términos clave:
- Transaction (Transacción): Secuencia de operaciones tratadas como un bloque único e indivisible.
- Commit (Confirmación): Comando que guarda permanentemente todos los cambios realizados durante la transacción.
- Rollback (Reversión): Comando que anula todos los cambios realizados si ocurre un error, volviendo al estado inicial.
- ACID Properties (Propiedades ACID): El conjunto de características (Atomicidad, Consistencia, Aislamiento y Durabilidad) que garantizan transacciones seguras.
- Data Integrity (Integridad de Datos): La precisión y consistencia de los datos a lo largo de su ciclo de vida.

Ejemplo de Lógica Transaccional
Imagina una transferencia bancaria donde el dinero sale de una cuenta pero no llega a la otra debido a un fallo. Sin una Transaction, el dinero desaparecería. Así se maneja conceptualmente:
// Simulación de una Transaction para una transferencia
async function transferMoney(fromId, toId, amount) {
try {
console.log('Iniciando Transaction...');
// Paso 1: Restar dinero
await db.query(`UPDATE Accounts SET balance = balance - ${amount} WHERE id = ${fromId}`);
// Paso 2: Sumar dinero
await db.query(`UPDATE Accounts SET balance = balance + ${amount} WHERE id = ${toId}`);
// Si todo sale bien, ejecutamos el Commit
await db.query('COMMIT');
console.log('Data Integrity asegurada: Commit realizado.');
} catch (error) {
// Si algo falla, el Rollback deshace TODO
await db.query('ROLLBACK');
console.log('Error detectado. Ejecutando Rollback para evitar pérdida de datos.');
}
}
El cumplimiento de las ACID Properties (Propiedades ACID) asegura que, incluso si el servidor se apaga repentinamente, la Data Integrity (Integridad de Datos) se mantenga intacta mediante el mecanismo de recuperación del motor de base de datos.