Sobes.tech
Junior — Middle

Kunt u uitleggen wat wordt bedoeld met een transactie in de context van databases?

sobes.tech AI

Antwoord van AI

Een transactie in databases is een reeks bewerkingen die als één geheel worden uitgevoerd. De transactie wordt volledig succesvol afgerond (commit) of volledig teruggedraaid (rollback) als er een fout optreedt. Dit garandeert de integriteit van de gegevens en voorkomt gedeeltelijke updates.

De belangrijkste eigenschappen van transacties worden beschreven met de afkorting ACID:

  • Atomiciteit — alle operaties binnen de transactie worden volledig uitgevoerd of helemaal niet.
  • Consistentie — na het uitvoeren van de transactie blijft de database in een correcte staat.
  • Isolatie — gelijktijdige transacties beïnvloeden elkaar niet.
  • Durability — na bevestiging blijven de wijzigingen bestaan, zelfs bij storingen.

Voorbeeld in Node.js met de pg bibliotheek voor 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();
  }
}