Junior — Middle
Puoi spiegare cosa si intende per transazione nel contesto dei database?
sobes.tech AI
Risposta dell'AI
Una transazione nei database è una sequenza di operazioni che viene eseguita come un'unica unità. La transazione si conclude con successo nel suo insieme (commit) o viene completamente annullata (rollback) in caso di errore. Questo garantisce l'integrità dei dati e previene aggiornamenti parziali.
Le proprietà principali delle transazioni sono descritte dall'acronimo ACID:
- Atomicità — tutte le operazioni all'interno della transazione vengono eseguite completamente o non vengono eseguite affatto.
- Consistenza — dopo l'esecuzione della transazione, il database rimane in uno stato corretto.
- Isolamento — le transazioni parallele non influenzano le altre.
- Durabilità — dopo la conferma della transazione, le modifiche vengono mantenute anche in caso di guasti.
Esempio in Node.js usando la libreria pg per 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();
}
}