Junior — Middle
¿Puedes explicar qué se entiende por transacción en el contexto de bases de datos?
sobes.tech AI
Respuesta de la IA
Una transacción en bases de datos es una secuencia de operaciones que se ejecuta como una unidad. La transacción se completa con éxito en su totalidad (commit) o se revierte por completo (rollback) si ocurre un error. Esto garantiza la integridad de los datos y evita actualizaciones parciales.
Las propiedades principales de las transacciones se describen con el acrónimo ACID:
- Atomicidad — todas las operaciones dentro de la transacción se realizan por completo o no se realizan en absoluto.
- Consistencia — después de ejecutar la transacción, la base de datos permanece en un estado correcto.
- Aislamiento — las transacciones paralelas no afectan unas a otras.
- Durabilidad — después de confirmar la transacción, los cambios se mantienen incluso en caso de fallos.
Ejemplo en Node.js usando la biblioteca pg para PostgreSQL:
const { Client } = require('pg');
async function runTransaction() {
const client = new Client();
await client.connect();
try {
await client.query('BEGIN');
await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
await client.query('COMMIT');
} catch (e) {
await client.query('ROLLBACK');
throw e;
} finally {
await client.end();
}
}