trigger in dbms : ट्रिगर

 आज हम computers in hindi मे trigger in dbms (ट्रिगर क्या है)  के बारे मे जानेगे और इसके types of triggers व trigger example के बारे मे तो चलिए शुरु करते हैं-

what is the meaning of triggered in hindi ( ट्रिगर क्या है ):-

डेटाबेस ट्रिगर सामान्य भाषा में event किसी घटना को कहा जाता है , डेटाबेस में event से मतलब किसी घटना से है जो डेटाबेस से जुड़ी हो , मतलब डेटाबेस पर किसी कमाण्ड का रन होना event है । 
ट्रिगर ऐसी प्रोग्रामिंग इकाई है जो कि किसी टेबल के लिए किसी डेटाबेस event पर स्वतः ही रन हो जाते हैं इसलिए इन्हें event activated program units ( ईवेट सक्रिय प्रोग्राम इकाई ) कहा जाता है । ट्रिगर्स में सभी प्रकार के DML कमाण्ड्स दिए जा सकते हैं ।
प्रत्येक ट्रिगर का नाम schema उस के लिए यूनीक होना चाहिए , अर्थात् ट्रिगर का नाम दोहराया जाना नहीं चाहिए । एक ट्रिगर को एक ही टेबल के लिए बनाया जा सकता है , एक से अधिक टेबल्स के लिए ट्रिगर बनाने हों तो उन्हें अलग - अलग बनाया जाएगा । 
किसी डेटाबेस ऑब्जेक्ट को बनाने वाला user ( प्रयोगकर्ता ) स्वयं के ऑब्जेक्ट के लिए ट्रिगर बना सकता है । इसके लिए उसे ट्रिगर का ईवेन्ट भी निर्धारित करना होगा । एक ट्रिगर को एक से अधिक events के लिए लिखा जा सकता है , परन्तु उन सभी टिगर्स की timing एक ही होती है ।

Trigger syntax: -

Create [or Replace] Trigger <Trigger Name> 
<Before/After/Instead of> <Insert/Update/Delete> 
ON <Object Name> 
[When <Condition>] [For Each Row] 
Declare 
<Declaration Section>
Begin 
            <Trigger Action Section> 
Exception 
            <Exception Section> 
End;

Types of triggers in dbms: different types of triggers: -

1. Timing Based Triggers 
a. Before Level Triggers 
b. After Level Triggers 

2. Level Based Trigger 
a. Row Level Triggers 
b. Statement Level Triggers

1. Timing Based Triggers:-

 इस प्रकार के ट्रिगर्स समय आधारित होते हैं । यह समय ईवेन्ट पर आधारित होता है । timing दो प्रकार की या तो before statement या after statement होती है । इसलिए इस प्रकार के ट्रिगर या तो निर्धारित ईवेन्ट में स्टेटमेन्ट execute होने से पहले या निर्धारित ईवेन्ट में स्टेटमेन्ट execute के बाद execute होते हैं ।

Before Level Triggers :-

इस प्रकार के ट्रिगर निर्धारित ईवेन्ट में स्टेटमेन्ट execute होने से पहले स्वत : ही execute होते हैं । 
Triggers example:-
create or replace trigger mytrig 1
 before delete on emp 
for each row 
Begin 
insert into emp_backup ( empno . ename . job , sal , comm 
values ( : old.empno , cold.ename , cold.job.:old.sal , old.com End :
/

After level triggers:-

इस प्रकार के ट्रिगर निर्धारित ईवेन्ट में स्टेटमेन्ट execute  होने के बाद execute  होते हैं । 
Triggers example: -
 create or replace trigger mytrig2 
after insert on emp 
for each row 
when ( new.comm > 500 ) 
            Declare 
                        bns number : 
Begin 
                        bns := : new.comm +50;
                        insert into bonus ( empno , ename . job . bonus ) 
                        values ( : new.empno , : new.ename , : new.job . bus 
End :
/

2. Level based triggers:-

इस प्रकार के ट्रिगर दो प्रकार के होते हैं 

Row Level Triggers :-

इस प्रकार के ट्रिगर में reference clauses  जैसे कि : new . old का प्रयोग किया जा सकता है । इस प्रकार के ट्रिगर स्टेटमेन्ट से प्रभावित प्रत्येक रिकॉर्ड के लिए execute होते हैं । इसके लिए for each row लिखा जाता है । 

Statement Level Triggers:-

इस प्रकार के ट्रिगर्स में for each row नहीं लिखा जाता है । ये ट्रिगर्स सम्पूर्ण ट्रिगर स्टेटमेन्ट की ओर से एक बार ही execute होते हैं । इस प्रकार के ट्रिगर में reference clauses जैसे कि : new . : old का प्रयोग नहीं किया जा सकता है ।
Triggers example: -
create or replace trigger mytrig3 
before delete on student 
Begin 
insert into log(unae, date_d, time_d) 
values( user, sysdate, to char(sysdate, 'HH::SS:):
 End:
/

Use of triggers (ट्रिगर के उपयोग ):-

1. किसी ईवेन्ट को होने से रोकना 

यदि हम किसी कंडीशन के होने पर ईवेन्ट को होने से रोकना चाहते हैं या किसी विशेष कंडीशन में उस ईवेन्ट के प्रभाव को समाप्त करना चाहते हैं तो यह ट्रिगर के द्वारा सम्भव है । इसके लिए हमें अपने ट्रिगर के द्वारा कोई error प्रदर्शित करनी होती है।

2. किसी विशिष्ट कंडीशन के दौरान किसी विशिष्ट कमाण्ड का स्वतः क्रियान्वयन करना 

यदि किसी कंडीशन के दौरान किसी अन्य अथवा  कमाण्ड बिना प्रयोगकर्ता के रन किए स्वतः ही रन हो जाए , ऐसा करने के लिए ट्रिगर का प्रयोग किया जाता है । जैसे किसी रिकॉर्ड के डिलीट होने पर वह बैकअप टेबल में स्वत : से संग्रहित हो जाए । 

3. डेटाबेस पर DML कमाण्ड्स के रन होने पर स्वत : क्रियान्वयन 

यदि हम कोई ऐसा अपडेशन या वैल्यू इन्सर्शन चाहते हैं जो किसी विशिष्ट कमाण्ड के क्रियान्वयन होने पर ही हो तो इसके लिए भी ट्रिगर का प्रयोग किया जाता है ।

4. डेटाबेस को सुरक्षा एवं नियंत्रण 

ट्रिगर के माध्यम से भी डेटाबेस को सुरक्षा प्रदान की जा सकती है । इसके माध्यम सेे  DML कमाण्ड्स के प्रभावों को नियंत्रित किया जा सकता है । इसके द्वारा डेटाबेस में इन्सर्ट की जाने वैल्यू को भी नियंत्रित किया जा सकता है , जैसे कि डेटाबेस में वर्लक का वेतन कम से कम रू . 5000 होना चाहिए , अथवा जिनका वेतन से रू . 15000 अधिक है उनके रिकॉर्ड स्वतः ही दूसरे डेटाबेस में कॉपी हो जाएं तथा उनके टैक्स की गणना भी स्वतः ही हो जाए ।

टिप्पणियाँ