Sobes.tech
Back to questions
Junior — Middle
53

Какова роль транзакций при взаимодействии с системами управления базами данных?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Транзакции в системах управления базами данных (СУБД) обеспечивают целостность и согласованность данных при выполнении нескольких операций. Они позволяют сгруппировать несколько действий в единое логическое целое, которое либо выполняется полностью, либо не выполняется вовсе (атомарность).

Основные свойства транзакций описываются аббревиатурой ACID:

  • Atomicity (Атомарность): все операции внутри транзакции выполняются как единое целое.
  • Consistency (Согласованность): после выполнения транзакции база данных остается в корректном состоянии.
  • Isolation (Изолированность): параллельные транзакции не влияют друг на друга.
  • Durability (Надежность): после фиксации транзакции изменения сохраняются даже при сбоях.

Пример в Java с использованием JDBC:

Connection conn = dataSource.getConnection();
try {
    conn.setAutoCommit(false); // Начинаем транзакцию
    // Выполнение нескольких SQL операций
    PreparedStatement ps1 = conn.prepareStatement("INSERT INTO users(name) VALUES (?)");
    ps1.setString(1, "Иван");
    ps1.executeUpdate();

    PreparedStatement ps2 = conn.prepareStatement("UPDATE accounts SET balance = balance - 100 WHERE user_id = ?");
    ps2.setInt(1, 1);
    ps2.executeUpdate();

    conn.commit(); // Фиксируем транзакцию
} catch (SQLException e) {
    conn.rollback(); // Откатываем при ошибке
} finally {
    conn.setAutoCommit(true);
    conn.close();
}

Таким образом, транзакции гарантируют надежность и корректность операций с базой данных.