Sobes.tech
Junior — Middle

Wyjaśnij, czym są transakcje w systemach zarządzania bazami danych i ich główne cechy.

sobes.tech AI

Odpowiedź od AI

Transakcja w systemie zarządzania bazami danych (DBMS) to sekwencja operacji, która jest wykonywana jako niepodzielna jednostka. Główną ideą jest to, że wszystkie operacje transakcji zakończą się sukcesem lub żadna z nich nie zostanie zastosowana (atomowość).

Główne właściwości transakcji opisuje akronim ACID:

  • Atomowość: transakcja jest wykonywana w całości lub wcale.
  • Spójność: po zakończeniu transakcji baza danych pozostaje w poprawnym stanie, spełniając wszystkie ograniczenia.
  • Izolacja: równoległe transakcje nie wpływają na siebie, wynik jest taki, jakby były wykonywane kolejno.
  • Trwałość: po zatwierdzeniu (commit) zmiany są zachowywane nawet w przypadku awarii systemu.

Przykład w C# z użyciem transakcji w 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;
        }
    }
}