Tranzaksiya modellari turli xil xususiyatlarga ko'ra tasniflanadi:
bitim tuzilishi;
tranzaksiya doirasidagi moslashuv;
davomiyligi.
Tranzaksiya turlari:
1. Yassi (klassik)
2. zanjirlangan
3. O‘rnatilgan
Yassi operatsiyalar 4 ta klassik xususiyat bilan tavsiflanadi:
atomiklik;
izchillik;
izolyatsiya;
chidamlilik (kuch).
Ushbu operatsiyalar ba'zan ACID operatsiyalari deb ataladi.
KISLOTA - Atomlik, Konsistensiya, izolyatsiya, chidamlilik.
Yuqorida aytib o'tilgan xususiyatlar quyidagilarni anglatadi:
Atomlik - bu bitimning bir butun sifatida bajarilishi yoki umuman bajarilmasligida ifodalanadi.
Muvofiqlik - tranzaktsiyalar amalga oshirilayotganda ma'lumotlar bir izchil holatdan ikkinchisiga o'tishini ta'minlaydi, ya'ni tranzaktsiya ma'lumotlarning o'zaro izchilligini buzmaydi.
Izolyatsiya - bu ma'lumotlar bazasiga kirish uchun raqobatlashayotgan tranzaktsiyalar ketma-ket, bir-biridan ajratilgan holda jismoniy qayta ishlanishini anglatadi, lekin foydalanuvchilarga ular parallel ravishda bajarilayotgandek ko'rinadi.
Chidamlilik - agar tranzaksiya muvaffaqiyatli yakunlangan bo'lsa, u tomonidan kiritilgan ma'lumotlardagi o'zgarishlar hech qanday sharoitda yo'qolmaydi.
Tranzaksiyani yakunlash variantlari:
1. Agar barcha bayonotlar muvaffaqiyatli bo'lsa va tranzaksiya davomida apparat yoki dasturiy ta'minotda nosozliklar ro'y bermasa, tranzaktsiya amalga oshiriladi.
Tranzaksiyani amalga oshirish - tranzaktsiyalarni bajarish jarayonida amalga oshirilgan ma'lumotlar bazasidagi o'zgarishlarni diskka yozish harakati. Bitimlarni amalga oshirish deganda uning bajarilishining barcha natijalari doimiy bo'lib qoladi va joriy tranzaksiya tuzilgandan keyingina boshqa bitimlar uchun ko'rinadigan bo'ladi.
2. Agar tranzaksiyalarni bajarish jarayonida uni normal bajarishni imkonsiz qiladigan hodisa ro'y bergan bo'lsa, ma'lumotlar bazasini dastlabki holatiga qaytarish kerak.
Tranzaksiyani qaytarish - bu SQL bayonotlari orqali kiritilgan barcha ma'lumotlar o'zgarishlarini joriy kutilayotgan tranzaktsiyaning tanasiga qaytaradigan harakat. Tranzaktsiyadagi har bir operator ishning o'ziga xos qismini bajaradi, lekin butun ishni muvaffaqiyatli yakunlash uchun ularning barcha operatorlarini so'zsiz bajarish talab qilinadi.
ANSI / ISO SQL standartida tranzaktsiya 4 ta mumkin bo'lgan usullardan biri bilan tugaydi (1-rasm):
Guruch. 1. ANSI / ISO tranzaksiya modeli
1. COMMIT bayonoti bitimning muvaffaqiyatli yakunlanishini anglatadi; undan foydalanish joriy tranzaksiya doirasida ma'lumotlar bazasiga doimiy o'zgarishlar kiritadi;
2. ROLLBACK operatori ushbu tranzaksiya doirasida ma'lumotlar bazasiga kiritilgan o'zgartirishlarni bekor qilgan holda tranzaksiyani bekor qiladi; yangi tranzaksiya ROLLBACK-dan foydalangandan so'ng darhol boshlanadi;
3. joriy tranzaksiya boshlangan dasturning muvaffaqiyatli yakunlanishi tranzaksiyaning muvaffaqiyatli yakunlanishini bildiradi (go'yo COMMIT bayonotidan foydalanilgandek);
4. dasturning noto'g'ri tugatilishi tranzaksiyani bekor qiladi (go'yo ROLLBACK bayonoti ishlatilgandek).
Tranzaksiya jurnali ma'lumotlar bazasida ishonchli ma'lumotlarni saqlashni ta'minlash uchun mo'ljallangan. Va bu talab, xususan, har qanday apparat va dasturiy ta'minot nosozliklaridan keyin ma'lumotlar bazasining barqaror holatini tiklash qobiliyatini nazarda tutadi. Shubhasiz, qayta tiklashni amalga oshirish uchun ba'zi qo'shimcha ma'lumotlar kerak bo'ladi, ular ma'lumotlar bazasini o'zgartirish jurnali shaklida saqlanadi, ular tranzaktsiyalar jurnali deb ataladi.
Qattiq halokatdan tiklanish
Qiyin nosozlikdan ma'lumotlar bazasining so'nggi barqaror holatiga qayta tiklash ma'lumotlar bazasi jurnali va zaxira nusxasiga asoslanadi.
Qayta tiklash ma'lumotlar bazasini arxiv nusxasidan nusxalashdan boshlanadi. Keyin barcha tugallangan tranzaktsiyalar uchun takrorlash amalga oshiriladi, ya'ni operatsiyalar forvard tartibida qayta bajariladi.Tranzaktsiyalarni parallel bajarishAgar ma'lumotlar bazasi bilan bir vaqtning o'zida bir nechta foydalanuvchi ishlayotgan bo'lsa, u holda ma'lumotlar bazasi ma'lumotlar bazasi alohida tranzaktsiyalarni to'g'ri bajarishi va nosozliklardan keyin ma'lumotlar bazasining izchil holatini tiklashi kerak, balki u barcha foydalanuvchilarning bir xil ma'lumotlar ustida to'g'ri parallel ishlashini ta'minlashi kerak.
Tranzaksiya xususiyatlari. Tranzaksiyani yakunlash usullari Har xil xususiyatlarga ko'ra tasniflanishi mumkin bo'lgan turli xil operatsiyalar modellari mavjud, shu jumladan tranzaksiya tuzilishi, tranzaksiya ichidagi parallellik, davomiylik va boshqalar.
Hozirgi vaqtda operatsiyalarning quyidagi turlari ajratiladi: yassi yoki klassik operatsiyalar, zanjirli operatsiyalar va ichki o'zaro operatsiyalar.
Yassi operatsiyalar atomiklik, mustahkamlik, izolyatsiya va chidamlilikning klassik xususiyatlari bilan tavsiflanadi.
· Atomlik xususiyati bitimning yaxlit bajarilishi yoki umuman bajarilmasligida ifodalanadi.
· Muvaffaqiyatlilik xususiyati tranzaktsiya davom etayotganda ma'lumotlarning bir izchil holatdan boshqa izchil holatga o'tishini ta'minlaydi - tranzaksiya ma'lumotlarning o'zaro izchilligini buzmaydi.
· Izolyatsiya xususiyati ma'lumotlar bazasiga kirish uchun raqobatlashayotgan tranzaktsiyalar jismoniy jihatdan ketma-ket, bir-biridan ajratilgan holda qayta ishlanishini anglatadi, lekin foydalanuvchilarga ular parallel ravishda bajarilayotgandek ko'rinadi.
· Uzoq umr ko'rish xususiyati shuni anglatadiki, agar tranzaksiya muvaffaqiyatli yakunlangan bo'lsa, unda kiritilgan ma'lumotlar o'zgarishlari hech qanday sharoitda, hatto keyingi xatolar bo'lsa ham yo'qolmaydi.
Tranzaktsiyani bajarish uchun ikkita variant mavjud:
(Majburiyat - bu tranzaktsiyani bajarish paytida kiritilgan ma'lumotlar bazasidagi o'zgarishlarni diskka yozish). Agar tranzaktsiya amalga oshirilmasa, bu o'zgarishlar orqaga qaytarilishi va ma'lumotlar bazasi tranzaksiya boshlangan paytdagi holatga qaytarilishi mumkin. Tranzaksiyani amalga oshirish bitimning barcha natijalari doimiy bo'lishini anglatadi. Ular joriy tranzaksiya amalga oshirilgandan keyingina boshqa tranzaktsiyalarga ko'rinadi.
Ko'pgina hollarda siz chaqirilgan parametrni o'rnatishingiz mumkin AVTOKOMIT, bu barcha bajarilgan buyruqlarni avtomatik ravishda eslab qoladi va xatoga olib kelgan harakatlar har doim avtomatik ravishda bekor qilinadi. Odatda bu rejim quyidagi buyruq bilan o'rnatiladi:
mumkin MAVJAT QILINGTRANAKSIYA.
Buyruqni bajarish ORTAGA BERISH TRANAKSIYASIyoki MAVJAT QILINGTRANAKSIYAtetikni buzmaydi, shuning uchun turli shartlar bajarilganda tranzaksiyani bir necha marta orqaga qaytarishga urinishlarni diqqat bilan kuzatib borishingiz kerak.
Tranzaksiyaga misol: