एटोमिसिटी (डेटाबेस सिस्टम)

डेटाबेस सिस्टम में, परमाणुता (से ἄτομος) एसीआईडी ​​(परमाणुता, संगति (डेटाबेस सिस्टम), अलगाव (डेटाबेस सिस्टम), स्थायित्व (डेटाबेस सिस्टम)) डेटाबेस लेनदेन गुणों में से एक है। एक 'परमाणु लेन-देन' डेटाबेस संचालन की एक अविभाज्य और अतार्किकता श्रृंखला है जैसे कि या तो सब होता है, या कुछ भी नहीं होता है। परमाणुता की गारंटी केवल आंशिक रूप से होने वाले डेटाबेस के अद्यतनों को रोकता है, जो पूरी श्रृंखला को एकमुश्त अस्वीकार करने की तुलना में अधिक समस्याएँ पैदा कर सकता है। नतीजतन, लेन-देन को किसी अन्य डेटाबेस क्लाइंट द्वारा प्रगति पर नहीं देखा जा सकता है। एक पल में, यह अभी तक नहीं हुआ है, और अगले समय यह पहले से ही पूरी तरह से हो चुका है (या कुछ भी नहीं हुआ अगर लेन-देन प्रगति में रद्द कर दिया गया था)।

परमाणु लेन-देन का एक उदाहरण बैंक खाते A से खाता B में मौद्रिक हस्तांतरण है। इसमें दो ऑपरेशन होते हैं, खाते A से पैसा निकालना और खाते B में सहेजना। परमाणु लेनदेन में इन कार्यों को करना यह सुनिश्चित करता है कि डेटाबेस में बना रहे एक डेटा संगति, यानी, पैसा न तो खोया जाता है और न ही बनाया जाता है यदि उन दोनों में से कोई भी ऑपरेशन विफल हो जाता है। इसी शब्द का उपयोग डेटाबेस सिस्टम में First_normal_form#Atomicity की परिभाषा में भी किया जाता है, जहां यह इसके बजाय इस अवधारणा को संदर्भित करता है कि फ़ील्ड के मानों में विघटित होने के लिए कई छोटे मान शामिल नहीं हो सकते हैं, जैसे एक स्ट्रिंग जिसमें एकाधिक नाम, संख्याएं, दिनांक, या अन्य प्रकार पैक किए जा सकते हैं।

ऑर्थोगोनलिटी
लेन-देन के अन्य एसीआईडी ​​​​गुणों के संबंध में परमाणु पूरी तरह से ओर्थोगोनल (कम्प्यूटिंग)  व्यवहार नहीं करता है। उदाहरण के लिए, अलगाव (डेटाबेस सिस्टम) एक गतिरोध जैसे अलगाव उल्लंघन की स्थिति में संलग्न लेनदेन को वापस रोल करने के लिए परमाणुता पर निर्भर करता है; संगति (डेटाबेस सिस्टम) भी एक अवैध लेनदेन द्वारा एक निरंतरता उल्लंघन की स्थिति में संलग्न लेनदेन को वापस रोल करने के लिए परमाणुता पर निर्भर करता है।

इसके परिणामस्वरूप, उल्लंघन का पता लगाने में विफलता और संलग्न लेन-देन को वापस लेने से अलगाव या स्थिरता विफलता हो सकती है।

कार्यान्वयन
विशिष्ट रूप से, सिस्टम यह इंगित करने के लिए कि कौन से लेनदेन शुरू हो गए हैं और कौन से समाप्त हो गए हैं, कुछ तंत्र प्रदान करके एटमॉसिटी को लागू करते हैं; या कोई भी परिवर्तन होने से पहले डेटा की एक प्रति रख कर (रीड-कॉपी-अपडेट)। जर्नलिंग (जर्नलिंग फाइल सिस्टम देखें) का उपयोग करते हुए, कई फाइल सिस्टम ने डेटा की कई प्रतियों को रखने की आवश्यकता से बचने के लिए तरीके विकसित किए हैं। डेटाबेस आमतौर पर परिवर्तनों को ट्रैक करने के लिए लॉगिंग/जर्नलिंग के कुछ रूपों का उपयोग करके इसे कार्यान्वित करते हैं। परिवर्तनों के सफलतापूर्वक होने के बाद सिस्टम लॉग्स (अक्सर मेटाडाटा ) को आवश्यक रूप से सिंक्रनाइज़ करता है। बाद में, क्रैश रिकवरी अपूर्ण प्रविष्टियों पर ध्यान नहीं देती है। हालांकि कार्यान्वयन कारकों के आधार पर अलग-अलग होते हैं जैसे कि समवर्ती मुद्दे, परमाणुता का सिद्धांत - यानी पूर्ण सफलता या पूर्ण विफलता - बनी रहती है।

आखिरकार, कोई भी एप्लिकेशन-स्तरीय कार्यान्वयन ऑपरेटिंग सिस्टम | ऑपरेटिंग-सिस्टम की कार्यक्षमता पर निर्भर करता है। फ़ाइल-सिस्टम स्तर पर, POSIX- संगत सिस्टम सिस्टम कॉल प्रदान करते हैं जैसे  और   जो एप्लिकेशन को किसी फ़ाइल को परमाणु रूप से खोलने या लॉक करने की अनुमति देता है। प्रक्रिया स्तर पर, POSIX थ्रेड्स पर्याप्त तुल्यकालन आदिम प्रदान करते हैं।

हार्डवेयर स्तर के लिए टेस्ट-एंड-सेट, लायें और जोड़ें, तुलना और अदला-बदली, या लोड-लिंक/स्टोर-कंडीशनल जैसे  स्मृति बाधा ्स के साथ रैखिकता की आवश्यकता होती है। पोर्टेबल ऑपरेटिंग सिस्टम केवल सिंक्रोनाइज़ेशन को लागू करने के लिए रुकावट को ब्लॉक नहीं कर सकता है, क्योंकि हार्डवेयर जिसमें  हाइपर थ्रेडिंग  या  बहु प्रसंस्करण  जैसे समवर्ती निष्पादन का अभाव है, अब अत्यंत दुर्लभ है।

यह भी देखें

 * परमाणु संचालन
 * लेनदेन प्रक्रिया
 * लंबे समय तक चलने वाला लेन-देन
 * पढ़ें-कॉपी-अपडेट