ACID იცავს თქვენს მონაცემთა ბაზის მონაცემებს
მონაცემთა ბაზის დიზაინის ACID მოდელი მონაცემთა ბაზის თეორიის ერთ-ერთი უძველესი და ყველაზე მნიშვნელოვანი ცნებაა. იგი ადგენს ოთხ მიზანს, რომ ყველა მონაცემთა ბაზის მართვის სისტემა უნდა მიაღწიოს მიღწევას: ატომიურობა, თანმიმდევრულობა, იზოლაცია და გამძლეობა. Relational მონაცემთა ბაზა, რომელიც ვერ აკმაყოფილებს ამ ოთხივე მიზანს, არ შეიძლება ჩაითვალოს საიმედო. მონაცემთა ბაზა, რომელიც ფლობს ამ მახასიათებლებს, ითვლება ACID-compliant.
ACID განსაზღვრული
ავიღოთ ერთი წუთი, რათა დეტალურად შეისწავლოს თითოეული ეს მახასიათებლები:
- ატომურიზმი აცხადებს, რომ მონაცემთა ბაზის მოდიფიკაციებმა უნდა დაიცვას "ყველა ან არაფერი" წესი. თითოეული გარიგება ითვლება "ატომური". თუ გარიგების ერთი ნაწილი ვერ ხერხდება, მთელი გარიგება ვერ ხერხდება. კრიტიკულია, რომ მონაცემთა ბაზების მართვის სისტემა ინარჩუნებს გარიგებების ატომურ ბუნებას ნებისმიერი DBMS, ოპერაციული სისტემა ან აპარატურის უკმარისობის მიუხედავად.
- თანმიმდევრულობა ითვალისწინებს, რომ მონაცემთა მხოლოდ გადამოწმება მოხდება მონაცემთა ბაზაში. თუ რაიმე მიზეზით, გარიგება შესრულებულია მონაცემთა ბაზის თანმიმდევრულობის წესების დარღვევის შემთხვევაში, მთელი გარიგება უკან დაიხურება და მონაცემთა ბაზის აღდგენა ხდება ამ წესების შესაბამისად. მეორეს მხრივ, თუ გარიგება წარმატებით ახორციელებს, ის მიიღებს მონაცემთა ბაზას ერთი სახელმწიფოდან, რომელიც შეესაბამება სხვა სახელმწიფოს წესებს, რაც ასევე შეესაბამება წესებს.
- იზოლაცია მოითხოვს, რომ ერთდროულად მომხდარი მრავალჯერადი ტრანზაქცია გავლენას არ ახდენს ერთმანეთის შესრულებაზე. მაგალითად, თუ ჯო ეხება მონაცემთა ბაზასთან არსებულ გარიგებას იმავდროულად, რომ მერი სხვაგვარად გარიგებას აწარმოებს, ორივე ოპერაცია უნდა იმოქმედოს მონაცემთა ბაზაში იზოლირებულ რეჟიმში. მონაცემთა ბაზაში უნდა ჩაატაროს ჯო მთელი გარიგება მერიის შესრულებამდე, ან პირიქით. ეს ხელს უშლის ჯო-ს გარიგებას შუალედური მონაცემების წაკითხვით, რომლებიც წარმოადგენენ მერიის გარიგების ნაწილის ეფექტს, რაც საბოლოო ჯამში არ შეასრულებს მონაცემთა ბაზას. გაითვალისწინეთ, რომ იზოლაციის ქონება არ უზრუნველყოფს იმის უზრუნველყოფას, რომ გარიგება განახორციელებს პირველს - მხოლოდ იმას, რომ გარიგება ერთმანეთს ხელს არ შეუშლის
- გამძლეობა უზრუნველყოფს, რომ მონაცემთა ბაზაში განხორციელებული ნებისმიერი ტრანზაქცია არ დაიკარგება. გამძლეობა უზრუნველყოფილია მონაცემთა ბაზის სარეზერვო და გარიგების ჟურნალების გამოყენებით, რაც ხელს შეუწყობს ჩადენილი ტრანზაქციების აღდგენას რომელიმე შემდგომი პროგრამული უზრუნველყოფის ან აპარატურის დაზიანებების მიუხედავად.
როგორ მუშაობს ACID პრაქტიკაში
მონაცემთა ბაზის ადმინისტრატორები გამოიყენებენ რამდენიმე სტრატეგიას, რათა აღასრულონ ACID.
ატომური ენერგიისა და გამძლეობის აღსრულების ერთ-ერთი გამოყენებაა დაწერილი (WAL), რომელშიც ნებისმიერი ტრანზაქცია დეტალურადაა დაწერილი ჟურნალში, რომელიც მოიცავს როგორც ორჯერ, ისე გაუქმებას. ეს უზრუნველყოფს მონაცემთა ბაზის შეცდომას, მონაცემთა ბაზის შემოწმებას ჟურნალი და შედარება მისი შინაარსი სახელმწიფო მონაცემთა ბაზაში.
კიდევ ერთი მეთოდი, რომელიც გამოიყენება ატომური და მდგრადობის გასაუმჯობესებლად, არის ჩრდილი-პეიჯინგი , რომელშიც შეიცვალა მონაცემები, როდესაც შეიცვალა მონაცემები. შეკითხვის განახლებები იწერება ჩრდილში გვერდზე, ვიდრე მონაცემთა ბაზაში არსებული რეალური მონაცემები. მონაცემთა ბაზა თავად შეიცვალა მხოლოდ მაშინ, როდესაც რედაქტირება დასრულებულია.
კიდევ ერთი სტრატეგია ეწოდება ორფაზის ვალდებულებას , განსაკუთრებით სასარგებლოა განაწილებული მონაცემთა ბაზის სისტემებში. ეს ოქმი ცალ-ცალკე ითხოვს მონაცემების შეცვლის ორ ფაზად: ვალდებულების მოთხოვნის ფაზა და ჩაიდინოს ფაზა. მოთხოვნის ფაზაში, ყველა DBMS- ის ქსელში, რომელიც დაზარალდა გარიგებაზე, უნდა დაადასტუროს, რომ მათ მიიღეს და გააჩნიათ ტრანზაქციის განხორციელების შესაძლებლობა. ერთხელ დადასტურება მიიღება ყველა შესაბამისი DBMS- ებისაგან, ჩაიდინოს ვალდებულების ფაზა, რომელშიც მონაცემები რეალურად შეცვლილია.