• Tayanch so’zlar
  • -mavzu. Tranzaksiyalarni boshqarishda so‘rovlar yaratish va




    Download 1,38 Mb.
    Pdf ko'rish
    bet64/79
    Sana30.01.2024
    Hajmi1,38 Mb.
    #148346
    1   ...   60   61   62   63   64   65   66   67   ...   79
    Bog'liq
    Mundarija kirish

    12-mavzu. Tranzaksiyalarni boshqarishda so‘rovlar yaratish va 
    qayta ishlash 
    Reja 
    1. SQL muhitida tranzaksiya tushunchasi. 
    2. SQL muhitida tranzaksiyalani boshqarish. 
    3. Arifmеtik jarayonlar. 
    4. Hisoblash tartibini bеlgilash. 
    5. Triggеrlar va ulardan foydalanish. 
    6. POSITION() funksiyalaridan foydalanib pastki satrni qidirish. 
    7. CASE ifodasini ishlatib shartli qiymatlarni ifodalash. 
    8. Joriy satsiyasi. 
    Tayanch so’zlar: tranzaksiva, himoyalanish, ROLLBACK, Commit. 
    SQL muhitida tranzaksiva tushunchasi. SQL tilida tranzaksiya deb, 
    ma‟lumotlami tiklashga nisbatan ajralmas bo'lgan operatorlar ketma - 
    ketligiga aytiladi. SQL tilidagi har bir chaqirish moduli tranzaksiyadir. 
    SQL tili tranzaksiyalari biror-bir modulning protseduralarini
    bajarishdan boshlanadi. COMMIT yori ROLLBACK operatorining 
    bajarilishi bilan tugaydi. Agar tranzaksiya ROLLBACK operatori bilan 
    tugasa, prtoseduradagi barcha qilingan amallar bekor qilinadi. 
    Har bir tranzaksiyaning “faqat o„qish” yoki “o'qish va yozish” 
    tartiblari 
    mavjud. 
    Tranzaksiya 
    tartiblari 
    SETTTRANSACTION 
    operatori yordamida o'rnatiladi. Jimlik qoidagisa nusbatan ''o'qish va 
    yozish” tartibi o'rnatiladi. “Faqat o'qish" tartibi doimo saqlanadigan 
    bazaviy ma‟lumotlarga qo'llaniladi. 
    Har bir SQL tranzaksiyasi himoyalanish darajasiga ega: 
    READUNCOMMITTED, READCOMMITTED, REPEATABLEREAD 
    yoki SERIALIZABLE. SQL tranzaksiyasi himoyalanish darajalari 
    bajarilayotgan 
    tranzaksiyaning 
    boshqa 
    parallel 
    bajarilayotgan 
    tranzaksiyalarga ta‟sir etish daragasini aniqlaydi. Tranzaksiyaning aniq 
    darajasini 
    o'rnatish 
    uchun 
    SETTRANSACTION 
    operatoridan 
    foydalanishadi. Jimlik qoidasiga nisbatan SERIALIZABLE tartibi 
    o'rnatiladi. 
    Himoyalanish daragalari tranzaksiyalarning parallel bajarilishida yuz 
    berishi mumkin bo'lgan hodisalami aniqlaydi. Qyuidagi ko'rinishda gi 
    hodisalar bo'lishi mumkin: 


    87 
     PI (“Dirtyread" - "Yomon o'qish"): T1 tranzaksiya qatomi yaratadi. 
    Keyin T2 tranzaksiya T1 COMMIT amalini bajarmasdan bu qatomi 
    o'qiyi. Shundan so'ng T1 ROLLBACK amalini bajarsa, T2 
    tranzaksiya umuman mavjid bo'lmagan qatomi o'qigan bo'lib chiqadi. 
     P2 (“Non-repeaiableread” - “Takrorlanmaidigan o'qish"): T1 
    tranzaksiya qatomi o'qiydi. Shundan so'ng T2 tranzaksiya bu 
    buyruqlar qatorini o'zgartiradi yoki olib tashlayda va COMMITni 
    bajaradi. Shundan so'ng T1 shu qatomi yana o'qishga harakat qiladi, 
    ammo bu qator birinchi holatdagi qator emas yoki olib tashlangani 
    uchun topolmaydi. 
     РЗ ("Phantom" - "Fantom"): T1 tranzaksiya biror-bir shartni 
    qanoatlantiradigan N qatomi o'qiydi. Shundan so'ng T2 tranzaksiya 
    bu qatorlar ichidan bir yoki bir nechta qator shartlarini generatsiya 
    qiladi. Agar shu ishlardan keyin T1 o'qishni qaytarsa, u butunlay 
    boshqa qatorlarga ega bo'ladi, 
    To‟rtala himoyalanish daragalari P1, P2 
    va 
    P3 
    hodisalarga 
    nisbatan quyidagicha ta‟sirga ega: 
    Himoyalanish PI 
    P2 
    Р3 
    READUNCOM 
    Mumkin 
    Mumkin 
    Mumkin 
    READCOMMIT 
    Mumkin 
    Mumkin 
    Mumkin 
    REPEATABLE 
    Mumkin 
    Mumkin 
    Mumkin 
    SERIALIZABL 
    Mumkin 
    Mumkin 
    Mumkin 
    MB bilan ish jarayonida ma‟lumotlar butligi muhim o‟rin tutadl. 
    Ma‟lumotlar butligi deganimizda, ma‟lumotlaming to'g‟riligi va 
    mazmunan qarma-qarshi ma‟noga ega emasligi tushuniladi. Masalan, 
    “O'qituvchi” jadvalidagi har bir o'zgarish “Yuklama” jadvalida ham 
    qayd etilishi kerak. 0„qituvchining “Yuklama" jadvalida qayd etilmasligi 
    ma‟lumotlar butligining buzilishiga olib keladi. 
    Ko‟pchilik hollarada MBning ma‟lumotlari 
    butligini 
    saqlashni tashkillashtirish uchun tranzaksiyalardan foydalanishadi. 
    Umuman olganda tranzaksiya - bu mantiqan bo'linmaydigan ish birligi. 
    Bu jarayonda: 

    yoki tranzaksiyaga kiruvchi barcha amallar MBda aks etadi; 

    yoki bu amallar umuman bajarilmaydi. 


    88 
    Tranzaksiyaning bu 
    xususiyati butlik 
    shartining
    buzilmasligini ta‟minlaydi. 
    Ko„pgina MBBTda tranzaksiyalaming ikkita modeli ishlatiladi: 

    Tranzaksiyalaming avtomatik bajarilish modeli. 

    Tranzaksiyalaming bajarilishini boshqarish modeli. 
    Tranzaksiyalaming avtomatik bajarilish modelida, tranzaksiya avtomatik 
    ravishda ishga tushadi va quyidagi usullardan biri bilan tugaydi: 
     COMMIT yo‟riqnomasi bilan, bunda MBdagi o'zgarishlar doimiy 
    bajariladigan bo'ladi va yangi tranzaksiya COMMIT buyrug‟idan so'ng 
    boshlanadi. 
     ROLLBACK yo‟riqnomasi bilan, bunda tranzaksiyada bajarilgan barcha 
    o'zgarishlar bekor bo'ladi va yangi tranzaksiya ROLLBACK 
    buyrug‟idan so'ng boshlanadi. 
    Tranzaksiyalaming bajarilishini boshqarish modeli SUBD Sysbase 
    dasturida qo‟llanilib, quyidagi yoriqnomalardan foydalaniladi: 
     BEGIN TRANSACTION yo‟riqnomasi, tranzaksiyaning boshlanishini 
    bildiradi. 
     COMMIT 
    TRANSACTION 
    yo‟riqnomasi, 
    tranzaksiyaning 
    muvaffaqiyatli tuganini bildiradi. Bunda yangi tranzaksiya avtomatik 
    ravishda ishga tushmaydi. 
     SAVE TRANSACTION yo‟riqnomasi, bunda tranzaksiya ichida saqlash 
    nuqtasi tashkillashtiradi va saqlangan saqlash nuqtasiga nom berish 
    imkoniyati yaratiladi. 
     ROLLBACK yo‟riqnomasi, bunda barcha tranzaksiyadagi amallar bekor 
    qilinadi va MB holati tranzaksiyadan oldingi holatga qaytariladi. 
    Shunday qilib, tranzaksiya - bu MBga tugallangan murojaat bo'lib 
    quyidagi to'rtta shartning bajarilishini kafolatlaydi: 
     Bo'linmaslik (atomarnost) - tranzaksiya boshi va oxiriga ega bo'lgan 
    boTinmas blok. Bu blok yoki to‟liqligicha bajariladi, yoki umuman 
    bajarilmaydi; 
     Kelishuvchanlik - tranzaksiya tugaganidan so'ng, hamma ob‟yektlar 
    kelishganlik holatini saqlab qoladi; 
     Himoyalanganlik - har bir tranzaksiya jarayoni boshqa tranzaksiya 
    ishiga ta‟sir ko'rsatmaydi. 
     Doimiylik - tranzaksiya jarayonida bajarilgan barcha o'zgarishlar 
    doimiylik xarakteriga ega. 
    SQL tilida tranzaksiya jarayoniga misol. 


    89 
    SQL tilida har bir tranzaksiya bitta to'liq jarayonni bajarishiga 
    tushuncha hosil qildik. Ana shunday jarayonga misol keltiramiz: 
    “Ta'minlovchilar” jadvalidagi Sx raqamini Sy raqamiga o'zganirish 
    lozim bo'lsin. Sx va Sy - berilgan aniq parametr. 
    TRANEX: PROC OPTIONS (MAIN); /* tranzaksiyaga misol*/ EXEC 
    SQL WNENEVER SQLERROR GO TO UNDO; GET LIST (SX,SY); 
    EXEC SQL UPDATE S 
    SET TA‟MINLOVCHI RAQAMI = SY WHERE TA‟MINLOVCHI 
    RAQAMI = SX; 
    EXEC SQL UPDATE SP 
    SET TA‟MINLOVCHI RAQAMI = SY WHERE TA‟MINLOVCHI 
    RAQAMI = SX; 
    EXEC SQL COMMIT; 
    GO TO FINISH; 
    UNDO: EXEC SQL ROLLBACK; FINISH: RETURN; 
    END TRANEX; 
    Misolimizdan ko‟rinib turibdiki, bu tranzaksiya jarayonida ikkita 
    jadval ustuda o‟zgarishlar amalga oshirilayapti. Demak, tranzaksiya 
    deganimizda bitta amalni emas, balki amallar ketma-ketligini tushunish 
    lozim. 

    Download 1,38 Mb.
    1   ...   60   61   62   63   64   65   66   67   ...   79




    Download 1,38 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    -mavzu. Tranzaksiyalarni boshqarishda so‘rovlar yaratish va

    Download 1,38 Mb.
    Pdf ko'rish