Sobes.tech
Junior

Маалыматтар базасында транзакциялар эмне үчүн колдонулат?

sobes.tech AI

AIден жооп

Маалыматтар базасындагы операциялардын атомдуулугу, туруктуулугу, изоляциясы жана узак мөөнөттүүлүгү (ACID) камсыз кылынат.

  • Атомдуулук: Бардык операциялар транзакцияда толугу менен аткарылат же эч качан аткарылбайт. Эгер бир операция ийгиликсиз болсо, бардык өзгөртүүлөр кайтарылат.
  • Тууралуулук: Транзакция маалымат базасын бир туруктуу абалдан башкасына өткөрөт. Чектөөлөрдүн бузулушу алдын алынат (мисалы, уникалдуу ачкычтар).
  • Изоляция: Ар бир транзакция системеде жалгыздай ишке ашат сыяктуу. Бир транзакциянын жасаган өзгөртүүлөрү башка транзакциялар тарабынан көрүнө элек, анын аяктоосуна чейин.
  • Узак мөөнөттүүлүк: Ийгиликтүү аяктагандан кийин, анын өзгөртүүлөрү сакталат жана системанын бузулушу учурунда да жоголбойт.

Маалыматтардын бүтүндүгүн камсыз кылуу үчүн транзакциялар маанилүү, айрыкча, бирге ишке ашырылышы керек болгон же эч качан ишке ашырылбашы керек болгон бир нече байланышкан операциялар үчүн. Мисалы, сактоо эсебинен каражаттарды учурдагы эсебине которуу.

-- Транзакциянын башталышы
START TRANSACTION;

-- Биринчи эсептен чыгуу
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;

-- Эгер алдыңкы операция ийгиликтүү болсо, экинчи эсебине кошуу
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- Эки операциянын да ийгиликтүү болгонун жана ката жоктугун текшерүү
-- IF ката болсо
--   ROLLBACK; -- Бардык өзгөртүүлөрдү кайтаруу
-- ELSE
--   COMMIT; -- Бардык өзгөртүүлөрдү бекитүү
-- END IF;

-- Эки команда да ийгиликтүү аяктады деп эсептейбиз
COMMIT; -- Транзакцияны бекитүү
-- ROLLBACK; -- Ката болсо, транзакцияны кайтаруу