Trigger In DBMS in hindi - ट्रिगर क्या है

Trigger In DBMS in hindi - ट्रिगर क्या है

Triggers उस action को define करते हैं, जो database को उस समय लेता है, जब database से सम्बन्धित कोई घटना घटती है। ट्रिगर्स का क्रियान्वयन यूजर्स के लिए प्रारदर्शी होता है। Database trigger को execute करता है। ब्लॉक बनाना भी संभव है, जिसे आवश्यकता के अनुसार ऑरिकल इंजन द्वारा स्वतः ही (Implicity) कॉल (Call) किया जाता है। इस प्रकार के कोड ब्लॉक को 'ट्रिगर' (Trigger) अथवा 'डाटाबेस' (Database Trigger) कहते हैं। ( Trigger In DBMS in hindi - ट्रिगर क्या हैै ) 


डाटाबेस ट्रिगर भी PL/SQL कथनों का एक समूह अथवा ब्लॉक होता है। इसे प्रयोगकर्ता (User) द्वारा परिभाषित किसी विशिष्ट नाम के द्वारा पहचाना जाता है। प्रत्येक ट्रिगर किसी डाटाबेस परिवर्तन कमाण्ड (Database manipulation command) जैसे- INSERT, UPDATE अथवा DELETE से संबंधित होता है। ट्रिगर को परिभाषित करते समय इससे संबंधित कमाण्ड तथा टेबल का नाम इत्यादि का वर्णन किया जाता है। ट्रिगर को परिभाषित करने का कोड क्लाइंट कम्प्यूटर पर SQL *PLUS की सहायता से लिखा जाता है तथा इसे सर्वर पर ऑरकल इंजन के सिस्टम टेबल (System table) में संचित किया जाता है। ट्रिगर को किसी विशिष्ट टेबल से संबंधित जिस कमाण्ड (INSERT, UPDATE, DELETE) के लिए परिभाषित किया गया है, उस टेबल पर वह कमाण्ड क्रियान्वित करने पर ऑरकल इंजन स्वतः ही इस ट्रिगर को कॉल कर लेता है। इसे प्रयोगकर्त्ता (User) द्वारा कॉल नहीं किया जाता। उपर्युक्त विवरण से यह स्पष्ट है कि प्रत्येक ट्रिगर में मुख्यतः दो भाग होते हैं



(a) डाटाबेस से संबंधित एक घटना ( Event ) 

(b) उपर्युक्त घटना (Event) के उत्पन्न होने पर क्रियान्वित किया जाने वाला PL/SQL ब्लॉक। 


Types of Triggers in DBMS in hindi - 

ट्रिगर के प्रकार (Types of Trigger) हम जानते हैं कि किसी ट्रिगर को प्रारम्भ करने के लिए घटना अथवा कथन का होना आवश्यक होता है। कथन अथवा घटना के उत्पन्न होने पर कंडीशन की जाँच की जाती है एवं इसका परिणाम यदि सत्य (True) हो, तो ट्रिगर को प्रारम्भ किया जाता है। किसी टेबल पर प्रयोग किए जा रहे ट्रिगर संबंधी कथन ( INSERT, UPDATE, DELETE) के द्वारा टेबल की एक से अधिक पंक्तियों का प्रभावित होना भी संभव है। ट्रिगर को परिभाषित करते समय हम यह निर्धारित कर सकते हैं कि कथन के द्वारा प्रभावित होने वाली प्रत्येक पंक्ति के लिए ट्रिगर को प्रत्येक बार बुलाना है अथवा संपूर्ण कथन के लिए ट्रिगर को केवल एक ही बार बुलाना है। इस आधार पर ट्रिगर निम्नलिखित दो श्रेणियों में वर्गीकृत किए जा सकते हैं


(a) पंक्ति ट्रिगर (Row trigger) तथा 

(b) कथन ट्रिगर (Statement trigger)। 

इनका संक्षिप्त विवरण इस प्रकार है


(a) पंक्ति ट्रिगर (Row trigger) - 

यदि ट्रिगर संबंधी कथन (Triggering statement ) जैसे INSERT, UPDATE अथवा DELETE के द्वारा प्रभावित होने वाली पंक्तियों की संख्या एक से अधिक है तथा हम प्रत्येक पंक्ति के लिये ट्रिगर को प्रत्येक बार बुलाना चाहते हैं, तो इसके लिए पंक्ति ट्रिगर (Row trigger) का प्रयोग किया जाता है। 


उदाहरणार्थ, यदि किसी DELETE कथन के द्वारा टेबल की कुछ पंक्तियों को मिटाया जा रहा है तथा इस कथन पर एक पंक्ति ट्रिगर (Row trigger) परिभाषित है, तो ऐसी स्थिति में DELETE कथन द्वारा मिटाई जाने वाली प्रत्येक पंक्ति के लिए ट्रिगर को एक बार बुलाया जाएगा। यहाँ यह बात भी ध्यान देने योग्य है कि ट्रिगर संबंधी कथन के द्वारा कोई भी पंक्ति प्रभावित नहीं हो रही है, तो इस स्थिति में ट्रिगर एक बार भी कॉल (Call) नहीं होगा।


(b) कथन ट्रिगर (Statement trigger) - 

यदि ट्रिगर संबंधी किसी कथन के उत्पन्न होने पर ट्रिगर को इस संपूर्ण कथन के लिए केवल एक बार ही बुलाना हो, तो यह कार्य कथन ट्रिगर (Statement trigger) के द्वारा किया जाता है। इस स्थिति में ट्रिगर का प्रयोग प्रभावित होने वाली पंक्तियों की संख्या पर निर्भर नहीं होता अर्थात् कथन के द्वारा प्रभावित होने वाली पंक्तियों की संख्या चाहे जितनी भी हो, परन्तु ट्रिगर संपूर्ण कथन के लिए केवल एक बार ही बुलाया जाता है। उदाहरणार्थ, यदि किसी टेबल पर UPDATE कथन के द्वारा प्रभावित हो रही पंक्तियों की संख्या 10 है तथा इस पर एक कथन ट्रिगर परिभाषित है, तो ऐसी स्थिति में संपूर्ण UPDATE कथन के लिए यह ट्रिगर केवल एक बार ही बुलाया जाएगा, 10 बार नहीं। इसी प्रकार यह भी ध्यान रखने योग्य बात है कि यदि ट्रिगर संबंधी कथन के द्वारा एक भी पंक्ति प्रभावित नहीं हो रही है, तब भी कथन ट्रिगर एक बार बुलाया जाता है।


किसी संपूर्ण कथन के लिए अथवा इसके द्वारा प्रभावित होने वाली प्रत्येक पंक्ति के लिए प्रयुक्त ट्रिगर का निर्धारण करने के कार्य ट्रिगर एवं पंक्ति ट्रिगर के द्वारा किया जाता है परन्तु, ट्रिगर का प्रयोग करते समय यह स्पष्ट करना भी आवश्यक है कि ट्रिगर को संबंधित कथन अथवा पंक्ति के क्रियान्वयन से पूर्व बुलाना है अथवा क्रियान्वयन के पश्चात् बुलाना है। ट्रिगर को बुलाए जाने का यह समय निर्धारित करने के लिए निम्नलिखित दो प्रकार के ट्रिगर उपलब्ध होते हैं


(i) पूर्व ट्रिगर (Before trigger), 

(ii) पश्चात् ट्रिगर (After trigger) 

ये दोनों ही ट्रिगर प्रत्येक पंक्ति (Row) अथवा संपूर्ण कथन (Statement ) हैं। इनका संक्षिप्त विवरण इस प्रकार है प्रयोग किए जा सकते है। 


(i) पूर्व ट्रिगर (Before trigger) - 

यदि टेबल के डाटा में परिवर्तन से संबंधित कथन के क्रियान्वयन से पूर्व इससे संबंधित ट्रिगर को क्रियान्वित करना हो तो इस कार्य के लिए पूर्व ट्रिगर (Before trigger) का प्रयोग किया जाता है। इसका प्रयोग सामान्यतः उस स्थिति में होता है, जब किसी कथन के द्वारा पंक्तियों के डाटा को परिवर्तित करने से पूर्व यह निर्धारित करना हो कि डाटा में परिवर्तन की अनुमति दी जाए या नहीं। 


(ii) पश्चात् ट्रिगर (After trigger)- 

यदि टेबल के डाटा में परिवर्तन से संबंधित कथन का क्रियान्वयन पूर्ण हो जाने के पश्चात् इससे संबंधित ट्रिगर को क्रियान्वित करना हो, तो इस कार्य के लिए पश्चात् ट्रिगर का प्रयोग किया जाता है। इस ट्रिगर का प्रयोग उस स्थिति में होता है, जब कथन के द्वारा डाटा में परिवर्तन हो जाने पर ट्रिगर को क्रियान्वित करना हो। साथ ही, यदि डाटा में परिवर्तन करने से पूर्व किए जाने वाले कार्यों के लिए पूर्व ट्रिगर (Before trigger) का प्रयोग किया जा चुका है, तो उसी कथन अथवा पंक्ति पर कोई अन्य प्रक्रिया पूर्ण करने के पश्चात् ट्रिगर (After Trigger) का प्रयोग किया जा सकता है। इस प्रकार ट्रिगर चार प्रकार के होते हैं- पंक्ति ट्रिगर कथन ट्रिगर, पूर्व ट्रिगर तथा पश्चात् ट्रिगर आवश्यकता के अनुसार इनमें से किसी का भी प्रयोग किया जा सकता है। साथ ही, हम पूर्व तथा पश्चात् ट्रिगर को पंक्ति तथा कथन ट्रिगर के साथ संयोजित (Combine) करके भी प्रयोग कर सकते हैं। 


जैसे- BEFORE ROW TRIGGER, AFTER ROW TRIGGER, BEFORE STATEMENT TRIGGER, AFTER STATEMENT TRIGGER इस प्रकार इनके चार संयोजन (Combination) बनाये जा सकते हैं। प्रत्येक संयोजित ट्रिगर उन दोनों ट्रिगरों की कार्य पद्धति का पालन करता है, जिनके संयोजन से उसका निर्माण हुआ है। उदाहरणार्थ यदि Before Row Trigger का प्रयोग किया गया है, तो इस स्थिति में किसी कथन द्वारा प्रभावित हो रही प्रत्येक पंक्ति में परिवर्तन से पहले ट्रिगर को क्रियान्वित किया जाएगा, क्योंकि यहाँ ट्रिगर, पूर्व एवं पंक्तिट्रिगर का संयोजन है। इसी प्रकार यदि After statement trigger का प्रयोग किया गया है, तो सम्पूर्ण कथन के क्रियान्वित हो जाने के पश्चात् ट्रिगर को क्रियान्वित किया जाएगा क्योंकि After statement trigger वस्तुतः पश्चात् ( After ) एवं कथन (Statement) ट्रिगरों का संयोजन है। इस प्रकार आवश्यकता के अनुसार उपरोक्त में से किसी भी ट्रिगर अथवा इनके किसी भी संयोजन का प्रयोग PLSQL प्रोग्राम में किया जा सकता है।

Post a Comment

0 Comments