Назад к вопросам
СБЕР
Junior — Middle
54
Какова роль транзакций при взаимодействии с системами управления базами данных?
Компании, где спрашивали
Ответ от нейросети
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();
}
Таким образом, транзакции гарантируют надежность и корректность операций с базой данных.