Sobes.tech
Junior — Middle

Puteți explica ce înseamnă o tranzacție în contextul bazelor de date?

sobes.tech AI

Răspuns de la AI

O tranzacție în baze de date este o secvență de operațiuni care se execută ca o unitate. Tranzacția fie se finalizează cu succes în întregime (commit), fie este complet anulată (rollback) dacă apare o eroare. Acest lucru garantează integritatea datelor și previne actualizările parțiale.

Principalele proprietăți ale tranzacțiilor sunt descrise prin acronimul ACID:

  • Atomicitate — toate operațiunile din cadrul tranzacției sunt efectuate complet sau deloc.
  • Consistență — după executarea tranzacției, baza de date rămâne într-o stare corectă.
  • Izolare — tranzacțiile paralele nu se influențează reciproc.
  • Durabilitate — după confirmare, modificările sunt păstrate chiar și în caz de defecțiuni.

Exemplu în Node.js folosind biblioteca pg pentru 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();
  }
}