Junior — Middle
Обяснете какво представляват транзакциите в системите за управление на бази данни и техните основни свойства.
sobes.tech AI
Отговор от AI
Транзакцията в система за управление на бази данни (СУБД) е последователност от операции, която се изпълнява като неделима единица. Основната идея е, че всички операции на транзакцията или се изпълняват успешно, или никоя не се прилага (атомарност).
Основните свойства на транзакциите са описани с акронима ACID:
- Атомарност: транзакцията се изпълнява напълно или изобщо не се изпълнява.
- Съвместимост: след приключване на транзакцията базата данни остава в правилно състояние, изпълнявайки всички ограничения.
- Изолираност: паралелните транзакции не влияят една на друга, резултатът е такъв, сякаш се изпълняват последователно.
- Здравина: след потвърждаване (commit) промените се запазват дори при сривове на системата.
Пример в C# с използване на транзакции в 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;
}
}
}