Sobes.tech
Junior — Middle

Vysvetlite, čo sú transakcie v systémoch správy databáz a ich hlavné vlastnosti.

sobes.tech AI

Odpoveď od AI

Transakcia v systéme správy databáz (SGBD) je sled operácií, ktoré sa vykonávajú ako nedeliteľná jednotka. Hlavná myšlienka je, že všetky operácie transakcie buď prebehnú úspešne, alebo žiadna z nich nie je aplikovaná (atomickosť).

Hlavné vlastnosti transakcií sú opísané skratkou ACID:

  • Atomickosť: transakcia sa vykoná úplne alebo vôbec.
  • Konzistencia: po dokončení transakcie zostáva databáza v správnom stave, spĺňajúcom všetky obmedzenia.
  • Izolácia: paralelné transakcie neovplyvňujú jedna druhú, výsledok je taký, akoby boli vykonávané sekvenčne.
  • Trvácnosť: po potvrdení (commit) zostávajú zmeny zachované aj pri zlyhaní systému.

Príklad v C# s použitím transakcií v 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;
        }
    }
}