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