नोएसक्यूएल

एक नोएसक्यूएल (मूल रूप से गैर-एसक्यूएल या गैर-संबंधपरक की बात करते हुए) डाटाबेस कंप्यूटर डेटा भंडारण और डेटा की डेटा पुनर्प्राप्ति के लिए एक तंत्र प्रदान करता है जो रिलेशनल डेटाबेस में उपयोग किए जाने वाले सारणीबद्ध संबंधों के अलावा अन्य तरीकों से तैयार किया जाता है। इस संबंध का डेटाबेस 1960 के दशक के अंत से अस्तित्व में हैं, लेकिन NoSQL नाम केवल 21 वीं सदी की शुरुआत में ही गढ़ा गया था, वेब 2.0 कंपनियों की जरूरतों के कारण शुरू हुआ। बड़े डेटा और रीयल-टाइम वेब अनुप्रयोगों में नोएसक्यूएल डाटाबेस का तेजी से उपयोग किया जा रहा है। नोएसक्यूएल सिस्टम को कभी-कभी न केवल एसक्यूएल कहा जाता है ताकि जोर दिया जा सके कि वे एसक्यूएल जैसी क्वेरी भाषाओं का समर्थन कर सकते हैं या पॉलीग्लोट दृढ़ता में एसक्यूएल डेटाबेस के साथ बैठ सकते बहुभाषाविद दृढ़ता आर्किटेक्चर। इस दृष्टिकोण के लिए प्रेरणा में डिज़ाइन  की सादगी, सरल क्षैतिज स्केलिंग # क्षैतिज और लंबवत स्केलिंग शामिल हैं क्लस्टर कंप्यूटिंग के लिए क्षैतिज स्केलिंग (जो रिलेशनल डेटाबेस के लिए एक समस्या है), उपलब्धता पर बेहतर नियंत्रण और वस्तु-संबंधपरक प्रतिबाधा बेमेल को सीमित करना। NoSQL डेटाबेस द्वारा उपयोग की जाने वाली डेटा संरचनाएँ (जैसे की-वैल्यू डेटाबेस | की-वैल्यू पेयर, वाइड-कॉलम स्टोर, ग्राफ डेटाबेस, या  दस्तावेज़-उन्मुख डेटाबेस ) रिलेशनल डेटाबेस में डिफ़ॉल्ट रूप से उपयोग किए जाने वाले से अलग हैं, जिससे NoSQL में कुछ ऑपरेशन तेज़ हो जाते हैं।. किसी दिए गए NoSQL डेटाबेस की विशेष उपयुक्तता उस समस्या पर निर्भर करती है जिसे उसे हल करना चाहिए। कभी-कभी NoSQL डेटाबेस द्वारा उपयोग की जाने वाली डेटा संरचना को रिलेशनल डेटाबेस टेबल की तुलना में अधिक लचीला माना जाता है। उपलब्धता, विभाजन सहनशीलता और गति के पक्ष में कई नोएसक्यूएल स्टोर समझौता स्थिरता (सीएपी प्रमेय के अर्थ में)। नोएसक्यूएल स्टोर्स के अधिक से अधिक अपनाने के लिए बाधाओं में निम्न-स्तरीय क्वेरी भाषाओं (उदाहरण के लिए एसक्यूएल के बजाय) का उपयोग शामिल है, तालिकाओं में एड हॉक जॉइन (एसक्यूएल) करने की क्षमता की कमी, मानकीकृत इंटरफेस की कमी, और बड़े पिछले निवेश मौजूदा संबंधपरक डेटाबेस। अधिकांश नोएसक्यूएल स्टोर्स में सच्चे एसीआईडी ​​​​लेनदेन की कमी है, हालांकि कुछ डेटाबेस ने उन्हें अपने डिजाइनों के लिए केंद्रीय बना दिया है।

