Junior — Middle
Objasnite šta su transakcije u sistemima za upravljanje bazama podataka i njihove osnovne osobine.
sobes.tech АИ
Одговор од АИ
Transakcija u sistemu za upravljanje bazama podataka (SGBD) je niz operacija koje se izvršavaju kao nedeljiva celina. Glavna ideja je da sve operacije transakcije budu uspešno završene ili nijedna od njih ne bude primenjena (atomičnost).
Osobine transakcija opisuju se akronimom ACID:
- Atomičnost: transakcija se izvršava u celosti ili uopšte ne.
- Doslednost: nakon završetka transakcije, baza podataka ostaje u ispravnom stanju, zadovoljavajući sve ograničenja.
- Izolovanost: paralelne transakcije ne utiču jedna na drugu, rezultat je takav kao da su izvršene sekvencijalno.
- Trajnost: nakon potvrde (commit), promene ostaju sačuvane čak i u slučaju kvara sistema.
Primer u C# sa transakcijama u 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;
}
}
}