Sobes.tech
Principal

რა არის ტრანზაქციები მონაცემთა ბაზებში? რა არის ტრანზაქციების იზოლაციის დონეები, რა მნიშვნელობა აქვთ მათ და რა არის ძირითადი განსხვავება?

sobes.tech AI

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

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

  • ატომარობა — ყველა ოპერაცია სრულად ხორციელდება ან საერთოდ არაა ხორციელებული.
  • კონსისტენცია — ტრანზაქცია გადადის მონაცემთა ბაზას ერთ სწორ მდგომარეობიდან მეორე სწორ მდგომარეობაზე.
  • იზოლაცია — პარალელური ტრანზაქციები ერთმანეთზე გავლენას არ ახდენენ.
  • მყარი — დამტკიცების (commit) შემდეგ ცვლილებები ინახება, მიუხედავად გატყდომისა.

ტრანზაქციის იზოლაციის დონეები განსაზღვრავს ერთ ტრანზაქციის ცვლილებების ხილვადობის ხარისხს სხვა ტრანზაქციებისთვის და გავლენას ახდენს შესაძლო ანომალიებზე:

  1. Read Uncommitted — ტრანზაქცია ხედავს სხვა ტრანზაქციების დაუმტკიცებელ ცვლილებებს (დაბინძურებული კითხვა).
  2. Read Committed — მხოლოდ დამტკიცებული ცვლილებები ჩანს, მაგრამ შეიძლება მოხდეს არავეორებადი კითხვა.
  3. Repeatable Read — გარანტიაა, რომ იგივე მონაცემების განმეორებითი კითხვა გამოიღებს ერთსა და იმავ შედეგს, მაგრამ შეიძლება მოხდეს ფანტომური კითხვა (ახალი სვეტები).
  4. Serializable — ყველაზე მკაცრი დონე, ტრანზაქციები შესრულდება როგორც სერიული, ყველა ანომალია აღმოფხვრილია.

ძირითადი განსხვავება — ეს არის ბალანსი შესრულებასა და მკაცრ იზოლაციას შორის. რაც უფრო მაღალია დონე, მით ნაკლებია პარალელიზმი, მაგრამ მონაცემთა მთლიანობა მაღალია.