2012-09-30 16 views
12

परमाणुता और स्थिरता के बीच क्या अंतर है? यह मुझे देखता है क्योंकि दोनों अलग-अलग शब्दों में एक ही बात कह रहे हैं।डेटाबेस परमाणु स्थिरता

Atomicity

एक सौदे के सभी कार्य प्रदर्शन कर रहे हैं या उनमें से कोई भी कर रहे हैं। कोई आंशिक लेनदेन नहीं है। उदाहरण के लिए, यदि कोई लेनदेन 100 पंक्तियों को अपडेट करना प्रारंभ करता है, लेकिन सिस्टम 20 अपडेट के बाद विफल रहता है, तो डेटाबेस इन 20 पंक्तियों में परिवर्तनों को वापस ले जाता है।

संगति

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

+1

गैर परमाणु, संगत: आंशिक लेनदेन प्रणाली को एक सतत स्थिति में छोड़ सकता है। परमाणु, गैर-संगत: सिस्टम के 2 भाग संगत होने के बिना परमाणु बनाए रख सकते हैं (लेनदेन एक में दर्ज किया गया है और दूसरे भाग में नहीं)। – nhahtdh

उत्तर

14

परमाणुता वास्तव में कह रही है कि प्रत्येक लेनदेन या तो सभी या कुछ भी नहीं है, जिसका अर्थ है कि या तो सभी या उसके किसी भी क्रिया को निष्पादित नहीं किया गया है और कोई आंशिक संचालन नहीं है।

हालांकि, यह सुनिश्चित करने के लिए स्थिरता वार्ताएं कि कोई लेनदेन डेटाबेस को एक वैध राज्य से दूसरे में लाएगा। डेटाबेस में लिखे गए किसी भी डेटा को सभी परिभाषित नियमों के अनुसार मान्य होना चाहिए, जिसमें बाधाओं, कैस्केड, ट्रिगर, और उसके किसी भी संयोजन (taken from Wikipedia) तक सीमित नहीं है। इसका मूल रूप से अर्थ है कि केवल वैध राज्य डेटाबेस में लिखे गए हैं, और लेनदेन को या तो निष्पादित किया जाएगा यदि यह डेटा स्थिरता का उल्लंघन नहीं करता है या यदि यह करता है तो वापस लुढ़काया जाता है।

आशा है कि यह आपके लिए चीजों को साफ़ कर देगा।

0

सरल स्थिरता के लिए समझाने: यदि डेटाबेस में एक क्षेत्र प्रकार पूर्णांक है, यह स्वीकार करना चाहिए केवल पूर्णांक मान के और नहीं other.If किसी तरह आप इस क्षेत्र में अन्य प्रकार संग्रहीत करना चाहते हैं, स्थिरता का उल्लंघन कर रहे हैं। इस स्थिति में लेनदेन रोलबैक होगा।

0

Atomicity:
बयान का गुच्छा सिर्फ अगर बयान के किसी भी विफल रहा है, 100 के बयानों जो भी बयान सम्मिलित किया जा सकता है की एक उदाहरण लेते हैं, जबकि प्रसंस्करण वापस लौटने चाहिए शेष बयान, जिसका मतलब है डेटाबेस वापस मूल जाना चाहिए राज्य।

Blockquote

autocommit = false

try{ 
    statement one ; 
    statement two ; 
    `enter code here` 
    `enter code here` 
    `enter code here` 
    statement three; 
    } 
    catch(){rollback;} 
    finally(){commit;} t 

संगति: अपने डेटाबेस जो संतुष्ट बाधाओं, झरने होने की जरूरत में तारीख सम्मिलित करने का प्रयास करते हैं, तो थोड़ी देर तरह से चलाता है डेटा में डेटाबेस डालने की कोशिश कर रहे हैं लेकिन तालिका में प्राथमिक कुंजी बाधाएं हैं, इसलिए आपके द्वारा डालने की योजना को डेटा सटिस होना चाहिए प्राथमिक कुंजी बाधा के साथ fy।

अलगाव: यदि डेटाबेस पर दो प्रक्रिया चल रही है तो मान लें कि कोई पढ़ रहा है और दूसरा डेटाबेस में डेटा लिख ​​रहा है। पढ़ने धागा केवल प्रतिबद्ध डेटा को पढ़ने, इन-मेमोरी डेटा नहीं होना चाहिए चाहिए

टिकाऊपन: एक बार डेटाबेस में प्रतिबद्ध भी लेन-देन एक ही मंच होना चाहिए, यह प्रभावित नहीं होना चाहिए बिजली की विफलता या सिस्टम क्रैश किसी से अन्य

संबंधित मुद्दे