डीबीएमएस में समवर्ती नियंत्रण बनाए रखने के लिए ताले एक अभिन्न अंग हैं। लॉक आधारित संगामिति नियंत्रण को लागू करने वाली किसी भी प्रणाली में एक लेनदेन तब तक एक बयान नहीं पढ़ या लिख सकता है जब तक कि उसे आवश्यक ताले प्राप्त न हो जाएं।
लॉक आधारित प्रोटोकॉल में दो प्रकार के ताले होते हैं। ये हैं:
- बाइनरी लॉक - ये केवल दो राज्यों में से एक में हो सकते हैं, लॉक या अनलॉक।
- साझा/अनन्य ताले - साझा ताले तब प्राप्त किए जाते हैं जब केवल रीड ऑपरेशन किया जाना होता है। साझा किए गए ताले को कई लेनदेन के बीच साझा किया जा सकता है क्योंकि कोई डेटा नहीं बदला जा रहा है। जब लेखन कार्य किया जाता है तो अनन्य ताले का उपयोग किया जाता है। केवल अनन्य लॉक रखने वाले लेन-देन को डेटा मान में परिवर्तन करने की अनुमति है।
विभिन्न लॉकिंग प्रोटोकॉल हैं -
सरल लॉक प्रोटोकॉल
राइट ऑपरेशन करने से पहले डेटा वैल्यू पर ट्रांजैक्शन द्वारा लॉक प्राप्त किया जाता है। राइट ऑपरेशन के बाद, लॉक जारी किया जा सकता है। सरलीकृत लॉक प्रोटोकॉल का एक उदाहरण है:
<टेबल><थेड>ऊपर दिखाए गए दो लेनदेन T1 और T2 हैं। रीड ऑपरेशन के लिए किसी लॉक की आवश्यकता नहीं होती है, लेकिन राइट ऑपरेशन से पहले, इनमें से प्रत्येक लेन-देन एक लॉक प्राप्त कर लेता है और बाद में इसे जारी कर देता है।
दो-चरण लॉकिंग प्रोटोकॉल
दो-चरण लॉकिंग प्रोटोकॉल में दो चरण होते हैं, अर्थात् बढ़ते और सिकुड़ते चरण। लेन-देन केवल तभी प्राप्त कर सकता है जब वह विकास के चरण में हो। जब यह सिकुड़ने के चरण में प्रवेश करता है, तो यह पहले से अधिग्रहीत ताले को छोड़ सकता है लेकिन नए ताले प्राप्त नहीं कर सकता है। एक्सक्लूसिव लॉक्स को X द्वारा दर्शाया जाता है और शेयर्ड लॉक्स को S द्वारा दर्शाया जाता है। टू फेज लॉकिंग प्रोटोकॉल का एक उदाहरण है -
<टेबल><थेड>उपरोक्त उदाहरण में, T1 और T2 एक साझा लॉक का उपयोग करके चर A को साझा करते हैं क्योंकि A पर केवल रीड ऑपरेशन किया जाता है। T1 लिखने के संचालन के लिए B पर एक विशेष लॉक प्राप्त करता है और इसे जल्द ही जारी करता है। T2 C के साथ भी ऐसा ही करता है।
सख्त दो-चरण लॉकिंग प्रोटोकॉल
स्ट्रिक्ट टू फेज लॉकिंग प्रोटोकॉल टू फेज लॉकिंग प्रोटोकॉल के समान है। अंतर केवल इतना है कि सख्त 2PL प्रोटोकॉल में प्रोटोकॉल द्वारा अधिग्रहीत सभी अनन्य तालों को तब तक आयोजित करने की आवश्यकता होती है जब तक कि प्रोटोकॉल या तो बंद नहीं हो जाता या बंद नहीं हो जाता। स्ट्रिक्ट टू-फेज लॉकिंग प्रोटोकॉल का एक उदाहरण है:
<टेबल><थेड>उपरोक्त उदाहरण में, T1 और T2 एक साझा लॉक का उपयोग करके चर A को साझा करते हैं क्योंकि A पर केवल रीड ऑपरेशन किया जाता है। T1 लिखने के संचालन के लिए B पर एक विशेष लॉक प्राप्त करता है और T2 C के साथ ऐसा ही करता है। अनन्य ताले केवल जारी किए जाते हैं लेनदेन के बाद प्रतिबद्ध है। हालांकि, साझा ताले के लिए ऐसी कोई बाध्यता नहीं है।
कठोर दो-चरण लॉकिंग प्रोटोकॉल
कठोर दो चरण लॉकिंग प्रोटोकॉल केवल दो चरण लॉकिंग प्रोटोकॉल और सख्त दो चरण लॉकिंग प्रोटोकॉल का विस्तार है। यहां, लेन-देन द्वारा रखे गए सभी ताले, चाहे साझा या अनन्य हों, केवल लेन-देन के होने या निरस्त होने के बाद ही जारी किए जाते हैं। कठोर दो-चरण लॉकिंग प्रोटोकॉल का एक उदाहरण है:
<टेबल><थेड>उपरोक्त उदाहरण में, T1 और T2 एक साझा लॉक का उपयोग करके चर A को साझा करते हैं क्योंकि A पर केवल रीड ऑपरेशन किया जाता है। T1 लिखने के संचालन के लिए B पर एक विशेष लॉक प्राप्त करता है और T2 C के साथ भी ऐसा ही करता है। साझा किए गए ताले और लेन-देन करने के बाद ही अनन्य ताले जारी किए जाते हैं।