Sobes.tech
Junior — Middle

Meg tudná magyarázni, hogy mit értünk tranzakción a adatbázisok kontextusában?

sobes.tech MI

Válasz az MI-től

Az adatbázisokban a tranzakció egy műveletek sorozata, amelyeket egységként hajtanak végre. A tranzakció vagy teljes egészében sikeresen befejeződik (commit), vagy hiba esetén teljes egészében visszavonásra kerül (rollback). Ez garantálja az adatok integritását és megakadályozza a részleges frissítéseket.

A tranzakciók fő jellemzőit az ACID rövidítés írja le:

  • Atomicitás — minden művelet a tranzakción belül vagy teljes egészében végrehajtódik, vagy egyáltalán nem.
  • Konzisztencia — a tranzakció végrehajtása után az adatbázis helyes állapotban marad.
  • Izoláció — párhuzamos tranzakciók nem befolyásolják egymást.
  • Tartósság — a tranzakció megerősítése után a változások még hibák esetén is megmaradnak.

Node.js példában a pg könyvtár használatával PostgreSQL-hez:

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();
  }
}