Junior — Middle
Wyjaśnij, czym są transakcje w systemach zarządzania bazami danych i ich główne cechy.
sobes.tech AI
Odpowiedź od AI
Transakcja w systemie zarządzania bazami danych (DBMS) to sekwencja operacji, która jest wykonywana jako niepodzielna jednostka. Główną ideą jest to, że wszystkie operacje transakcji zakończą się sukcesem lub żadna z nich nie zostanie zastosowana (atomowość).
Główne właściwości transakcji opisuje akronim ACID:
- Atomowość: transakcja jest wykonywana w całości lub wcale.
- Spójność: po zakończeniu transakcji baza danych pozostaje w poprawnym stanie, spełniając wszystkie ograniczenia.
- Izolacja: równoległe transakcje nie wpływają na siebie, wynik jest taki, jakby były wykonywane kolejno.
- Trwałość: po zatwierdzeniu (commit) zmiany są zachowywane nawet w przypadku awarii systemu.
Przykład w C# z użyciem transakcji w 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;
}
}
}