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