परमाणुता संगति अलगाव स्थायित्व (ACID) डेटाबेस प्रबंधन प्रणालियों (DBMS) में एक अवधारणा है जो किसी दिए गए डेटाबेस की विश्वसनीयता की गारंटी देने के लिए उपयोग किए जाने वाले मानक गुणों के एक सेट की पहचान करती है।
ACID डेटाबेस सिस्टम के चार लेन-देन गुणों को संदर्भित करता है: परमाणुता, संगति, अलगाव और स्थायित्व। लेन-देन संचालन का एक क्रम है जो इन गुणों को संतुष्ट करता है।
ACID गुण यह सुनिश्चित करते हैं कि सभी डेटाबेस लेनदेन सटीक और सुसंगत रहें, और प्रसंस्करण संचालन के दौरान होने वाली विफलताओं से पुनर्प्राप्ति का समर्थन करें। इसे लगभग सभी रिलेशनल डेटाबेस द्वारा कार्यान्वित किया जाता है।
डेटाबेस विश्वसनीयता सुनिश्चित करने के लिए डेटाबेस निम्नलिखित चार गुणों की गारंटी देता है, इस प्रकार:
परमाणुता
परमाणुता एक गुण है जो सुनिश्चित करता है कि डेटाबेस सब या कुछ भी नहीं नियम का पालन करता है। दूसरे शब्दों में, डेटाबेस सभी लेन-देन संचालन को एक संपूर्ण इकाई या परमाणु के रूप में मानता है।
इस प्रकार, जब कोई डेटाबेस किसी लेन-देन को संसाधित करता है, तो यह या तो पूरी तरह से पूरा हो जाता है या बिल्कुल भी निष्पादित नहीं होता है। यदि लेन-देन का एक भी भाग विफल हो जाता है, तो पूरा लेन-देन विफल हो जाएगा।
उदाहरण के लिए, उपयोगकर्ता A अपने खाते से $50 निकालना चाहता है और फिर उसे उपयोगकर्ता B के खाते में स्थानांतरित करना चाहता है। प्रत्येक लेनदेन (खाता A से $50 निकालना और खाता B में $50 स्थानांतरित करना) को अलग-अलग गिना जाता है। यदि पहला लेनदेन (50 डॉलर निकालना) विफल हो जाता है क्योंकि (मान लीजिए) लेनदेन के दौरान सर्वर क्रैश हो जाता है, तो उपयोगकर्ता A उपयोगकर्ता B को पैसे स्थानांतरित नहीं कर सकता है।
डेटाबेस सर्वर क्रैश होने की स्थिति में नुकसान को कम करने के लिए परमाणुता विशेष रूप से महत्वपूर्ण है। यदि कोई गैर-वाष्पशील डेटाबेस किसी लेनदेन के बीच में क्रैश हो जाता है, तो उत्पादन डेटाबेस को आंशिक परिणाम भेजने से बचने के लिए किए गए सभी परिवर्तनों को त्याग दिया जाएगा या वापस ले लिया जाएगा।
संगति
संगति एक गुण है जो यह सुनिश्चित करता है कि डेटाबेस में केवल सभी नियमों और बाधाओं का पालन करने वाला वैध डेटा ही लिखा जाए। जब किसी लेनदेन के परिणामस्वरूप अमान्य डेटा प्राप्त होता है, तो डेटाबेस अपनी पिछली स्थिति में वापस आ जाता है, जो सभी प्रथागत नियमों और बाधाओं का पालन करता है।
डेटा अखंडता बनाए रखने के लिए संगति महत्वपूर्ण है। सभी असंगत डेटा को हटा दिया जाता है, और सभी लेन-देन जो असंगति का कारण बन सकते हैं, निरस्त कर दिए जाते हैं और एक त्रुटि बनाई जाती है या त्रुटि लॉग में लिखी जाती है।
उदाहरण के लिए, यदि उपयोगकर्ता A अपने खाते से $1,000 निकालना चाहता है, लेकिन उसके खाते में केवल $500 का बैलेंस है, तो संगति उसे पैसे निकालने से रोक देगी और लेनदेन निरस्त कर दिया जाएगा।
अलगाव
अलगाव एक ऐसा गुण है जो प्रत्येक लेनदेन की विशिष्टता की गारंटी देता है, और उन्हें अन्य लेनदेन से प्रभावित होने से रोकता है। यह सुनिश्चित करता है कि लेनदेन बिना किसी हस्तक्षेप के एक ही समय में सुरक्षित और स्वतंत्र रूप से संसाधित किए जाते हैं, लेकिन यह लेनदेन के क्रम को सुनिश्चित नहीं करता है।
उदाहरण के लिए, उपयोगकर्ता A $100 निकालता है और उपयोगकर्ता B उपयोगकर्ता Z के खाते से $250 निकालता है, जिसमें $1,000 का बैलेंस है। चूँकि A और B दोनों ही Z के खाते से पैसे निकालते हैं, इसलिए असंगत डेटा से बचने के लिए उपयोगकर्ताओं में से एक को दूसरे उपयोगकर्ता के लेनदेन के पूरा होने तक प्रतीक्षा करनी होगी।
यदि B को प्रतीक्षा करने की आवश्यकता है, तो B को A के लेन-देन के पूरा होने तक प्रतीक्षा करनी होगी, और Z के खाते की शेष राशि $900 में बदल जाएगी। अब, B इस $900 शेष राशि से $250 निकाल सकता है।
स्थायित्व
स्थायित्व एक ऐसी संपत्ति है जो पूर्ण किए गए लेन-देन को लागू करती है, यह गारंटी देती है कि एक बार उनमें से प्रत्येक प्रतिबद्ध हो जाने के बाद, यह बाद की विफलताओं के मामले में भी सिस्टम में बना रहेगा।
यदि कोई लेन-देन सफल होता है, तो उसके द्वारा उत्पन्न सभी परिवर्तन स्थायी रूप से संग्रहीत किए जाते हैं।
उपरोक्त उदाहरण में, उपयोगकर्ता B उपयोगकर्ता A के लेन-देन के पूरा होने और डेटाबेस में अपडेट होने के बाद ही $100 निकाल सकता है। यदि A के लेन-देन को डेटाबेस में लॉग इन करने से पहले सिस्टम विफल हो जाता है, तो A कोई पैसा नहीं निकाल सकता है, और Z का खाता अपनी पिछली सुसंगत स्थिति में वापस आ जाता है।
0 Comments