Junior — Middle
Explique o que são transações em sistemas de gestão de bases de dados e suas principais propriedades.
sobes.tech IA
Resposta da IA
Uma transação num sistema de gestão de bases de dados (SGBD) é uma sequência de operações que é executada como uma unidade indivisível. A ideia principal é que todas as operações da transação sejam bem-sucedidas ou nenhuma seja aplicada (atomicidade).
As principais propriedades das transações são descritas pela sigla ACID:
- Atomicidade: a transação é concluída na totalidade ou não é efetuada.
- Consistência: após a transação terminar, a base de dados permanece num estado correto, satisfazendo todas as restrições.
- Isolamento: transações paralelas não afetam umas às outras, resultando como se fossem executadas sequencialmente.
- Durabilidade: após a confirmação (commit), as alterações permanecem mesmo em caso de falhas do sistema.
Exemplo em C# usando transações no 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;
}
}
}