Sobes.tech
Junior — Middle

Explique ce que sont les transactions dans les systèmes de gestion de bases de données et leurs propriétés principales.

sobes.tech IA

Réponse de l'IA

Une transaction dans un système de gestion de bases de données (SGBD) est une séquence d'opérations qui s'exécute comme une unité indivisible. L'idée principale est que toutes les opérations de la transaction réussissent ou aucune n'est appliquée (atomicité).

Les propriétés principales des transactions sont décrites par l'acronyme ACID :

  • Atomicité : la transaction est entièrement réalisée ou pas du tout.
  • Cohérence : après la fin de la transaction, la base de données reste dans un état correct, respectant toutes les contraintes.
  • Isolation : les transactions parallèles n'influencent pas les unes les autres, donnant un résultat comme si elles étaient exécutées séquentiellement.
  • Durabilité : après la validation (commit), les changements sont conservés même en cas de panne du système.

Exemple en C# utilisant des transactions dans 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;
        }
    }
}