Sobes.tech
Junior — Middle

Môžete vysvetliť, čo sa rozumie pod pojmom transakcia v kontexte databáz?

sobes.tech AI

Odpoveď od AI

Transakcia v databázach je sled operácií, ktoré sa vykonávajú ako celok. Transakcia buď úspešne dokončí celý proces (commit), alebo je úplne vrátená (rollback), ak dôjde k chybe. To zabezpečuje integritu dát a zabraňuje čiastočným aktualizáciám.

Hlavné vlastnosti transakcií sú opísané skratkou ACID:

  • Atomickosť — všetky operácie v rámci transakcie sa vykonajú úplne alebo vôbec.
  • Konzistencia — po vykonaní transakcie zostáva databáza v správnom stave.
  • Izolácia — paralelné transakcie na seba neovplyvňujú.
  • Odolnosť — po potvrdení zostávajú zmeny zachované aj pri zlyhaniach.

Príklad v Node.js s knižnicou pg pre 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();
  }
}