Junior — Middle
Мо метавонед шарҳи кунед, ки дар контексти маълумотҳои базаи додаҳо чӣ маъно дорад?
sobes.tech AI
Ҷавоб аз AI
Дерекқорлардағы транзакція — це послідовність операцій, яка виконується як єдине ціле. Вона або успішно завершується повністю (commit), або повністю скасовується (rollback), якщо сталася помилка. Це гарантує цілісність даних і запобігає частковим оновленням.
Основні властивості транзакцій описані скороченням ACID:
- Атомарність — всі операції в межах транзакції виконуються повністю або зовсім не виконуються.
- Послідовність — після виконання транзакції база даних залишається у правильному стані.
- Ізоляція — паралельні транзакції не впливають одна на одну.
- Міцність — після підтвердження транзакції зміни зберігаються навіть у разі збоїв.
Приклад у Node.js з використанням бібліотеки pg для 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();
}
}