अलगाव, डेटाबेस के संदर्भ में, निर्दिष्ट करता है कि एक ऑपरेशन में लागू परिवर्तन कब और कैसे अन्य समानांतर संचालन के लिए दृश्यमान हो जाते हैं। लेन-देन अलगाव किसी भी लेन-देन प्रणाली का एक महत्वपूर्ण हिस्सा है। यह अन्य उपयोगकर्ता क्रियाओं द्वारा उपयोगकर्ता डेटा को अप्रभावित करने वाले प्रश्नों द्वारा प्राप्त डेटा की निरंतरता और पूर्णता से संबंधित है। उच्च स्तर के अलगाव को बनाए रखने के लिए डेटाबेस डेटा पर ताले प्राप्त करता है।
डेटा लॉकिंग की डिग्री को नियंत्रित करने के लिए कई आइसोलेशन स्तरों को परिभाषित किया गया है। उच्च स्तर के अलगाव के परिणामस्वरूप गतिरोध पैदा करने वाले सिस्टम के लिए ओवरहेड लॉक हो सकता है। चार प्रमुख अलगाव स्तर हैं:
अप्रतिबद्ध पढ़ें: यह स्तर गंदे पढ़ने से संबंधित है, जहां पढ़ा गया डेटा तालिका या क्वेरी के अन्य भागों के अनुरूप नहीं है और प्रतिबद्ध नहीं है। यहां डेटा को बिना किसी वेरिफिकेशन, वैलिडेशन और प्रोसेसिंग के टेबल ब्लॉक्स से सीधे पढ़ा जाता है। इसलिए डेटा जितना गंदा हो सकता है।
प्रतिबद्ध पढ़ें: इस मामले में, पंक्तियां जो क्वेरी लौटाती हैं वे पंक्तियां पहले से ही क्वेरी शुरू होने पर प्रतिबद्ध होती हैं। जैसा कि क्वेरी शुरू होने से पहले कमिट पूरा हो गया है, परिणाम क्वेरी आउटपुट में प्रदर्शित नहीं होता है।
बार-बार पढ़ा गया: लेन-देन शुरू होने पर इस मामले में एक क्वेरी द्वारा लौटाई गई पंक्तियाँ प्रतिबद्ध हैं। किए गए परिवर्तन लेन-देन में मौजूद नहीं हैं और इसलिए क्वेरी परिणाम में प्रकट नहीं होते हैं।
सीरियल करने योग्य: इस स्तर पर, लेन-देन पूरी तरह से अलग-थलग तरीके से होता है, क्रमिक रूप से एक के बाद एक। Oracle और Postgre SQL जैसे डेटाबेस कभी-कभी लेन-देन के क्रमिक क्रम की गारंटी नहीं देते हैं, लेकिन स्नैपशॉट अलगाव का समर्थन करते हैं, जहां लेनदेन में सभी डेटाबेस के अनुरूप स्नैपशॉट होते हैं और लेन-देन तभी होता है जब कोई अपडेट स्नैपशॉट के बाद से किए गए अन्य समवर्ती अपडेट के साथ विरोध उत्पन्न नहीं करता है।
स्नैपशॉट अलगाव द्वारा अनुमत विसंगतियों के कारण इंटरलीविंग लेनदेन द्वारा डेटा स्थिरता का उल्लंघन हो सकता है जो स्थिरता बनाए रखता है। अद्यतन विरोधों या कृत्रिम लॉकिंग को प्रारंभ करके इन विसंगतियों को समाप्त किया जा सकता है। सभी डेटाबेस उपयोगकर्ताओं को उनके डिफ़ॉल्ट आइसोलेशन स्तरों को सेट करने की अनुमति देते हैं। सही अलगाव स्तर चुने गए अनुप्रयोगों को गंदे पढ़ने, दोहराने योग्य पढ़ने और प्रेत पढ़ने जैसी त्रुटियों को पेश करने से रोकते हैं। जब पहला लेन-देन दूसरे लेन-देन द्वारा किए गए अप्रतिबंधित परिवर्तनों को पढ़ता है, तो यह गंदे पढ़ने को जन्म देता है। जब एक ही लेन-देन के दौरान दोबारा पढ़ने पर डेटा रीड वही रहता है, तो यह एक दोहराने योग्य पढ़ा जाता है। फैंटम रीड्स तब होते हैं जब जोड़े गए नए रिकॉर्ड को सम्मिलित करने से पहले लेन-देन द्वारा इंगित किया जाता है।
अलग-अलग डेटाबेस लॉक आइसोलेशन स्तरों से निपटते हैं:
रीड लॉक्स: रीड लॉक लेनदेन के दौरान डेटा रीड को बदलने से रोकता है जब तक कि लेनदेन समाप्त नहीं हो जाता है, बार-बार पढ़ने के मामले समाप्त हो जाते हैं। अन्य लेन-देन इस डेटा को पढ़ सकते हैं लेकिन कोई लिखने या बदलने की सुविधा प्रदान नहीं की जाती है।
राईट लॉक्स: राईट लॉक अन्य लेन-देन को लेन-देन समाप्त होने तक डेटा बदलने से रोकता है।
एक्सक्लूसिव राइट लॉक्स: एक्सक्लूसिव राइट लॉक अन्य ट्रांजेक्शन को डेटा को पढ़ने या बदलने से रोकता है जब तक कि मौजूदा ट्रांजैक्शन खत्म नहीं हो जाता।
स्नैपशॉट: लेन-देन शुरू होने पर स्नैपशॉट डेटा का एक जमे हुए दृश्य है। यह गंदे रीड्स, नॉन रिपीटेबल रीड्स और फैंटम रीड्स को रोकता है।
0 Comments