डेटाबेस स्थिरता क्या है?
डेटाबेस स्थिरता मूल्यों के एक सेट द्वारा परिभाषित की जाती है जो डेटाबेस सिस्टम के भीतर सभी डेटा पॉइंट्स को ठीक से पढ़ने और स्वीकार करने के लिए संरेखित होना चाहिए। यदि कोई डेटा जो पूर्वनिर्धारित मूल्यों को पूरा नहीं करता है, डेटाबेस में प्रवेश करता है, तो इसका परिणाम डेटासेट के लिए स्थिरता त्रुटियों में होगा। डेटाबेस स्थिरता नियम स्थापित करके प्राप्त की जाती है। डेटाबेस में लिखे गए डेटा का कोई भी लेनदेन केवल प्रभावित डेटा को बदलना चाहिए जैसा कि डेटाबेस के डेवलपर द्वारा निर्धारित नियमों द्वारा स्थापित विशिष्ट बाधाओं, ट्रिगर्स, वेरिएबल्स, कैस्केड्स, आदि द्वारा परिभाषित किया गया है।
उदाहरण के लिए, मान लें कि आप नेशनल ट्रैफिक सेफ्टी इंस्टीट्यूट (NTSI) के लिए काम करते हैं। आपको कैलिफोर्निया के नए ड्राइवर लाइसेंस का डेटाबेस बनाने का काम सौंपा गया है। पिछले दस वर्षों में कैलिफोर्निया की जनसंख्या में विस्फोट हुआ है, जिससे सभी पहली बार ड्राइवर लाइसेंस धारकों के लिए एक नए वर्णमाला और संख्यात्मक प्रारूप की आवश्यकता पैदा हुई है। आपकी टीम ने निर्धारित किया है कि आपके डेटाबेस में कैलिफोर्निया ड्राइवर लाइसेंस के लिए नया सेट मान इस प्रकार है: 1 अल्फा + 7 न्यूमेरिक। हर एक एंट्री को अब इस नियम का पालन करना होगा। एक एंट्री जो "C08846024" पढ़ती है - एक त्रुटि के साथ वापस आएगी। क्यों? क्योंकि दर्ज मान 1 अल्फा + 8 न्यूमेरिक था, जो सार रूप में असंगत डेटा का एक रूप है।
स्थिरता का अर्थ यह भी है कि एक टेबल में किसी एक विशेष ऑब्जेक्ट में किए गए किसी भी डेटा परिवर्तन को उन सभी अन्य टेबल्स में बदला जाना चाहिए जहां वह ऑब्जेक्ट मौजूद है। ड्राइवर लाइसेंस उदाहरण को जारी रखते हुए, यदि नए ड्राइवर का घरेलू पता बदलता है, तो वह अपडेट उन सभी टेबल्स में प्रतिबिंबित होना चाहिए जहां वह पूर्व पता मौजूद था। यदि एक टेबल में पुराना पता है और बाकी सभी में नया पता है, तो यह डेटा असंगति का एक प्रमुख उदाहरण होगा।
नोट: डेटाबेस स्थिरता यह गारंटी नहीं देती कि किसी दिए गए लेनदेन में पेश किया गया डेटा सही है। यह केवल गारंटी देता है कि सिस्टम के भीतर लिखा और पढ़ा गया डेटा डेटाबेस में प्रवेश के लिए पात्र डेटा के सभी पूर्वापेक्षाओं को पूरा करता है। इसे सरल बनाने के लिए, उपरोक्त उदाहरण को देखते हुए, आप एक डेटा लेनदेन दर्ज कर सकते हैं जो 1 अल्फा + 7 न्यूमेरिक नियम को पूरा करता है, लेकिन यह गारंटी नहीं देता कि डेटा एक वास्तविक ड्राइवर लाइसेंस से मेल खाता है। डेटाबेस स्थिरता इस बात का हिसाब नहीं रखती कि डेटा क्या दर्शाता है, केवल इसका प्रारूप।
डेटाबेस स्थिरता क्यों महत्वपूर्ण है?
संगत डेटा वही है जो डेटाबेस को एक अच्छी तरह से तेल वाली मशीन की तरह चालू रखता है। स्थापित नियम/मूल्य जो असंगत डेटा को प्राथमिक डेटाबेस और रेप्लिका से बाहर रखते हैं, इसके संचालन को इसके साथ सुचारू रखते हैं:
- सटीकता
- बढ़ा हुआ डेटाबेस स्थान
- तेज़ और अधिक कुशल डेटा रिट्रीवल
डेटाबेस स्थिरता अंदर आने वाले सभी डेटा को नियंत्रित करती है। इसलिए हालांकि डेटाबेस नए डेटा को स्वीकार करते समय बदलता है, यह कम से कम लगातार और स्थापना पर स्थापित सत्यापन नियमों के अनुसार बदलता है। आज की दुनिया में, दुनिया भर में दैनिक अरबों डॉलर के निर्णय एक डेटाबेस की कथित स्थिरता के आधार पर लिए जाते हैं। जब रीयल-टाइम जानकारी आधुनिक डिजिटल व्यवसायों के लिए नई यथास्थिति बन जाती है, तो यह बहुत महत्वपूर्ण है कि सत्यापन नियमों को रखा जाए ताकि डेटासेट को गलत जानकारी से मुक्त रखा जा सके, क्योंकि यह विलंबता भी बढ़ाता है, जिससे रीयल-टाइम अनुभव इतने रीयल-टाइम नहीं रह जाते।
डेटाबेस स्थिरता उदाहरण
वास्तविक दुनिया में डेटाबेस स्थिरता ऑपरेशन के उदाहरण क्या हैं? हमने पहले ही अपने NTSI परिदृश्य के साथ एक उदाहरण का पता लगाया है। आइए बैंकिंग की दुनिया में पिवट करें।
मान लें कि आप एक खाते से दूसरे खाते में धन हस्तांतरित कर रहे हैं। आपने अभी एक खाते में $1200 स्थानांतरित किया है जिसमें पहले से $300 हैं। आप रीफ्रेश करते हैं, सकारात्मक हैं कि आपको $1500 बैलेंस मिलेगा। फिर भी, यह हालिया ऑपरेशन आपके बैलेंस में परिलक्षित नहीं होता है। वास्तव में, आपका नया बैलेंस अब $0 पढ़ता है। यह तकनीकी चूक कमजोर स्थिरता का एक प्रमुख उदाहरण है और इसके परिणामस्वरूप बैंक प्रतिनिधि के साथ समस्या का निवारण करने में समय व्यतीत होगा। इस तरह के मुद्दे ब्रांड की प्रतिष्ठा को धूमिल कर सकते हैं और महत्वपूर्ण मात्रा में पैसा खर्च कर सकते हैं। डेटाबेस सिस्टम में मजबूत स्थिरता डेवलपर्स और उपभोक्ताओं दोनों के लिए तेजी से एक गैर-परक्राम्य होती जा रही है।
मजबूत स्थिरता बनाम कमजोर स्थिरता
मजबूत स्थिरता का अर्थ है कि प्राथमिक, रेप्लिका और इसके सभी संबंधित नोड्स में सभी डेटा सत्यापन नियमों को फिट करते हैं और किसी भी समय समान हैं। मजबूत डेटाबेस स्थिरता के साथ, इससे कोई फर्क नहीं पड़ता कि कौन सा क्लाइंट डेटा एक्सेस कर रहा है - वे हमेशा डेटाबेस के लिए स्थापित नियमों का पालन करने वाले सबसे हाल ही में अपडेट किए गए डेटा को देखेंगे।
कमजोर स्थिरता प्रसिद्ध वाइल्ड, वाइल्ड वेस्ट की तरह है। इस बात का कोई आश्वासन नहीं है कि आपका डेटा आपके प्राथमिक, रेप्लिका, या नोड्स में किसी भी क्षण समान है। भारत में एक क्लाइंट डेटा एक्सेस कर सकता है और ऐसी जानकारी देख सकता है जो सत्यापन नियमों को पास करती है, लेकिन सबसे हाल ही में अपडेट किया गया डेटा नहीं हो सकता है, जिसके परिणामस्वरूप स्थिरता त्रुटियां होती हैं। वे बहुत अच्छी तरह से ऐसी जानकारी पर कार्य कर सकते हैं जो अब प्रासंगिक नहीं है, भले ही एक समय में यह हो सकती थी।
स्थिरता स्तर
स्थिरता स्तर पूर्वनिर्धारित मूल्यों का एक और सेट है जो यह निर्धारित करता है कि कितने रेप्लिका या नोड्स को नए स्वीकार्य डेटा के साथ प्रतिक्रिया देनी चाहिए इससे पहले कि इसे एक वैध लेनदेन के रूप में स्वीकार किया जाए। यह ऑपरेशन प्रति-लेनदेन आधार पर बदला जा सकता है। तो, उदाहरण के लिए, एक प्रोग्रामर यह निर्धारित कर सकता है कि केवल दो नोड्स को नए इनपुट डेटा को पढ़ने की आवश्यकता है इससे पहले कि यह डेटा स्थिरता को स्वीकार करता है। एक बार जब यह उस बैरोमीटर को पार कर जाता है, तो इसे तब से संगत डेटा माना जाएगा।
आइसोलेशन स्तर
आइसोलेशन स्तर डेटाबेस के ACID (एटॉमिसिटी, स्थिरता, आइसोलेशन, ड्यूरेबिलिटी) गुणों का हिस्सा हैं। ACID SQL डेटाबेस के साथ डेटाबेस स्थिरता की एक मूलभूत अवधारणा है और कुछ डेटाबेस डेटाबेस स्थिरता को अनुकूलित करने के लिए इसका पालन करते हैं। आइसोलेशन ACID के गुणों में से एक है, और यह एक निश्चित डेटाबेस नेटवर्क में सभी जानकारी से डेटा के कुछ टुकड़ों को विभाजित करता है, इसे अन्य उपयोगकर्ता लेनदेन द्वारा संशोधित होने से बचाता है। आइसोलेशन का उपयोग समवर्ती लेनदेन में उत्पन्न असंगत डेटा के रीड्स और राइट्स को कम करने के लिए किया जाता है।
आइसोलेशन के चार प्रकार हैं:
- रीड अनकमिटेड: निम्नतम स्तर। यदि पिछले लेनदेन ने उस पंक्ति में अनकमिटेड अपडेट प्रदान किया है तो पंक्ति अपडेट को रोकता है।
- रीड कमिटेड: यह "डर्टी रीड्स" की अनुमति नहीं देता। यह किसी भी रीड या राइट को ब्लॉक करता है यदि एक लेनदेन पहले ही अपडेट किया जा चुका है, लेकिन अभी तक कमिट नहीं किया गया है।
- रिपीटेबल रीड: यह स्तर पढ़ी जा रही डेटा की पंक्ति को एक्सेस होने और संभावित रूप से अपडेट होने से बचाता है।
- सीरियलाइज़ेबल: उच्चतम आइसोलेशन स्तर, सीरियलाइज़ेबल आमतौर पर एक विशिष्ट पंक्ति के बजाय पूरी टेबल को लॉक करता है।
डेटाबेस स्थिरता FAQs
इसका क्या अर्थ है यदि डेटा सुसंगत है?डेटा सुसंगत है यदि यह सभी संबंधित नोड्स में एक ही समय में समान दिखाई देता है, उपयोगकर्ता की परवाह किए बिना और वे भौगोलिक रूप से कहां से डेटा एक्सेस कर रहे हैं।
क्या डेटा स्थिरता वही चीज है जो डेटाबेस स्थिरता?नहीं। डेटाबेस स्थिरता के लिए डेटा के नेटवर्क में प्रवेश करने के लिए सत्यापन नियमों की आवश्यकता होती है ताकि यह फॉर्मूला-वार, टेबल में अन्य सभी डेटा के साथ सुसंगत हो।
डेटा स्थिरता वह प्रक्रिया है जिसके द्वारा डेटा को नेटवर्क में और कई एप्लिकेशन जो उस डेटा का लाभ उठा रहे हैं, के बीच यथासंभव समान रूप से रखा जाता है।
अंतिम स्थिरता के साथ, डेटा जो एक अपडेट से गुजरा है, अंततः उन सभी नोड्स में परिलक्षित होगा जहां वह डेटा संग्रहीत है। अंततः, अंतिम स्थिरता के माध्यम से नेटवर्क में किसी भी क्लाइंट द्वारा एक्सेस किए जाने पर सभी नोड्स समान डेटा उत्पन्न करेंगे।
एक रिलेशनल डेटाबेस में एक सिंगल टेबल में क्या होता है?रिलेशनल डेटाबेस में सभी डेटा टेबल्स में संग्रहीत होता है, जिनमें पंक्तियां और कॉलम होते हैं। डेटा पॉइंट्स इन पंक्तियों और कॉलम में व्यवस्थित होते हैं। पंक्तियां, जिन्हें अक्सर "रिकॉर्ड्स" कहा जाता है, आमतौर पर डेटा की श्रेणियों का प्रतिनिधित्व करती हैं, जबकि कॉलम, या "फील्ड्स," "इंस्टेंसेस" के लिए खड़े होते हैं। एक टेबल एक डेटाबेस के भीतर पाई जाती है और इसके विषय-आधारित डिजाइन के साथ आपके डेटा को अनावश्यक होने से बचाने में मदद करती है।
एक रिलेशनल डेटाबेस में क्या होता है?टेबल्स
ACID मॉडल BASE मॉडल से कैसे तुलना करता है?ACID और BASE (बेसिकली अवेलिबल, सॉफ्ट स्टेट, इवेंटुअली कंसिस्टेंट) मॉडल के बीच मुख्य अंतर यह है कि जबकि ACID डेटाबेस स्थिरता को अनुकूलित करने का काम करता है, BASE उच्च उपलब्धता को मजबूत करता है। ACID लेनदेन को सुसंगत रखता है, इसलिए यदि आप BASE मॉडल के साथ जाते हैं, तो सुनिश्चित करें कि स्थिरता सर्वोच्च प्राथमिकता बनी रहे और पूरी तरह से संबोधित हो।
क्या रेडिस डेटाबेस सुसंगत हैं?जब रेडिस का उपयोग कैश के रूप में किया जाता है, तो प्रश्न में स्थिरता रेडिस इंस्टेंस (प्राथमिक/रेप्लिका) के बीच और रेडिस कैश और रेडिस के बीच प्राथमिक डेटाबेस के रूप में हो सकती है। इस उदाहरण में, डेटा असंगत हो सकता है यदि उन दो के बीच डेटा मेल नहीं खाता। हमारा ब्लॉग, कैश स्थिरता बनाए रखने के तीन तरीके, इस मुद्दे को हल करने के तरीके को संबोधित करता है।
ओपन सोर्स रेडिस के लिए, कमजोर स्थिरता है, लेकिन रेडिस एंटरप्राइज की एक्टिव-एक्टिव जियो-डिस्ट्रिब्यूशन मजबूत अंतिम स्थिरता प्रदान करती है।
क्लाउड कैशिंग तकनीकों में एंटरप्राइज एप्लिकेशन के लिए रुचि है? ली एचिसन के रेडिस के साथ स्केल पर कैशिंग को पढ़ने के लिए नीचे क्लिक करें।