Back to questions
Middle+
6
Что такое транзакции и свойства ACID?
Companies where asked
Ifellow
Answer from AI
sobes.tech AI
Транзакция — это последовательность операций с базой данных, которая выполняется как единое целое. Если одна из операций неудачна, все изменения откатываются.
Свойства ACID обеспечивают надежность транзакций:
- Atomicity (Атомарность): транзакция либо выполняется полностью, либо не выполняется вовсе.
- Consistency (Согласованность): после выполнения транзакции база данных остаётся в корректном состоянии.
- Isolation (Изолированность): параллельные транзакции не влияют друг на друга, результаты одной не видны другой до завершения.
- Durability (Долговечность): после подтверждения транзакции её изменения сохраняются даже при сбоях.
Пример в Node.js с использованием транзакций (например, с библиотекой pg для PostgreSQL):
const { Client } = require('pg');
const client = new Client();
async function runTransaction() {
await client.connect();
try {
await client.query('BEGIN');
await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
await client.query('UPDATE accounts SET balance = balance - 50 WHERE user_id = $1', [2]);
await client.query('COMMIT');
} catch (e) {
await client.query('ROLLBACK');
throw e;
} finally {
await client.end();
}
}