ACID और डेटाबेस लेनदेन के बीच क्या संबंध है?
क्या ACID डेटाबेस लेन-देन देता है या यह एक ही बात है?
क्या कोई इस विषय पर प्रकाश डाल सकता है।
ACID और डेटाबेस लेनदेन के बीच क्या संबंध है?
क्या ACID डेटाबेस लेन-देन देता है या यह एक ही बात है?
क्या कोई इस विषय पर प्रकाश डाल सकता है।
जवाबों:
ACID उन संपत्तियों का एक समूह है, जिन्हें आप किसी डेटाबेस को संशोधित करते समय लागू करना चाहते हैं।
लेन-देन संबंधित परिवर्तनों का एक समूह है जिसका उपयोग ACID के कुछ गुणों को प्राप्त करने के लिए किया जाता है। लेनदेन ACID गुण प्राप्त करने के लिए उपकरण हैं।
एटमॉसिटी का अर्थ है कि आप गारंटी दे सकते हैं कि सभी लेन-देन होता है, या इसमें से कोई भी नहीं करता है; आप एक ही इकाई, सभी या कुछ भी नहीं के रूप में जटिल संचालन कर सकते हैं, और एक दुर्घटना, बिजली की विफलता, त्रुटि, या कुछ और आपको ऐसी स्थिति में नहीं रहने देगा जिसमें केवल संबंधित परिवर्तन हुए हैं।
संगति का अर्थ है कि आप गारंटी देते हैं कि आपका डेटा सुसंगत होगा; संबंधित डेटा पर आपके पास कोई भी बाधा कभी भी उल्लंघन नहीं होगी।
अलगाव का मतलब है कि एक लेनदेन दूसरे लेनदेन से डेटा नहीं पढ़ सकता है जो अभी तक पूरा नहीं हुआ है। यदि दो लेन-देन समवर्ती रूप से निष्पादित हो रहे हैं, तो प्रत्येक व्यक्ति दुनिया को देखेगा जैसे कि वे क्रमबद्ध तरीके से निष्पादित कर रहे थे, और यदि किसी को दूसरे द्वारा लिखे गए डेटा को पढ़ने की आवश्यकता है, तो उसे दूसरे के समाप्त होने तक इंतजार करना होगा।
स्थायित्व का अर्थ है कि एक बार लेन-देन पूरा हो जाने के बाद, यह गारंटी दी जाती है कि सभी परिवर्तन एक टिकाऊ माध्यम (जैसे हार्ड डिस्क) में दर्ज किए गए हैं, और यह तथ्य कि लेन-देन पूरा हो चुका है, उसी तरह रिकॉर्ड किया गया है।
इसलिए, इन संपत्तियों की गारंटी के लिए लेनदेन एक तंत्र है; वे संबंधित क्रियाओं को एक साथ समूहित करने का एक तरीका है जैसे कि एक पूरे के रूप में, संचालन का एक समूह परमाणु हो सकता है, लगातार परिणाम उत्पन्न कर सकता है, अन्य कार्यों से पृथक हो सकता है, और टिकाऊ रूप से रिकॉर्ड किया जा सकता है।
एसीआईडी किसी भी लेनदेन प्रसंस्करण इंजन के वांछनीय गुण हैं।
एक DBMS है (यदि यह किसी भी अच्छा है) एक विशेष प्रकार का लेनदेन प्रसंस्करण इंजन है जो उजागर करता है, आमतौर पर बहुत हद तक लेकिन पूरी तरह से नहीं, उन गुणों से।
लेकिन अन्य इंजन मौजूद हैं जो उन गुणों को भी उजागर कर सकते हैं। जिस तरह के सॉफ्टवेयर को "टीपी मॉनिटर" कहा जाता था, वह वर्तमान में (आजकल ज्यादातर वेब सर्वर के बराबर है) एक मामला है।
ऐसे टीपी मॉनिटर डीबीएमएस (जैसे एक प्रिंटर) के अलावा अन्य संसाधनों तक पहुंच सकते हैं, और फिर भी अपने उपयोगकर्ताओं के लिए एसीआईडी की गारंटी देते हैं। जब एक प्रिंटर लेनदेन में शामिल होता है तो ACID का क्या अर्थ हो सकता है:
मैंने इसे और अधिक समझाने के लिए प्रिंटर उदाहरण को थोड़ा संशोधित किया
1 दस्तावेज़ जिसमें 2 पेज की सामग्री थी, उसे प्रिंटर पर भेजा गया था
लेनदेन - दस्तावेज़ को प्रिंटर पर भेजा गया
आशा है कि यह किसी को ACID की अवधारणा को लटकाने में मदद करेगा
ACID और डेटाबेस लेनदेन के बीच क्या संबंध है?
एक रिलेशनल डेटाबेस में, प्रत्येक SQL स्टेटमेंट को लेनदेन के दायरे में निष्पादित करना होगा।
लेन-देन की सीमाओं को स्पष्ट रूप से परिभाषित किए बिना, डेटाबेस एक अंतर्निहित लेनदेन का उपयोग करने जा रहा है जो कि प्रत्येक व्यक्तिगत विवरण के आसपास लपेटता है।
निहित लेनदेन बयान के निष्पादित होने से पहले शुरू होता है और कथन निष्पादित होने के बाद समाप्त होता है (कमिट या रोलबैक)। निहित लेन-देन मोड को आमतौर पर ऑटोकॉमिट के रूप में जाना जाता है।
जैसा कि इस लेख में बताया गया है , लेन-देन पढ़ने / लिखने के संचालन का एक संग्रह है जो केवल तभी सफल होता है जब सभी निहित कार्य सफल होते हैं।
आंतरिक रूप से एक लेन-देन चार गुणों (आमतौर पर ACID के रूप में संदर्भित) द्वारा विशेषता है:
क्या ACID डेटाबेस लेन-देन देता है या यह एक ही बात है?
एक रिलेशनल डेटाबेस सिस्टम के लिए, यह सत्य है क्योंकि SQL मानक निर्दिष्ट करता है कि लेनदेन को ACID गारंटी प्रदान करनी चाहिए:
एटोमिसिटी व्यक्तिगत संचालन को लेती है और उन्हें काम की एक ऑल-ऑर-नथिंग यूनिट में बदल देती है, अगर सभी निहित ऑपरेशन सफल होते हैं और केवल तभी।
लेन-देन एक राज्य परिवर्तन को रोक सकता है (जब तक कि यह केवल-पढ़ने के लिए नहीं है)। एक लेन-देन को हमेशा एक सुसंगत स्थिति में सिस्टम को छोड़ना चाहिए, चाहे किसी भी समय कितने समवर्ती लेनदेन को इंटरलेय किया गया हो।
संगति का मतलब है कि हर प्रतिबद्ध लेनदेन के लिए बाधाओं को लागू किया जाता है। तात्पर्य यह है कि सभी कीज़, डेटा प्रकार, चेक और ट्रिगर सफल हैं और कोई बाधा उल्लंघन ट्रिगर नहीं है।
लेन-देन के लिए संगामिति नियंत्रण तंत्रों की आवश्यकता होती है, और वे अंतर्क्रिया होने पर भी शुद्धता की गारंटी देते हैं। अलगाव हमें बाहरी दुनिया से राज्य के बदलावों को छिपाने का लाभ देता है, क्योंकि विफल लेनदेन कभी भी सिस्टम की स्थिति को दूषित नहीं करना चाहिए। निराशावादी या आशावादी लॉकिंग तंत्र का उपयोग करके संगामिति नियंत्रण के माध्यम से अलगाव प्राप्त किया जाता है।
एक सफल लेन-देन को एक प्रणाली की स्थिति को स्थायी रूप से बदलना चाहिए, और इसे समाप्त करने से पहले, राज्य परिवर्तन एक स्थायी लेन-देन लॉग में दर्ज किए जाते हैं। अगर हमारा सिस्टम अचानक सिस्टम क्रैश या पावर आउटेज से प्रभावित होता है, तो सभी अधूरे प्रतिबद्ध लेनदेन फिर से शुरू हो सकते हैं।
स्थायित्व और रीडो लॉग के बारे में अधिक जानकारी के लिए, इस लेख को देखें ।
ACID गुण डेटाबेस सिद्धांत की बहुत पुरानी और महत्वपूर्ण अवधारणा है। मुझे पता है कि आप इस विषय पर बहुत सारी पोस्ट पा सकते हैं, लेकिन फिर भी मैं इस पर शेयर जवाब शुरू करना चाहूंगा क्योंकि यह आरडीबीएमएस का बहुत महत्वपूर्ण विषय है।
डेटाबेस सिस्टम बहुत सारे विभिन्न प्रकार के लेन-देन के साथ खेलता है जहां सभी लेनदेन की कुछ विशेषता होती है। इस विशेषता को ACID गुण कहा जाता है। एसीआईडी गुण सभी कार्यों को पूरा करने के लिए सभी डेटाबेस लेनदेन के लिए अनुदान लेते हैं।
परमाणु: या तो सभी या कुछ भी नहीं।
संगति: सभी नियम और लेन-देन में बाधा के संदर्भ में लगातार रिकॉर्ड बनाएं।
अलगाव: सुनिश्चित करें कि दो लेनदेन एक-दूसरे से अनजान हैं।
स्थायित्व: प्रतिबद्ध डेटा हमेशा के लिए संग्रहीत। इस लेख से लिया गया संदर्भ:
विकिपीडिया को उद्धृत करने के लिए :
ACID (परमाणुता, संगति, अलगाव, स्थायित्व) गुणों का एक समूह है जो डेटाबेस लेनदेन की गारंटी देता है मज़बूती से संसाधित होता है।
एक DBMS जो लेनदेन का समर्थन करता है, इन सभी गुणों का समर्थन करने का प्रयास करेगा - कोई भी व्यावसायिक DBMS (साथ ही कई खुले स्रोत DBMS) पूर्ण ACID 'सहायता' प्रदान करते हैं - हालाँकि यह अक्सर संभव है (उदाहरण के लिए, MSSQL में अलग-थलग स्तरों के साथ) ACIDness को कम करें - इस प्रकार पूरी तरह से व्यवहार संबंधी व्यवहार की गारंटी खो देता है।
[ग्रे] ने 1981 में लेनदेन के लिए एसीडी संपत्तियों की शुरुआत की। 1983 में [हैदर] ने अलगाव की संपत्ति को जोड़ा। मेरी राय में, एसीडी संपत्तियों पर चर्चा करने के लिए गुणों का अधिक उपयोगी सेट होगा। परमाणु की एक व्याख्या (कि लेन-देन किसी भी समय किसी भी ग्राहक से देखा जाने वाला परमाणु होना चाहिए) वास्तव में अलगाव संपत्ति का अर्थ होगा। लेनदेन अलग नहीं होने पर "अलगाव" संपत्ति उपयोगी है ; जब अलगाव की संपत्ति को आराम दिया जाता है। एएनएसआई एसक्यूएल में बोलते हैं: यदि अलगाव का स्तर कमजोर है, तो गंभीर है। लेकिन जब अलगाव का स्तर गंभीर होता है, तो अलगाव की संपत्ति वास्तव में ब्याज की नहीं होती है।
मैंने इस बारे में एक ब्लॉग पोस्ट में अधिक लिखा है: "एसीआईडी डोंट मेक सेंस"।
http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html
[ग्रे] लेन-देन की अवधारणा, जिम ग्रे, 1981। http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf
[हैडर] लेन-देन के सिद्धांतों-उन्मुख डेटाबेस रिकवरी, हैडर और रीटर, 1983। http://www.stanford.edu/class/cs340v/papers/recovery.pdf
लेनदेन को कार्य के संग्रह के रूप में परिभाषित किया जा सकता है जिसे न्यूनतम प्रसंस्करण इकाई माना जाता है। प्रत्येक न्यूनतम प्रसंस्करण इकाई को आगे विभाजित नहीं किया जा सकता है।
सभी लेनदेन में चार गुण होने चाहिए जिन्हें आमतौर पर ACID गुण के रूप में जाना जाता है। यानी ACID किसी भी लेनदेन की संपत्तियों का समूह है।