डेटाबेस लेनदेन क्या है?


114

क्या कोई लेनदेन के लिए एक सीधा (लेकिन संभव से अधिक सरल) विवरण प्रदान नहीं कर सकता है जैसा कि कंप्यूटिंग पर लागू होता है (भले ही विकिपीडिया से कॉपी किया गया हो)?

जवाबों:


239

लेन-देन काम की एक इकाई है जिसे आप "एक संपूर्ण" के रूप में व्यवहार करना चाहते हैं। यह या तो पूरी तरह से या बिल्कुल नहीं होना है।

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

आधुनिक डेटाबेस में लेनदेन कुछ अन्य चीजें भी करते हैं - जैसे यह सुनिश्चित करें कि आप उस डेटा तक नहीं पहुंच सकते हैं जो किसी अन्य व्यक्ति ने आधा लिखा है। लेकिन मूल विचार एक ही है - लेनदेन यह सुनिश्चित करने के लिए है कि कोई फर्क नहीं पड़ता कि आपके साथ काम करने वाला डेटा एक समझदार स्थिति में होगा । वे गारंटी देते हैं कि ऐसी स्थिति नहीं होगी जहां एक खाते से पैसा निकाला जाता है, लेकिन दूसरे को जमा नहीं किया जाता है।


बहुत सरल उदाहरण के लिए धन्यवाद
खानाबदाम

अच्छी व्याख्या!
यान मियो आंग

81

लेन-देन एक राज्य परिवर्तन का प्रतिनिधित्व करने का एक तरीका है। लेनदेन में आदर्श रूप से चार गुण होते हैं, जिन्हें आमतौर पर ACID के रूप में जाना जाता है:

  • परमाणु (यदि परिवर्तन प्रतिबद्ध है, तो यह एक झपट्टा में होता है; आप कभी भी "आधा परिवर्तन" नहीं देख सकते हैं)
  • सुसंगत (परिवर्तन केवल तभी हो सकता है जब सिस्टम की नई स्थिति मान्य होगी; अमान्य परिवर्तन का कोई भी प्रयास विफल हो जाएगा, सिस्टम को उसके पिछले मान्य स्थिति में छोड़कर)
  • अलग किया गया (कोई भी व्यक्ति लेन-देन का कोई हिस्सा तब तक नहीं देखता, जब तक वह प्रतिबद्ध न हो)
  • टिकाऊ (एक बार परिवर्तन हो जाने के बाद - यदि सिस्टम कहता है कि लेन-देन किया गया है, तो ग्राहक को "स्टिक" करने के लिए सिस्टम को "फ्लश" करने की चिंता करने की आवश्यकता नहीं है)

अधिक विवरण के लिए विकिपीडिया ACID प्रविष्टि देखें।

हालाँकि यह आमतौर पर डेटाबेस पर लागू होता है, यह होना जरूरी नहीं है। (विशेष रूप से, सॉफ्टवेयर लेनदेन मेमोरी देखें ।)


46

यहाँ एक सरल व्याख्या है। आपको खाता ए से खाता बी तक 100 रुपये स्थानांतरित करने की आवश्यकता है। आप या तो कर सकते हैं:

accountA -= 100;
accountB += 100;

या

accountB += 100;
accountA -= 100;

यदि जोड़ी में पहले और दूसरे ऑपरेशन के बीच कुछ गलत हो जाता है, तो आपको समस्या है - या तो 100 रुपये गायब हो गए हैं, या वे कहीं से भी बाहर दिखाई दिए हैं।

लेन-देन एक ऐसा तंत्र है जो आपको संचालन के एक समूह को चिह्नित करने और उन्हें इस तरह से निष्पादित करने की अनुमति देता है कि या तो वे सभी निष्पादित (कमिट) करते हैं, या सिस्टम राज्य ऐसा होगा जैसे उन्होंने बिल्कुल भी निष्पादित नहीं किया है (रोलबैक)।

beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;

या तो 100 रुपये ट्रांसफर करेगा या दोनों खातों को प्रारंभिक स्थिति में छोड़ देगा।


31

"डेटा हेरफेर बयानों की एक श्रृंखला जो या तो पूरी तरह से पूरी तरह से पूरी तरह से या पूरी तरह से विफल होनी चाहिए, डेटाबेस को एक सुसंगत स्थिति में छोड़कर"


2
डेटाबेस ही नहीं। हम इस अवधारणा को अन्य घटकों - जैसे कतारबद्ध सेवा, या बाहरी प्रणालियों की स्थिति तक बढ़ा सकते हैं। तो, "डेटा हेरफेर बयानों की एक श्रृंखला जो या तो पूरी तरह से पूरी तरह से पूरी तरह से पूरी तरह से या पूरी तरह से विफल होनी चाहिए, एक सुसंगत स्थिति में सिस्टम को छोड़कर"
मिशैल चान्वाइस्की

