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 შეცდომა THEN
-- ROLLBACK; -- ყველა ცვლილების უკან დაბრუნება
-- ELSE
-- COMMIT; -- ყველა ცვლილების დამტკიცება
-- END IF;
-- ვივარაუდოთ, რომ ორივე ბრძანება წარმატებით შესრულდა
COMMIT; -- ტრანზაქციის დამტკიცება
-- ROLLBACK; -- შეცდომის შემთხვევაში, ტრანზაქციის უკან დაბრუნება