Back to questions
Junior — Middle
65
Объясните, что такое транзакции в системе управления базами данных и их основные свойства.
Companies where asked
Почтатех
Swiftfactory
Answer from AI
sobes.tech AI
Транзакция в системе управления базами данных (СУБД) — это последовательность операций, которая выполняется как единое целое. Основная идея — либо все операции транзакции выполняются успешно, либо ни одна не применяется (атомарность).
Основные свойства транзакций описываются аббревиатурой ACID:
- Atomicity (Атомарность): транзакция выполняется полностью или не выполняется вовсе.
- Consistency (Согласованность): после завершения транзакции база данных остаётся в корректном состоянии, удовлетворяющем всем ограничениям.
- Isolation (Изолированность): параллельные транзакции не влияют друг на друга, результат такой, как если бы они выполнялись последовательно.
- Durability (Надёжность): после фиксации (commit) изменений они сохраняются даже при сбоях системы.
Пример в C# с использованием транзакций в ADO.NET:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
try
{
var command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = "INSERT INTO Accounts (Name, Balance) VALUES ('User1', 1000)";
command.ExecuteNonQuery();
command.CommandText = "UPDATE Accounts SET Balance = Balance - 100 WHERE Name = 'User2'";
command.ExecuteNonQuery();
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}