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