इसके बजाय, अधिकांश NoSQL डेटाबेस अंतिम स्थिरता की अवधारणा प्रदान करते हैं, जिसमें डेटाबेस परिवर्तन अंततः (आमतौर पर मिलीसेकंड के भीतर) सभी नोड्स के लिए प्रचारित होते हैं, इसलिए डेटा के लिए क्वेरीज़ अपडेट किए गए डेटा को तुरंत वापस नहीं कर सकती हैं या डेटा को पढ़ने में परिणाम हो सकता है जो सटीक नहीं है, ए बासी पठन के रूप में जानी जाने वाली समस्या। इसके अतिरिक्त, कुछ नोएसक्यूएल सिस्टम खोए हुए लेखन और डेटा हानि के अन्य रूपों को प्रदर्शित कर सकते हैं। कुछ NoSQL सिस्टम डेटा हानि से बचने के लिए राइट-फॉरवर्ड लॉगिंग जैसी अवधारणाएँ प्रदान करते हैं। कई डेटाबेस में वितरित लेनदेन प्रसंस्करण के लिए, डेटा स्थिरता एक बड़ी चुनौती है जो NoSQL और रिलेशनल डेटाबेस दोनों के लिए कठिन है। संबंधपरक डेटाबेस डेटाबेस को विस्तृत करने के लिए संदर्भित अखंडता बाधाओं की अनुमति नहीं देते हैं। वितरित लेनदेन प्रसंस्करण के लिए कुछ सिस्टम ACID लेनदेन और X/Open XA मानकों दोनों को बनाए रखते हैं। इंटरएक्टिव रिलेशनल डेटाबेस एक सामान्य विशेषता के रूप में कन्फॉर्मल रिले विश्लेषण तकनीकों को साझा करते हैं। सिमेंटिक वर्चुअलाइजेशन प्रोटोकॉल का उपयोग करके इंटरफ़ेस वातावरण के भीतर की सीमाओं को दूर किया जाता है, जैसे कि NoSQL सेवाएं अधिकांश ऑपरेटिंग सिस्टमों के लिए सुलभ हैं।

इतिहास
NoSQL शब्द का उपयोग 1998 में कार्लो स्ट्रोज़ी द्वारा अपने हल्के स्ट्रोज़ी NoSQL (RDBMS) | स्ट्रोज़ी NoSQL ओपन-सोर्स रिलेशनल डेटाबेस के नाम के लिए किया गया था, जो मानक SQL (SQL) इंटरफ़ेस को उजागर नहीं करता था, लेकिन फिर भी संबंधपरक था। उनका NoSQL RDBMS लगभग 2009 के NoSQL डेटाबेस की सामान्य अवधारणा से अलग है। स्ट्रोज़ी का सुझाव है कि, क्योंकि वर्तमान NoSQL आंदोलन पूरी तरह से संबंधपरक मॉडल से हट जाता है, इसलिए इसे अधिक उचित रूप से 'NoREL' कहा जाना चाहिए, संबंधपरक नहीं होने का जिक्र।

Johan Oskarsson, जो उस समय Last.fm के एक डेवलपर थे, ने 2009 की शुरुआत में NoSQL शब्द को फिर से प्रस्तुत किया जब उन्होंने ओपन-सोर्स वितरित डेटाबेस | वितरित, गैर-संबंधपरक डेटाबेस पर चर्चा करने के लिए एक कार्यक्रम आयोजित किया। नाम ने गैर-संबंधपरक, वितरित डेटा स्टोरों की बढ़ती संख्या के उद्भव को लेबल करने का प्रयास किया, जिसमें Google के बड़ी मेज /मैपरेडस और अमेज़ॅन के अमेज़न डायनेमो डीबी के ओपन सोर्स क्लोन शामिल हैं।

प्रकार और उदाहरण
NoSQL डेटाबेस को वर्गीकृत करने के विभिन्न तरीके हैं, विभिन्न श्रेणियों और उपश्रेणियों के साथ, जिनमें से कुछ ओवरलैप हैं। उदाहरण के साथ, डेटा मॉडल द्वारा गैर-विस्तृत वर्गीकरण क्या है:

