Middle
Əməliyyatların izolasiya növləri hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Əməliyyatların izolasyonu, bir əməliyyatın paralel şəkildə icra olunan digər əməliyyatların ara dəyişikliklərini nə dərəcədə görə biləcəyini müəyyən edir.
SQL standartı dörd izolasiya səviyyəsini müəyyən edir:
- Read Uncommitted (Təsdiqlənməmiş oxuma): Ən aşağı səviyyə. Bir əməliyyat digər əməliyyatların təsdiqlənməmiş dəyişikliklərini oxuya bilər (kirlilik oxuması).
- Read Committed (Təsdiqlənmiş oxuma): Əməliyyat yalnız digər əməliyyatlar tərəfindən təsdiqlənmiş məlumatları oxuya bilər. "Kirlilik" oxumasını qarşısını alır.
- Repeatable Read (Təkrarlanan oxuma): Əməliyyat, əməliyyat zamanı oxunan məlumatların təkrarlanan oxuma zamanı dəyişməyəcəyini təmin edir. "Kirlilik" və "təkrarlanmayan" oxumağı qarşısını alır. "Fantomlar" baş verə bilər.
- Serializable (Serializasiya olunmuş): Ən yüksək izolasiya səviyyəsidir. Paralel əməliyyatların ardıcıl kimi icra olunmasını təmin edir. Bütün istənməyən hadisələrdən: "kirlilik" oxuma, "təkrarlanmayan" oxuma və "fantomlar"dan qaçınır.
Paralel əməliyyatların icrasında istənməyən hadisələr:
- Dirty Read (Kirlilik oxuma): A əməliyyatı, B əməliyyatı tərəfindən edilən və hələ təsdiqlənməmiş məlumatları oxuyur. Əgər B əməliyyatı dəyişiklikləri geri alarsa, A səhv məlumatlarla işləyəcək.
- Non-repeatable Read (Təkrarlanmayan oxuma): A əməliyyatı eyni məlumatı iki dəfə oxuyur, lakin arada B əməliyyatı bu məlumatlarda dəyişiklik edir. Nəticədə, A müxtəlif dəyərlər alır.
- Phantom Read (Fantom oxuma): A əməliyyatı, satırların toplusunu qaytaran sorğu icra edir. B əməliyyatı, A sorğusunun kriteriyalarına uyğun satırların əlavə və ya silinməsini təsdiqləyir. Yenidən icra etdikdə, A fərqli satırların toplusunu alır.
İzolasiya səviyyələrinə görə istənməyən hadisələrin ümumi cədvəli:
| İzolasiya səviyyəsi | Kirlilik oxuma | Təkrarlanmayan oxuma | Fantomlar |
|---|---|---|---|
| Read Uncommitted | Bəli | Bəli | Bəli |
| Read Committed | Xeyr | Bəli | Bəli |
| Repeatable Read | Xeyr | Xeyr | Bəli |
| Serializable | Xeyr | Xeyr | Xeyr |
İzolasiya səviyyəsinin seçimi, tətbiqin performansına və düzgünlüyünə təsir edir. Daha yüksək izolasiya səviyyəsi, əlavə xərcləri artırır.