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