Sobes.tech
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;
        }
    }
}