10

लेन-देन एक या एक से अधिक SQL ऑपरेशन का एक क्रम है जो एक इकाई के रूप में माना जाता है।

विशेष रूप से, प्रत्येक लेनदेन अलगाव में चलता है, और इसके अलावा, यदि सिस्टम विफल हो जाता है, तो प्रत्येक लेनदेन या तो पूरी तरह से निष्पादित होता है या सभी नहीं।

लेनदेन की अवधारणा दो पूरी तरह से स्वतंत्र चिंताओं से प्रेरित है। एक को कई क्लाइंट्स द्वारा डेटाबेस तक समवर्ती पहुंच के साथ करना पड़ता है, और दूसरे को एक सिस्टम के साथ करना पड़ता है जो सिस्टम विफलताओं के लिए लचीला है।

लेनदेन का समर्थन करता है जिसे ACID गुणों के रूप में जाना जाता है:

  • ए: एटमॉसिटी;
  • सी: संगति;
  • मैं: अलगाव;
  • D: स्थायित्व।

4

http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = टामिसिटी, सी ओन्सिटेंसी, आई सॉल्वैशन , डी यूरेबिलिटी

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


1

मेरा सुझाव है कि 'लेनदेन प्रसंस्करण' की परिभाषा अधिक उपयोगी होगी, क्योंकि यह कंप्यूटर विज्ञान में एक अवधारणा के रूप में लेनदेन को शामिल करता है।

विकिपीडिया से:

कंप्यूटर विज्ञान में, लेनदेन प्रसंस्करण सूचना प्रसंस्करण है जिसे व्यक्तिगत, अविभाज्य संचालन में विभाजित किया जाता है, जिसे लेनदेन कहा जाता है। प्रत्येक लेनदेन को पूर्ण इकाई के रूप में सफल या विफल होना चाहिए; यह मध्यवर्ती अवस्था में नहीं रह सकता है।

http://en.wikipedia.org/wiki/Transaction_processing#Implementations


1

उपरोक्त प्रतिक्रियाओं के अलावा, यह ध्यान दिया जाना चाहिए कि कम से कम सिद्धांत में, कोई प्रतिबंध नहीं है कि किस तरह के संसाधन लेनदेन में शामिल हैं।

ज्यादातर समय, यह सिर्फ एक डेटाबेस, या कई अलग-अलग डेटाबेस होते हैं, लेकिन यह भी अनुमान योग्य है कि एक प्रिंटर लेनदेन में भाग लेता है, और उस लेनदेन को विफल करने का कारण बन सकता है, एक पेपर जाम की स्थिति में कहें।


1

लेनदेन को कार्य के संग्रह के रूप में परिभाषित किया जा सकता है जिसे न्यूनतम प्रसंस्करण इकाई माना जाता है। प्रत्येक न्यूनतम प्रसंस्करण इकाई को आगे विभाजित नहीं किया जा सकता है।

एक लेनदेन का मुख्य संचालन पढ़ा और लिखा जाता है।

सभी लेन-देन में चार गुण होने चाहिए, जिन्हें सटीकता, पूर्णता और डेटा अखंडता सुनिश्चित करने के उद्देश्य से आमतौर पर एसीआईडी ​​गुणों के रूप में जाना जाता है।


0

मुझे लगता है कि डीबीएमएस के संदर्भ में एक लेनदेन एक परमाणु कार्रवाई है।

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

उदाहरण के लिए। आपको एक पुल के माध्यम से चलने की आवश्यकता है (चलो इसे एक संक्रमण के रूप में मानते हैं), और ऐसा करने के लिए, कहते हैं, आपको 100 चरणों की आवश्यकता है। कुल मिलाकर, इन चरणों को अलग नहीं किया जा सकता है। जब आप उनमें से आधा कर चुके होते हैं, तो आपके लिए केवल दो विकल्प होते हैं: उन सभी को पूरा करना जारी रखें, और आरंभ बिंदु पर वापस जाएं। यह सिर्फ एक लेनदेन के परिणाम की तरह है: सफलता (प्रतिबद्ध) और असफल (रोलबैक)


0

लेनदेन डाटा प्रोसेसिंग की एक अविभाज्य इकाई है-सभी लेनदेन में ACID गुण होने चाहिए:

अर्थात: एटमॉसिटी, कंसिस्टेंसी, अलगाव और टिकाऊ लेन-देन सभी या कुछ नहीं है, लेकिन इंटरमिडिएट नहीं है (इसका मतलब है कि यदि आप अपने पैसे को एक खाते से दूसरे खाते में स्थानांतरित करते हैं, तो एक खाते को बहुत अधिक खोना होगा और अन्य को यह राशि प्राप्त करनी होगी, लेकिन यदि आप एक खाते से धन हस्तांतरित करते हैं और दूसरा खाता अभी भी खाली है जो लेनदेन नहीं होगा)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.