Назад к вопросам
Senior
3
Что такое атомарность в базах данных? Приведи пример.
Компании, где спрашивали
GPTunnel
Ответ от нейросети
sobes.tech AI
Атомарность в базах данных — это свойство транзакции, гарантирующее, что все операции внутри транзакции выполняются как единое целое: либо все успешно завершаются, либо при ошибке откатываются назад, не оставляя систему в промежуточном состоянии.
Пример: при переводе денег между счетами нужно списать сумму с одного счёта и зачислить на другой. Если списание прошло, а зачисление — нет, данные будут неконсистентны. Благодаря атомарности обе операции либо выполнятся вместе, либо не выполнятся вовсе.
Пример на Node.js с использованием транзакции (например, с PostgreSQL и библиотекой pg):
const { Client } = require('pg');
async function transferFunds(client, fromAccount, toAccount, amount) {
try {
await client.query('BEGIN');
await client.query('UPDATE accounts SET balance = balance - $1 WHERE id = $2', [amount, fromAccount]);
await client.query('UPDATE accounts SET balance = balance + $1 WHERE id = $2', [amount, toAccount]);
await client.query('COMMIT');
} catch (e) {
await client.query('ROLLBACK');
throw e;
}
}
Здесь, если одна из операций обновления баланса не выполнится, транзакция откатится, и база останется в исходном состоянии.