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