रिलेशनल डेटाबेस को उनके मूल में विश्वसनीयता और स्थिरता के साथ डिज़ाइन किया गया है। उन्हें विकसित करने वाले इंजीनियरों ने एक लेन-देन मॉडल पर ध्यान केंद्रित किया जो यह सुनिश्चित करता है कि एसीआईडी मॉडल के चार सिद्धांतों को हमेशा संरक्षित रखा जाए। हालाँकि, एक नए असंरचित डेटाबेस मॉडल का आगमन ACID को अपने सिर पर ले जा रहा है। नोएसक्यूएल डेटाबेस मॉडल एक लचीली कुंजी/मूल्य स्टोर दृष्टिकोण के पक्ष में अत्यधिक संरचित रिलेशनल मॉडल को छोड़ देता है। डेटा के लिए इस असंरचित दृष्टिकोण के लिए ACID मॉडल के विकल्प की आवश्यकता होती है: BASE मॉडल।
एसिड मॉडल के मूल सिद्धांत
एसिड मॉडल के चार बुनियादी सिद्धांत हैं:
- लेनदेन की परमाणुता यह सुनिश्चित करता है कि प्रत्येक डेटाबेस लेनदेन एक एकल इकाई है जो निष्पादन के लिए "सभी या कुछ नहीं" दृष्टिकोण को अपनाता है। यदि लेन-देन में कोई विवरण विफल हो जाता है, तो संपूर्ण लेन-देन वापस ले लिया जाता है।
- रिलेशनल डेटाबेस भी डेटाबेस के व्यावसायिक नियमों के साथ प्रत्येक लेनदेन की संगति सुनिश्चित करते हैं। यदि परमाणु लेनदेन का कोई तत्व डेटाबेस की स्थिरता को बाधित करता है, तो संपूर्ण लेनदेन विफल हो जाता है।
- डेटाबेस इंजन एक ही समय में या उसके आस-पास होने वाले कई लेनदेन के बीच अलगाव लागू करता है। प्रत्येक लेन-देन या तो हर दूसरे लेन-देन से पहले या बाद में होता है, और डेटाबेस का दृश्य जो एक लेनदेन अपनी शुरुआत में देखता है, उसके निष्कर्ष से पहले ही लेनदेन द्वारा ही बदल दिया जाता है। किसी भी लेन-देन को किसी अन्य लेन-देन के मध्यवर्ती उत्पाद को कभी नहीं देखना चाहिए।
- अंतिम ACID सिद्धांत, स्थायित्व, यह सुनिश्चित करता है कि एक बार लेनदेन डेटाबेस के लिए प्रतिबद्ध है, यह बैकअप और लेनदेन लॉग के उपयोग के माध्यम से स्थायी रूप से संरक्षित है। विफलता की स्थिति में, इन तंत्रों का उपयोग प्रतिबद्ध लेनदेन को बहाल करने के लिए किया जा सकता है।
आधार के मूल सिद्धांत
दूसरी ओर, NoSQL डेटाबेस, उन स्थितियों को अपनाते हैं जहाँ ACID मॉडल अधिक मात्रा में होता है या वास्तव में, डेटाबेस के संचालन में बाधा उत्पन्न करता है। इसके बजाय, NoSQL एक नरम मॉडल पर निर्भर करता है, जिसे उचित रूप से BASE मॉडल के रूप में जाना जाता है। यह मॉडल NoSQL द्वारा पेश किए गए लचीलेपन और असंरचित डेटा के प्रबंधन और क्यूरेशन के समान दृष्टिकोण को समायोजित करता है। आधार में तीन सिद्धांत होते हैं:
- बुनियादी उपलब्धता NoSQL डेटाबेस दृष्टिकोण कई विफलताओं की उपस्थिति में भी डेटा की उपलब्धता पर केंद्रित है। यह डेटाबेस प्रबंधन के लिए अत्यधिक वितरित दृष्टिकोण का उपयोग करके इसे प्राप्त करता है। एक बड़े डेटा स्टोर को बनाए रखने और उस स्टोर की गलती सहनशीलता पर ध्यान केंद्रित करने के बजाय, नोएसक्यूएल डेटाबेस उच्च स्तर की प्रतिकृति के साथ कई स्टोरेज सिस्टम में डेटा फैलाते हैं। संभावित घटना में कि विफलता डेटा के एक खंड तक पहुंच को बाधित करती है, यह जरूरी नहीं कि एक पूर्ण डेटाबेस आउटेज हो।
- नरम अवस्था। BASE डेटाबेस ACID मॉडल की संगति आवश्यकताओं को पूरी तरह से छोड़ देते हैं। BASE के पीछे मूल अवधारणाओं में से एक यह है कि डेटा स्थिरता डेवलपर की समस्या है और इसे डेटाबेस द्वारा नियंत्रित नहीं किया जाना चाहिए।
- आखिरी संगति स्थिरता के संबंध में NoSQL डेटाबेस की एकमात्र आवश्यकता यह है कि भविष्य में किसी बिंदु पर, डेटा एक सुसंगत स्थिति में परिवर्तित हो जाएगा। हालांकि यह कब होगा इसकी कोई गारंटी नहीं है। यह ACID की तत्काल संगति आवश्यकता से पूर्ण प्रस्थान है जो किसी लेन-देन को तब तक क्रियान्वित करने से रोकता है जब तक कि पूर्व लेन-देन पूरा नहीं हो जाता है और डेटाबेस एक सुसंगत स्थिति में परिवर्तित नहीं हो जाता है।
आधार में, बुनियादी उपलब्धता का मतलब यह हो सकता है कि आप डेटा स्रोतों को नियंत्रित भी नहीं करते हैं। उदाहरण के लिए, आप अपने प्रयास के हिस्से के लिए सार्वजनिक डेटासेट से लिंक कर सकते हैं।
सापेक्ष उपयोग के मामले
आधार मॉडल हर स्थिति के लिए उपयुक्त नहीं है, लेकिन यह निश्चित रूप से डेटाबेस के लिए एसीआईडी मॉडल के लिए एक लचीला विकल्प है जिसे किसी रिलेशनल मॉडल के सख्त पालन की आवश्यकता नहीं होती है।
एसिड का उपयोग करने वाले डेटाबेस के लिए इष्टतम उपयोग के मामले अनुमानित इनपुट और आउटपुट के साथ अत्यधिक संरचित डेटा पर निर्भर करते हैं। इस प्रकार, मानव-संसाधन डेटाबेस, खुदरा डेटाबेस और इलेक्ट्रॉनिक मेडिकल रिकॉर्ड एसीआईडी द्वारा प्रदान की जाने वाली मजबूत आंतरिक स्थिरता जाँच से लाभान्वित होते हैं।
हालांकि, भावना विश्लेषण जैसे अस्पष्ट विषयों के लिए BASE समाधान बेहतर हैं। उदाहरण के लिए, एक आधार-संरचित परियोजना एक ट्विटर फ़ीड को स्कैन कर सकती है जो एक विशिष्ट हैशटैग के आधार पर भावनाओं को इंगित करने वाले शब्दों की तलाश में है। ट्विटर फ़ीड अच्छी तरह से संरचित या स्थानीय रूप से त्वरित नहीं है, लेकिन डेटा स्ट्रीम वह जानकारी प्रदान करती है जो प्रश्नों में प्रोग्राम की जाती है, भले ही उस डेटा का दायरा और प्रकृति स्पष्ट रूप से सीमित न हो।