Junior — Middle
Explique qué son las transacciones en los sistemas de gestión de bases de datos y sus propiedades principales.
sobes.tech AI
Respuesta de la IA
Una transacción en un sistema de gestión de bases de datos (SGBD) es una secuencia de operaciones que se ejecuta como una unidad indivisible. La idea principal es que todas las operaciones de la transacción se completen con éxito o ninguna se aplique (atomicidad).
Las propiedades principales de las transacciones se describen con el acrónimo ACID:
- Atomicidad: la transacción se realiza por completo o no se realiza en absoluto.
- Consistencia: después de completar la transacción, la base de datos permanece en un estado correcto, satisfaciendo todas las restricciones.
- Aislamiento: las transacciones paralelas no afectan unas a otras, resultando como si se ejecutaran secuencialmente.
- Durabilidad: después de confirmar (commit) los cambios, estos se mantienen incluso en caso de fallos del sistema.
Ejemplo en C# usando transacciones en 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;
}
}
}