Foydalanuvchilarni boshqarish. Foydalanuvchilar


Tranzaksiya. Tranzaksiyalarni qayta tiklash



Yüklə 44,52 Kb.
səhifə5/13
tarix13.12.2022
ölçüsü44,52 Kb.
#74230
1   2   3   4   5   6   7   8   9   ...   13
Narziyev Asomiddin databaza lab2

Tranzaksiya. Tranzaksiyalarni qayta tiklash.


Reja:

  1. Tranzaksiya nima?

  2. Tranzaksiyalarni qo`llash

  3. Tranzaksiya xususiyatlari

  4. Transact-SQL tranzaksiya operatorlari va instruksilari

  5. Tranzaksiya jurnali

  6. Blokirovkalar(qulflar)

  7. Blokirovka rejimi

  8. O`zaro blokirovkalar

  9. Izolyatsiya darajalari


Tranzaksiya nima?
Ma`lumotlar bazasidagi ma`lumotlar odatda ko'plab amaliy dasturlar (dasturlar) tomonidan ishlatiladi. Bir nechta amaliy dasturlar bir vaqtning o`zida bir xil ma`lumotlarni o`qish va yozish operasiyalarini bajaradigan holat - bir vaqtda konkurent(parallel) murojaat qilish deb ataladi. Har bir ma`lumotlar bazasini boshqarish tizimida parallel murojaatlardan kelib chiqadigan muammolarni hal qilish uchun boshqaruv mexanizmi bo'lishi kerak.
Ko'p sonli faol foydalanuvchi dasturlariga bir-biriga to'sqinlik qilmaydigan tarzda xizmat ko`rsatadigan ma`lumotlar bazasida yuqori darajadagi parallel murojaat qilish imkoniyati mavjud.
Tranzaksiyalarni qo`llash
Tranzaksiya ma`lumotlar bazasi tizimida ma`lumotlar mutanosibligini(muvofiqligini) ta'minlashi uchun va ma`lumotlarni o`qish va yozish operasiyalarini birlashtirish uchun foydalanadigan Transact-SQL instruksiyalari ketma-ketligini belgilaydi. Tranzaksiyalarning ikki turi mavjud:

  • Yashirin tranzaksiya- har qanday bitta INSERT, UPDATE yoki DELETE operatorlarini tranzaksiya birligi sifatida aniqlaydi.

  • Aniq tranzaksiya odatda Transact-SQL instruksiyalari to’plami bo'lib, ularning boshlanishi va oxiri BEGIN TRANSACTION, COMMIT va ROLLBACK kabi operatorlar bilan ko`rsatiladi.

Tranzaksiya tushunchasini misol bilan yaxshiroq tushunib olaylik. Masalan, SampleDb ma`lumotlar bazasida "Vasiliy Frolov" xodimiga yangi tabel raqami berilishi kerak. Ushbu raqam bir vaqtning o`zida ikki xil jadvalda o`zgartirilishi kerak. Jumladan, bir vaqtning o`zida "Employee" jadvalidagi qatorni va "Works_on" jadvalidagi tegishli qatorlarni yangilashingiz kerak. Agar siz ushbu jadvallarning faqat bittasidagi ma`lumotlarni yangilasangiz, "SampleDb" ma`lumotlari mutanosibligi buziladi, chunki "Employee" jadvalidagi birlamchi kalit qiymatlari va "Works_on" jadvalidagi mos keladigan tashqi kalit qiymatlari mos kelmaydi. Ushbu operasiyani Transact-SQL operatorlari orqali amalga oshirish quyidagi misolda keltirilgan:
USE SampleDb;

-- tranzaksiyaning boshlanishi


BEGIN TRANSACTION
UPDATE Employee
SET Id = 14568
WHERE Id = 10102

IF (@@error <> 0)


-- tranzaksiyani bekor qilish, agarda xatolik mavjud bo’lsa
ROLLBACK
UPDATE Works_on
SET EmpId = 14568
WHERE EmpId = 10102
IF (@@error <> 0)
ROLLBACK
-- tranzaksiyaning tugashi
COMMIT

Misolda qayta ishlangan ma`lumotlarning mutanosibligini faqat UPDATE ning ikkala operatori bajarilgan taqdirda yoki ikkalasi ham bajarilmagan taqdirda ta'minlanishi mumkin. Har bir UPDATE operatorining muvaffaqiyatli bajarilgani @@error global o`zgaruvchisi yordamida tekshiriladi. Agar xatolik yuz bersa, bu o`zgaruvchi manfiy qiymatga o'rnatiladi va hozirgacha bajarilgan barcha tranzaksiya operatorlari amallari ROLLBACK operator orqali bekor qilinadi.



Yüklə 44,52 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   13




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin