Xulosa
Shunday qilib, agar siz "Tranzaksiya ... miqdorida" matnli xabarni olgan bo'lsangiz, unda siz hech narsa qilishingiz shart emas - bu yana bir firibgarlik, hozir ko'p. Shuni ta'kidlashni istardimki, SMSda ko'rsatilgan firibgarlarning telefonlarini kuzatish deyarli mumkin emas. Bu raqamlarning barchasi bitta operatordan sotib olinadi va u erda hech kim xaridorlarni yaxshi va yomonga ajratmaydi. Kompaniya qila oladigan maksimal narsa, tasdiqlangan shikoyatlardan keyin raqamni blokirovka qilishdir, ammo bu etarli emas, chunki firibgarlar ularni yuzlab sotib oladi.
Har xil xususiyatlarga ko'ra tasniflanishi mumkin bo'lgan turli xil operatsiyalar modellari mavjud, ular orasida bitim 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 yoki an'anaviy tranzaktsiyalar to'rtta klassik xususiyat bilan tavsiflanadi: atomiklik, mustahkamlik, izolyatsiya, chidamlilik (kuchlilik) - ACID (Atomicity, Consistency, izolyatsiya, chidamlilik). An'anaviy operatsiyalar ba'zan ACID operatsiyalari deb ataladi. Yuqorida aytib o'tilgan xususiyatlar quyidagilarni anglatadi:
Atomlik xossasi (Atomicity) tranzaksiyaning bir butun sifatida bajarilishi yoki umuman bajarilmasligida ifodalanadi.
Consistency xususiyati tranzaktsiyalar davom etayotganda ma'lumotlar bir izchil holatdan ikkinchisiga o'tishini ta'minlaydi - tranzaksiya ma'lumotlarning o'zaro muvofiqligini buzmaydi.
Izolyatsiya xususiyati ma'lumotlar bazasiga kirish uchun raqobatlashuvchi tranzaktsiyalar bir-biridan ajratilgan holda ketma-ket jismoniy ishlov berilishini anglatadi, lekin foydalanuvchilarga ular parallel ravishda bajarilayotgandek ko'rinadi.
Chidamlilik xususiyati quyidagicha talqin qilinadi: agar tranzaksiya muvaffaqiyatli yakunlangan bo'lsa, u tomonidan kiritilgan ma'lumotlardagi o'zgarishlar hech qanday sharoitda (hatto keyingi xatolar bo'lsa ham) yo'qolishi mumkin emas.
Tranzaktsiyani bajarish uchun ikkita variant mavjud. Agar barcha bayonotlar muvaffaqiyatli bo'lsa va tranzaksiya davomida apparat yoki dasturiy ta'minotda nosozliklar ro'y bermasa, tranzaktsiya amalga oshiriladi.
Tranzaksiyani amalga oshirish - bu operatsiyani bajarish jarayonida ma'lumotlar bazasiga kiritilgan o'zgarishlarni diskka yozish harakati.
Tranzaktsiya amalga oshirilgunga qadar, ushbu o'zgarishlarni orqaga qaytarish, ma'lumotlar bazasini tranzaktsiya boshlangan paytdagi holatga qaytarish mumkin. Tranzaksiyani amalga oshirish bitimning barcha natijalari doimiy bo'lishini anglatadi. Ular joriy tranzaksiya amalga oshirilgandan keyingina boshqa tranzaktsiyalarga ko'rinadi. Shu nuqtaga qadar, tranzaktsiyaga ta'sir qiladigan barcha ma'lumotlar joriy tranzaksiya boshida turgan holatda foydalanuvchiga "ko'rinadigan" bo'ladi.
Agar tranzaktsiyani bajarish jarayonida uni normal bajarishni imkonsiz qiladigan biror narsa yuz bersa, ma'lumotlar bazasini asl holatiga qaytarish kerak. Tranzaksiyani qaytarish - bu SQL bayonotlari orqali kiritilgan barcha ma'lumotlar o'zgarishlarini joriy kutilayotgan tranzaktsiyaning tanasiga qaytaradigan harakat.
Bitimdagi har bir bayonot ishning o'ziga xos qismini bajaradi, lekin butun ish muvaffaqiyatli yakunlanishi uchun uning barcha bayonotlari shartsiz bajarilishi kerak. Tranzaktsiyadagi bayonotlarni guruhlash ma'lumotlar bazasiga butun guruh bir butun sifatida bajarilishi kerakligini va bu bajarilishi avtomatik ravishda qo'llab-quvvatlanishi kerakligini aytadi.
ANSI / ISO SQL standarti tranzaksiya modelini va COMMIT va ROLLBACK bayonotlarining funktsiyalarini belgilaydi. Standart ma'lumotlar bazasining joriy holatini o'zgartiradigan foydalanuvchi tomonidan boshlangan yoki dasturda mavjud bo'lgan birinchi SQL bayonotidan tranzaksiya boshlanishini belgilaydi. Barcha keyingi SQL bayonotlari tranzaktsiyaning asosiy qismini tashkil qiladi. Tranzaktsiya to'rtta mumkin bo'lgan usullardan biri bilan tugaydi (11.1-rasm):
COMMIT bayonoti bitimning muvaffaqiyatli yakunlanishini anglatadi; undan foydalanish joriy tranzaksiya doirasida ma'lumotlar bazasiga doimiy o'zgarishlar kiritadi;
ROLLBACK bayonoti ushbu tranzaktsiyaning bir qismi sifatida ma'lumotlar bazasiga kiritilgan o'zgarishlarni bekor qilgan holda tranzaktsiyani bekor qiladi; yangi tranzaksiya ROLLBACK-dan foydalangandan so'ng darhol boshlanadi;
joriy tranzaksiya boshlangan dasturni muvaffaqiyatli yakunlash tranzaktsiyaning muvaffaqiyatli yakunlanishini anglatadi (go'yo COMMIT bayonoti ishlatilgandek);
dasturning noto'g'ri tugatilishi tranzaktsiyani to'xtatadi (go'yo ROLLBACK bayonoti ishlatilgandek).
Ushbu modelda ma'lumotlar bazasi holatini o'zgartiruvchi har bir bayonot tranzaksiya hisoblanadi, shuning uchun ushbu bayonot muvaffaqiyatli yakunlangandan so'ng, ma'lumotlar bazasi yangi barqaror holatga kiradi.
Tijorat ma'lumotlar bazalarining birinchi versiyalari ANSI / ISO tranzaksiya modelini amalga oshirdi. Keyinchalik SYBASE DBMSda bir qator qo'shimcha operatsiyalarni o'z ichiga olgan kengaytirilgan tranzaksiya modeli amalga oshirildi. SYBASE modeli quyidagi to'rtta operatordan foydalanadi:
BEGIN TRANSACTION bayonoti tranzaktsiyaning boshlanishi haqida xabar beradi. ANSI/ISO modelidan farqli o'laroq, tranzaktsiyaning boshlanishi ma'lumotlarni o'zgartirish bo'yicha birinchi bayonot bilan bilvosita ko'rsatilgan, SYBASE modelida tranzaktsiyaning boshlanishi tranzaksiya boshlanishi bayonoti yordamida aniq ko'rsatilgan.
COMMIT TRANSACTION bayonoti tranzaktsiyaning muvaffaqiyatli yakunlanganligi haqida xabar beradi. Bu ANSI / ISO standart modelidagi COMMIT bayonotiga teng. Bu operator, COMMIT operatori kabi, tranzaktsiyani bajarish jarayonida ma'lumotlar bazasiga kiritilgan barcha o'zgarishlarni amalga oshiradi.
SAVE TRANSACTION operatori tranzaksiya ichida ushbu bayonotni bajarish vaqtida saqlangan ma'lumotlar bazasining oraliq holatiga mos keladigan saqlash nuqtasini yaratadi. SAVE TRANSACTION bayonotida saqlash nuqtasi nomi bo'lishi mumkin. Shuning uchun, tranzaktsiyani amalga oshirish jarayonida bir nechta oraliq holatlarga mos keladigan bir nechta saqlash nuqtalari saqlanishi mumkin.
ROLLBACK bayonotida ikkita modifikatsiya mavjud. Agar ushbu bayonot qo'shimcha parametrsiz ishlatilsa, u butun tranzaksiya uchun orqaga qaytarish bayonoti sifatida talqin qilinadi, ya'ni bu holda u ANSI / ISO modelidagi ROLLBACK bayonotiga ekvivalent bo'ladi. Agar orqaga qaytarish bayonoti parametrga ega bo'lsa va ROLLBACK B sifatida yozilsa, u holda u B saqlash nuqtasiga qisman operatsiyani qaytarish bayonoti sifatida talqin qilinadi.
Kengaytirilgan tranzaksiya modelida operatsiyalarni amalga oshirish tamoyillari rasmda ko'rsatilgan. 11.2. Rasmda operatorlar raqamlar bilan belgilangan, shuning uchun biz uchun barcha mumkin bo'lgan holatlarda tranzaktsiyaning borishini kuzatish qulayroqdir.
Tranzaksiya bizning sxemamizda 1 raqamiga ega bo'lgan tranzaksiya boshlanishining aniq operatori bilan boshlanadi.Keyingi qidiruv operatori bo'lgan va ma'lumotlar bazasining joriy holatini o'zgartirmaydigan 2-operator va quyidagi 3 va 4 operatorlari bilan boshlanadi. ma'lumotlar bazasini yangi holatga o'tkazish. Bayonot 5 ma'lumotlar bazasining ushbu yangi oraliq holatini saqlaydi va uni A nuqtada oraliq holat sifatida belgilaydi. Keyin ma'lumotlar bazasini yangi holatga o'tkazadigan 6 va 7 bayonotlar keladi. 8-operator esa bu holatni B nuqtasida oraliq holat sifatida saqlaydi. 9-operator yangi ma’lumotlarni kiritishni amalga oshiradi, 10-operator esa 1-shartni biroz tekshirishni amalga oshiradi; agar 1-shart bajarilsa, u holda operatsiyani oraliq B holatiga qaytaradigan 11-ko'rsatma bajariladi, bu 9-bandning harakatlarining oqibatlari go'yo o'chiriladi va ma'lumotlar bazasi B oraliq holatiga qaytadi, degan ma'noni anglatadi, Garchi 9-ko'rsatma bajarilgandan so'ng u allaqachon yangi holatda bo'lgan bo'lsa-da Va tranzaksiya orqaga qaytarilgandan so'ng, oldindan davlatdan bajarilgan 9-ko'rsatma o'rniga Ma'lumotlar bazasida yangi ma'lumotlarni kiritishning 13-bo'limi bajariladi va keyin nazorat qilinadi. 14 bayonotga o'tkaziladi 14 bayonot yana shartni tekshiradi, lekin allaqachon ba'zi yangi shart 2, agar shart qondirilsa, boshqaruv 15-operatorga o'tkaziladi, u operatsiyani oraliq A holatiga qaytaradi, ya'ni barcha ma'lumotlar bazasini o'zgartirgan, 6 bilan boshlanib, 13 bilan tugaydigan bayonotlar bajarilmagan deb hisoblanadi, ya'ni ularning bajarilishi natijalari yo'qoladi va biz yana A holatidamiz, chunki 4-band bajarilgandan so'ng, boshqaruv boshqaruvga o'tkaziladi. operator 17, ma'lumotlar bazasi tarkibini yangilaydi, shundan so'ng boshqaruv Qaror 18-operatorga o'tkaziladi, bu tekshirish sharti 3 bilan bog'liq. Tekshiruv yoki boshqaruvni tranzaktsiyani amalga oshiruvchi 20-operatorga o'tkazish bilan tugaydi va ma'lumotlar bazasi yangi barqaror holatga o'tadi va uni belgilangan muddat ichida o'zgartirish mumkin emas. joriy tranzaksiya.Yoki agar boshqaruv 19-operatorga o‘tkazilsa, tranzaktsiya yana boshiga qaytariladi va JB o‘zining dastlabki holatiga qaytadi va bu yerda barcha oraliq holatlar allaqachon tekshirilgan va orqaga qaytarish operatsiyasini bajarish mumkin emas. 19-band bajarilgandan keyin ushbu oraliq davlatlarga
Albatta, SYBASE ning kengaytirilgan tranzaksiya modeli ancha moslashuvchan tranzaksiyani amalga oshirish mexanizmini qo‘llab-quvvatlaydi.Saqlash nuqtalari tranzaksiyada bajarilgan ishning faqat bir qismini bekor qilish uchun markerlarni tranzaksiya ichida o‘rnatishga imkon beradi.Ayrim operatorlar uchun o‘zgarishlarni bekor qilish imkoniyati Biroq, bu tizim resurslariga qo'shimcha xarajatlarni keltirib chiqaradi - operator ishni bajaradi va keyin o'zgarishlar bekor qilinadi, odatda ishlov berish mantiqidagi yaxshilanishlar yaxshiroq yechim bo'lishi mumkin.
Do'stlaringiz bilan baham: |