Tetiklər vs Kursorlar
Verilənlər bazasında trigger cədvəldə/görünüşdə bəzi xüsusi hadisələr baş verdikdə avtomatik icra olunan prosedurdur (kod seqmenti). Digər istifadələri arasında, tetikleyiciler əsasən verilənlər bazasında bütövlüyün qorunması üçün istifadə olunur. Kursor verilənlər bazası qeydlərindən keçmək üçün verilənlər bazalarında istifadə olunan idarəetmə strukturudur. O, bir çox proqramlaşdırma dilləri tərəfindən təmin edilən iteratora çox bənzəyir.
Tikləyicilər nədir?
Tikqer verilənlər bazası cədvəlində/görünüşündə bəzi xüsusi hadisələr baş verdikdə avtomatik icra olunan prosedurdur (kod seqmenti). Digər istifadələri arasında, tetikleyiciler əsasən verilənlər bazasında bütövlüyün qorunması üçün istifadə olunur. Tətiklər həmçinin biznes qaydalarını tətbiq etmək, verilənlər bazasında dəyişiklikləri yoxlamaq və məlumatların təkrarlanması üçün istifadə olunur. Ən çox yayılmış tetikler verilənlərin manipulyasiyası zamanı işə salınan Data Manipulation Language (DML) triggerləridir. Bəzi verilənlər bazası sistemləri Data Definition Language (DDL) hadisələri baş verdikdə işə salınan qeyri-data tetikleyicilərini dəstəkləyir. Bəzi nümunələr cədvəllər yaradılarkən, icra və ya geri qaytarma əməliyyatları baş verdikdə və s. zamanı işə salınan tetikleyicilerdir. Bu triggerlər xüsusilə audit üçün istifadə edilə bilər. Oracle verilənlər bazası sistemi yaradıldıqdan sonra, Dəyişmədən əvvəl, Dəyişdirildikdən sonra, Düşmədən əvvəl, Düşdükdən sonra və s. kimi sxem səviyyəli triggerləri (yəni verilənlər bazası sxemləri dəyişdirildikdə işə salınan tetikler) dəstəkləyir. Oracle tərəfindən dəstəklənən dörd əsas trigger növü Sıra Səviyyəsi triggerləridir Sütun Səviyyəsi tetikleyicileri, Hər Sətir Növü tetikler və Hər Bəyanat Növü üçün tetikler.
Kursorlar nədir?
Kursor verilənlər bazası qeydlərindən keçmək üçün verilənlər bazalarında istifadə edilən idarəetmə strukturudur. Bir çox proqramlaşdırma dilləri tərəfindən təmin edilən iteratora çox bənzəyir. Kursorlar verilənlər bazasındakı qeydlər arasında keçid etməklə yanaşı, məlumatların axtarışını, qeydlərin əlavə edilməsini və silinməsini də asanlaşdırır. Düzgün yolu müəyyən etməklə, kursorlar geriyə keçmək üçün də istifadə edilə bilər. SQL sorğusu bir sıra sətirləri qaytardıqda, bunlar kursorlardan istifadə etməklə işlənir. İstifadə edilməzdən əvvəl kursor elan edilməli və ona ad təyin edilməlidir. Sonra OPEN əmrindən istifadə edərək kursoru açmaq lazımdır. Bu əməliyyat kursoru qeydlərin nəticə dəstinin birinci cərgəsindən dərhal əvvəl yerləşdirəcək. Sonra kursor proqrama bir sıra verilənləri daxil etmək üçün FETCH əməliyyatını yerinə yetirməlidir. Nəhayət, CLOSE əməliyyatından istifadə edərək kursor bağlanmalıdır. Qapalı kursorlar yenidən açıla bilər.
Tetiklər və Kursorlar arasındakı fərq nədir?
Trigger verilənlər bazası cədvəlində/görünüşündə bəzi xüsusi hadisələr baş verdikdə avtomatik icra edilən prosedurdur (kod seqmenti), kursor isə verilənlər bazası qeydlərindən keçmək üçün verilənlər bazasında istifadə edilən idarəetmə strukturudur. Kursor bir trigger daxilində elan edilə və istifadə edilə bilər. Belə bir vəziyyətdə, bəyannamə tətiyi daxilində olacaq. Sonra kursorun əhatə dairəsi həmin tetikleyici ilə məhdudlaşacaq. Tətik daxilində kursor daxil edilmiş və ya silinmiş cədvəldə elan olunarsa, belə kursor yuvalanmış tətikdən əldə edilə bilməz. Tətik tamamlandıqdan sonra trigger daxilində yaradılmış bütün kursorlar ayrılacaq.