की-वैल्यू स्टोर
की-वैल्यू (KV) स्टोर अपने मौलिक डेटा मॉडल के रूप में साहचर्य सरणी (जिसे मानचित्र या शब्दकोश भी कहा जाता है) का उपयोग करते हैं। इस मॉडल में, डेटा को की-वैल्यू पेयर के संग्रह के रूप में दर्शाया जाता है, जैसे कि संग्रह में प्रत्येक संभावित कुंजी एक बार में दिखाई देती है। की-वैल्यू मॉडल सबसे सरल गैर-तुच्छ डेटा मॉडल में से एक है, और समृद्ध डेटा मॉडल अक्सर इसके विस्तार के रूप में लागू किए जाते हैं। की-वैल्यू मॉडल को विवेकपूर्ण रूप से ऑर्डर किए गए मॉडल तक बढ़ाया जा सकता है जो लेक्सिकोग्राफिक ऑर्डर में कुंजियों को बनाए रखता है। यह विस्तार कम्प्यूटेशनल रूप से शक्तिशाली है, जिसमें यह चयनात्मक प्रमुख श्रेणियों को कुशलतापूर्वक पुनः प्राप्त कर सकता है। की-वैल्यू स्टोर्स अंतिम स्थिरता से क्रमिकता तक निरंतरता मॉडल का उपयोग कर सकते हैं। कुछ डेटाबेस चाबियों के क्रम का समर्थन करते हैं। विभिन्न हार्डवेयर कार्यान्वयन हैं, और कुछ उपयोगकर्ता मेमोरी (रैम) में डेटा स्टोर करते हैं, जबकि अन्य ठोस राज्य ड्राइव (SSD) या हार्ड डिस्क ड्राइव (उर्फ हार्ड डिस्क ड्राइव (HDD)) पर।

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

अलग-अलग कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने और/या समूहीकृत करने के अलग-अलग तरीके प्रदान करते हैं:
 * संग्रह
 * टैग
 * गैर-दिखाई देने वाला मेटाडेटा
 * निर्देशिका पदानुक्रम

संबंधपरक डेटाबेस की तुलना में, संग्रह को तालिकाओं के अनुरूप माना जा सकता है और अभिलेखों के अनुरूप दस्तावेज़। लेकिन वे भिन्न हैं: तालिका में प्रत्येक रिकॉर्ड में फ़ील्ड्स का समान क्रम होता है, जबकि संग्रह में दस्तावेज़ों में फ़ील्ड्स पूरी तरह से अलग हो सकते हैं।

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


 * ग्राफ़ डेटाबेस और उनकी क्वेरी भाषा

प्रदर्शन
NoSQL डेटाबेस के प्रदर्शन का मूल्यांकन आमतौर पर THROUGHPUT के मीट्रिक का उपयोग करके किया जाता है, जिसे संचालन/सेकंड के रूप में मापा जाता है। प्रदर्शन मूल्यांकन को सही बेंचमार्क जैसे उत्पादन कॉन्फ़िगरेशन, डेटाबेस के पैरामीटर, अनुमानित डेटा वॉल्यूम और समवर्ती उपयोगकर्ता वर्कलोड पर ध्यान देना चाहिए।

बेन स्कोफिल्ड ने NoSQL डेटाबेस की विभिन्न श्रेणियों का मूल्यांकन इस प्रकार किया है:

प्रदर्शन और मापनीयता की तुलना आमतौर पर YCSB बेंचमार्क का उपयोग करके की जाती है।

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

एकाधिक प्रश्न
एक प्रश्न के साथ सभी डेटा को पुनः प्राप्त करने के बजाय वांछित डेटा प्राप्त करने के लिए कई प्रश्न करना आम बात है। NoSQL क्वेश्चन अक्सर पारंपरिक SQL क्वेश्चन से तेज़ होते हैं इसलिए अतिरिक्त क्वेश्चन की लागत स्वीकार्य हो सकती है। यदि अत्यधिक संख्या में प्रश्न आवश्यक होंगे, तो अन्य दो दृष्टिकोणों में से एक अधिक उपयुक्त है।

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



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

एसीआईडी ​​​​और समर्थन में शामिल हों
एक डेटाबेस को एसीआईडी ​​​​गुणों (परमाणुता, संगति, अलगाव, स्थायित्व) या जॉइन (एसक्यूएल) संचालन का समर्थन करने के रूप में चिह्नित किया जाता है यदि डेटाबेस के लिए प्रलेखन यह दावा करता है। हालाँकि, इसका मतलब यह नहीं है कि क्षमता अधिकांश SQL डेटाबेस के समान तरीके से पूरी तरह से समर्थित है।

यह भी देखें

 * कैप प्रमेय
 * वस्तु डेटाबेस प्रबंधन प्रणालियों की तुलना
 * संरचित भंडारण सॉफ्टवेयर की तुलना
 * सी ++
 * डेटाबेस स्केलेबिलिटी
 * वितरित कैश
 * पहलू खोज
 * मल्टीवैल्यू डेटाबेस
 * बहु-मॉडल डेटाबेस
 * ट्रिपलस्टोर
 * स्कीमा-अज्ञेयवादी डेटाबेस