Sobes.tech
Middle

რა არის არსებული იზოლაციის დონეების კლასიფიკაცია?

sobes.tech AI

პასუხი AI-სგან

დაცვითი დონეები მონაცემთა ბაზებში განსაზღვრავს, რამდენად არის ტრანზაქციები ერთმანეთისგან და სხვა ტრანზაქციების მიერ განხორციელებული ცვლილებებისგან იზოლირებული. ისინი თავიდან აცილებენ სხვადასხვა პარალელური წვდომის პრობლემებს:

SQL-ის სტანდარტული დონეების კლასიფიკაცია:

  • READ UNCOMMITTED
    • ნებადართულია არასამყარო ცვლილებების წაკითხვა (დამაბნეველი კითხვა / dirty read):
    • პრობლემები: დამაბნეველი კითხვა, განმეორებადი კითხვა, ფანტომური კითხვა:
  • READ COMMITTED
    • ნებადართულია მხოლოდ დადასტურებული ცვლილებების წაკითხვა:
    • აკრძალულია დამაბნეველი კითხვა:
    • პრობლემები: განმეორებადი კითხვა, ფანტომური კითხვა:
    • ყველაზე ხშირად გამოყენებადი დონე:
  • REPEATABLE READ
    • გარანტია, რომ იგივე სარჩევის ობიექტების განმეორებითი კითხვა ერთ ტრანზაქციაში იგივე მონაცემებს დააბრუნებს, თუ სხვა ტრანზაქციები არ შეცვლიან მათ:
    • აკრძალულია დამაბნეველი კითხვა და განმეორებადი კითხვა:
    • პრობლემა: ფანტომური კითხვა (ახალი სარჩევის ობიექტების გამოჩენა, რომლებიც შეესაბამება შერჩევის პირობებს):
  • SERIALIZABLE
    • უმაღლესი იზოლაციის დონე:
    • უზრუნველყოფს სრულყოფილ გამიჯვნას პარალელური წვდომის პრობლემებისგან:
    • ტრანზაქციები შესრულდება ისე, როგორც ისინი შესრულებულიყო თანმიმდევრობით:
    • აკრძალულია დამაბნეველი კითხვა, განმეორებადი კითხვა და ფანტომური კითხვა:
    • შეიძლება მნიშვნელოვანი გავლენა მოახდინოს პროდუქტიულობაზე:

პარალელური წვდომის პრობლემები:

პრობლემა READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE
დამაბნეველი კითხვა დიახ არა არა არა
განმეორებადი კითხვა დიახ დიახ არა არა
ფანტომური კითხვა დიახ დიახ დიახ არა

მონაცემთა ბაზის დონე არჩევა დამოკიდებულია პროგრამის მოთხოვნებზე და მონაცემთა მთლიანობისა და პროდუქტიულობის შორის ბალანსზე.