Sobes.tech
Junior — Middle

Magyarázza el, hogy mik a tranzakciók az adatbázis-kezelő rendszerekben és azok fő jellemzői.

sobes.tech MI

Válasz az MI-től

Egy tranzakció egy adatbázis-kezelő rendszerben (DBMS) olyan műveletek sorozata, amelyeket egységes egészként hajtanak végre. A fő ötlet az, hogy vagy minden művelet sikeresen végrehajtódik, vagy egyik sem (atomitás).

A tranzakciók fő jellemzőit az ACID rövidítés írja le:

  • Atomitás: a tranzakció teljes egészében végrehajtódik vagy egyáltalán nem.
  • Konzisztencia: a tranzakció befejezése után az adatbázis helyes állapotban marad, minden korlátozást kielégítve.
  • Izoláció: párhuzamos tranzakciók nem befolyásolják egymást, az eredmény olyan, mintha egymás után hajtódnának végre.
  • Tartósság: a megerősítés (commit) után a változtatások megmaradnak még rendszerhiba esetén is.

Példa C#-ban tranzakciók használatával az ADO.NET-ben:

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;
        }
    }
}