Sobes.tech
Junior — Middle

Selgitage, mis on andmebaaside haldussüsteemides tehingud ja nende peamised omadused.

sobes.tech AI

Vastus AI-lt

Andmebaasisüsteemi (DBMS) transaktsioon on operatsioonide jada, mis täidetakse kui üks tervik. Põhieesmärk on — kas kõik transaktsiooni operatsioonid täidetakse edukalt või ei rakendata ühtegi neist (atomarsus).

Transaktsioonide põhiväärtused kirjeldatakse lühendiga ACID:

  • Atomarsus (Atomicity): transaktsioon täidetakse täielikult või mitte üldse.
  • Konsistentsus (Consistency): transaktsiooni lõpetamisel jääb andmebaas õiges seisundis, mis vastab kõigile piirangutele.
  • Isoleeritus (Isolation): paralleelsed transaktsioonid ei mõjuta üksteist, tulemuseks on selline, nagu nad oleksid täidetud järjestikku.
  • Püsivus (Durability): pärast muudatuste kinnitamist (commit) säilivad need isegi süsteemi rikke korral.

Näide C#-s, kasutades ADO.NET transaktsioone:

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;
        }
    }
}