Sobes.tech
Junior — Middle

Тавзеҳ диҳед, ки транзаксияҳо дар системаи идоракунии маълумотҳо чӣ гунаанд ва хусусиятҳои асосии онҳо.

sobes.tech AI

Ҷавоб аз AI

Ҳамкории системасида (DBMS) транзакция — бу бир бутун сифатида амалга ошириладиган операциялар серияси. Асосий ғоя — транзакциянинг барча операциялари муваффақиятли бўлса ёки ҳеч бири амалга оширилмаса (атомиклик).

Транзакциялар асосий хусусиятлари ACID қисқартмаси билан тасвирланади:

  • Атомиклик: транзакция тўлиқ амалга оширилади ёки ҳеч қачон амалга оширилмайди.
  • Мос келиш: транзакция тугашидан кейин маълумотлар базаси тўғри ҳолатда қолади, барча чекловларни бажаради.
  • Изолятсия: параллел транзакциялар бир-бирига таъсир қилмайди, натижа шундай бўладики, улар кетма-кет амалга оширилган каби.
  • Мўлжаллик: тасдиқлангандан (commit) кейин ўзгаришлар сақланади, ҳатто тизимдаги муаммолар бўлса ҳам.

C#да 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;
        }
    }
}