दस्तावेज़-उन्मुख डेटाबेस: Difference between revisions
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
== दस्तावेज़ == | == दस्तावेज़ == | ||
दस्तावेज़-उन्मुख डेटाबेस की केंद्रीय अवधारणा दस्तावेज़ की धारणा है। जबकि प्रत्येक दस्तावेज़-उन्मुख डेटाबेस कार्यान्वयन इस परिभाषा के विवरण पर भिन्न होता है, | दस्तावेज़-उन्मुख डेटाबेस की केंद्रीय अवधारणा दस्तावेज़ की धारणा है। जबकि प्रत्येक दस्तावेज़-उन्मुख डेटाबेस कार्यान्वयन इस परिभाषा के विवरण पर भिन्न होता है, सामान्यतः वे सभी दस्तावेजों को कुछ मानक प्रारूप संकेतीकरण में डेटा सूचना को समझाया और कूटलेखन करते हैं। उपयोग में आने वाले संकेतीकरण में एक्सएमएल, [[YAML|वाईएएमएल]], [[JSON|जेएसओएन]], साथ ही [[BSON|बीएसओएन]] जैसे द्विआधारी रूप सम्मलित हैं। | ||
दस्तावेज़ भंडार में दस्तावेज़ मोटे | दस्तावेज़ भंडार में दस्तावेज़ मोटे प्रकार से किसी वस्तु की प्रोग्रामिंग अवधारणा के बराबर होते हैं। उन्हें मानक स्कीमा का पालन करने की आवश्यकता नहीं है, न ही उनके पास सभी समान खंड, छेद, भाग या कुंजियाँ होंगी। सामान्यतः वस्तुओं का उपयोग करने वाले प्रोग्राम में कई अलग-अलग प्रकार की वस्तुएं होती हैं और उन वस्तुओं में अधिकांशतः कई वैकल्पिक क्षेत्र होते हैं। प्रत्येक वस्तु, यहां तक कि ही वर्ग की भी, बहुत अलग दिख सकती है। दस्तावेज़ भंडार समान हैं कि वे ही भंडार में विभिन्न प्रकार के दस्तावेज़ों को अनुमति देते हैं, उनके भीतर क्षेत्र वैकल्पिक होने की अनुमति देते हैं। अधिकांशतः उन्हें विभिन्न संकेतीकरण प्रणाली का उपयोग करके कूटलेखन करने की अनुमति देते हैं। उदाहरण के लिए, निम्नलिखित जेएसओएन में कूटलेखनेड दस्तावेज़ है। | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
Line 17: | Line 17: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
्सएमएल में दूसरा दस्तावेज़ | ्सएमएल में दूसरा दस्तावेज़ कूटलेखन किया जा सकता है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<contact> | <contact> | ||
Line 34: | Line 34: | ||
</contact> | </contact> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ये दो दस्तावेज़ कुछ संरचनात्मक तत्वों को दूसरे के साथ साझा करते हैं, किन्तु प्रत्येक में अद्वितीय तत्व भी होते हैं। दस्तावेज़ के अंदर संरचना और पाठ और अन्य डेटा को सामान्यतः दस्तावेज़ की सामग्री के रूप में संदर्भित किया जाता है और पुनर्प्राप्ति या संपादन विधियों के माध्यम से संदर्भित किया जा सकता है, (नीचे देखें)। संबंधपरक डेटाबेस के विपरीत जहां प्रत्येक रिकॉर्ड में समान | ये दो दस्तावेज़ कुछ संरचनात्मक तत्वों को दूसरे के साथ साझा करते हैं, किन्तु प्रत्येक में अद्वितीय तत्व भी होते हैं। दस्तावेज़ के अंदर संरचना और पाठ और अन्य डेटा को सामान्यतः दस्तावेज़ की सामग्री के रूप में संदर्भित किया जाता है और पुनर्प्राप्ति या संपादन विधियों के माध्यम से संदर्भित किया जा सकता है, (नीचे देखें)। संबंधपरक डेटाबेस के विपरीत जहां प्रत्येक रिकॉर्ड में समान क्षेत्र होते हैं, अप्रयुक्त क्षेत्र को खाली छोड़ देते हैं; उपरोक्त उदाहरण में किसी भी दस्तावेज़ (रिकॉर्ड) में कोई खाली 'क्षेत्र' नहीं है। यह दृष्टिकोण बिना किसी आवश्यकता के कुछ रिकॉर्ड में नई जानकारी को जोड़ने की अनुमति देता है कि डेटाबेस में हर दूसरा रिकॉर्ड समान संरचना साझा करता है। | ||
दस्तावेज़ डेटाबेस सामान्यतः अतिरिक्त मेटाडेटा को दस्तावेज़ सामग्री के साथ संबद्ध और संग्रहीत करने के लिए प्रदान करते हैं। वह मेटाडेटा सुविधाओं से संबंधित हो सकता है जो डेटाभंडार दस्तावेज़ों को व्यवस्थित करने, सुरक्षा प्रदान करने, या अन्य कार्यान्वयन विशिष्ट सुविधाओं के लिए प्रदान करता है। | दस्तावेज़ डेटाबेस सामान्यतः अतिरिक्त मेटाडेटा को दस्तावेज़ सामग्री के साथ संबद्ध और संग्रहीत करने के लिए प्रदान करते हैं। वह मेटाडेटा सुविधाओं से संबंधित हो सकता है जो डेटाभंडार दस्तावेज़ों को व्यवस्थित करने, सुरक्षा प्रदान करने, या अन्य कार्यान्वयन विशिष्ट सुविधाओं के लिए प्रदान करता है। | ||
Line 50: | Line 50: | ||
=== पुनर्प्राप्ति === | === पुनर्प्राप्ति === | ||
दस्तावेज़-उन्मुख डेटाबेस की अन्य परिभाषित विशेषता यह है कि दस्तावेज़ को पुनः प्राप्त करने के लिए उपयोग की जा सकने वाली सरल कुंजी-से-दस्तावेज़ लुकअप से परे, डेटाबेस एपीआई या क्वेरी भाषा प्रदान करता है जो उपयोगकर्ता को सामग्री के आधार पर दस्तावेज़ों को पुनः प्राप्त करने की अनुमति देता है (या मेटाडेटा)। उदाहरण के लिए, आप ऐसी क्वेरी चाहते हैं जो निश्चित | दस्तावेज़-उन्मुख डेटाबेस की अन्य परिभाषित विशेषता यह है कि दस्तावेज़ को पुनः प्राप्त करने के लिए उपयोग की जा सकने वाली सरल कुंजी-से-दस्तावेज़ लुकअप से परे, डेटाबेस एपीआई या क्वेरी भाषा प्रदान करता है जो उपयोगकर्ता को सामग्री के आधार पर दस्तावेज़ों को पुनः प्राप्त करने की अनुमति देता है (या मेटाडेटा)। उदाहरण के लिए, आप ऐसी क्वेरी चाहते हैं जो निश्चित क्षेत्र के साथ निश्चित मान पर सेट किए गए सभी दस्तावेज़ों को पुनः प्राप्त करे। क्वेरी एपीआई या क्वेरी भाषा सुविधाओं का सेट उपलब्ध है, साथ ही क्वेरीज़ का अपेक्षित प्रदर्शन, कार्यान्वयन से दूसरे कार्यान्वयन में महत्वपूर्ण रूप से भिन्न होता है। इसी तरह, उपलब्ध इंडेक्सिंग विकल्पों और कॉन्फ़िगरेशन के विशिष्ट सेट कार्यान्वयन से बहुत भिन्न होते हैं। | ||
यह यहाँ है कि दस्तावेज़ भंडार की-वैल्यू भंडार से सबसे अधिक भिन्न होता है। सिद्धांत रूप में, की-वैल्यू भंडार में मान भंडार के लिए अपारदर्शी होते हैं, वे अनिवार्य रूप से ब्लैक बॉक्स होते हैं। वे दस्तावेज़ भंडार के समान खोज प्रणाली की पेशकश कर सकते हैं, किन्तु सामग्री के संगठन के बारे में कम समझ हो सकती है। दस्तावेज़ भंडार सामग्री को वर्गीकृत करने के लिए दस्तावेज़ में मेटाडेटा का उपयोग करते हैं, उदाहरण के लिए, उन्हें यह समझने की अनुमति देता है कि अंकों की श्रृंखला फ़ोन नंबर है, और दूसरा डाक कोड है। यह उन्हें उन प्रकार के डेटा पर खोज करने की अनुमति देता है, उदाहरण के लिए, 555 वाले सभी फ़ोन नंबर, जो ज़िप कोड 55555 को अनदेखा कर देंगे। | यह यहाँ है कि दस्तावेज़ भंडार की-वैल्यू भंडार से सबसे अधिक भिन्न होता है। सिद्धांत रूप में, की-वैल्यू भंडार में मान भंडार के लिए अपारदर्शी होते हैं, वे अनिवार्य रूप से ब्लैक बॉक्स होते हैं। वे दस्तावेज़ भंडार के समान खोज प्रणाली की पेशकश कर सकते हैं, किन्तु सामग्री के संगठन के बारे में कम समझ हो सकती है। दस्तावेज़ भंडार सामग्री को वर्गीकृत करने के लिए दस्तावेज़ में मेटाडेटा का उपयोग करते हैं, उदाहरण के लिए, उन्हें यह समझने की अनुमति देता है कि अंकों की श्रृंखला फ़ोन नंबर है, और दूसरा डाक कोड है। यह उन्हें उन प्रकार के डेटा पर खोज करने की अनुमति देता है, उदाहरण के लिए, 555 वाले सभी फ़ोन नंबर, जो ज़िप कोड 55555 को अनदेखा कर देंगे। | ||
Line 58: | Line 58: | ||
=== संगठन === | === संगठन === | ||
दस्तावेज़ डेटाबेस कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने के विभिन्न तरीकों की पेशकश करता है, जिसमें की धारणाएँ भी | दस्तावेज़ डेटाबेस कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने के विभिन्न तरीकों की पेशकश करता है, जिसमें की धारणाएँ भी सम्मलित हैं | ||
* संग्रह: दस्तावेजों के समूह, जहां कार्यान्वयन के आधार पर, संग्रह के अंदर रहने के लिए दस्तावेज़ को लागू किया जा सकता है, या कई संग्रहों में रहने की अनुमति दी जा सकती है | * संग्रह: दस्तावेजों के समूह, जहां कार्यान्वयन के आधार पर, संग्रह के अंदर रहने के लिए दस्तावेज़ को लागू किया जा सकता है, या कई संग्रहों में रहने की अनुमति दी जा सकती है | ||
Line 70: | Line 70: | ||
=== की-वैल्यू स्टोर्स से संबंध === | === की-वैल्यू स्टोर्स से संबंध === | ||
दस्तावेज़-उन्मुख डेटाबेस विशेष की-वैल्यू डेटाबेस|की-वैल्यू भंडार है, जो स्वयं अन्य नोएसक्यूएल डेटाबेस श्रेणी है। साधारण की-वैल्यू भंडार में, दस्तावेज़ की सामग्री अपारदर्शी होती है। दस्तावेज़-उन्मुख डेटाबेस एपीआई या क्वेरी/अपडेट भाषा प्रदान करता है जो दस्तावेज़ में आंतरिक संरचना के आधार पर क्वेरी या अपडेट करने की क्षमता को उजागर करता है। यह अंतर उन उपयोगकर्ताओं के लिए मामूली हो सकता है जिन्हें समृद्ध क्वेरी, पुनर्प्राप्ति या संपादन API की आवश्यकता नहीं होती है जो सामान्यतः दस्तावेज़ डेटाबेस द्वारा प्रदान किए जाते हैं। आधुनिक की-वैल्यू भंडार में अधिकांशतः मेटाडेटा के साथ काम करने, दस्तावेज़ भंडार के बीच की रेखाओं को धुंधला करने की सुविधाएँ | दस्तावेज़-उन्मुख डेटाबेस विशेष की-वैल्यू डेटाबेस|की-वैल्यू भंडार है, जो स्वयं अन्य नोएसक्यूएल डेटाबेस श्रेणी है। साधारण की-वैल्यू भंडार में, दस्तावेज़ की सामग्री अपारदर्शी होती है। दस्तावेज़-उन्मुख डेटाबेस एपीआई या क्वेरी/अपडेट भाषा प्रदान करता है जो दस्तावेज़ में आंतरिक संरचना के आधार पर क्वेरी या अपडेट करने की क्षमता को उजागर करता है। यह अंतर उन उपयोगकर्ताओं के लिए मामूली हो सकता है जिन्हें समृद्ध क्वेरी, पुनर्प्राप्ति या संपादन API की आवश्यकता नहीं होती है जो सामान्यतः दस्तावेज़ डेटाबेस द्वारा प्रदान किए जाते हैं। आधुनिक की-वैल्यू भंडार में अधिकांशतः मेटाडेटा के साथ काम करने, दस्तावेज़ भंडार के बीच की रेखाओं को धुंधला करने की सुविधाएँ सम्मलित होती हैं। | ||
=== खोज इंजन से संबंध === | === खोज इंजन से संबंध === | ||
Line 78: | Line 78: | ||
संबंधपरक डेटाबेस में, डेटा को पहले कई पूर्वनिर्धारित प्रकारों में वर्गीकृत किया जाता है, और प्रत्येक प्रकार की अलग-अलग प्रविष्टियाँ, या रिकॉर्ड रखने के लिए तालिकाएँ बनाई जाती हैं। तालिकाएँ प्रत्येक रिकॉर्ड के क्षेत्र में डेटा को परिभाषित करती हैं, जिसका अर्थ है कि तालिका में प्रत्येक रिकॉर्ड का समग्र रूप समान है। व्यवस्थापक तालिकाओं के बीच संबंधों को भी परिभाषित करता है, और कुछ निश्चित क्षेत्रों का चयन करता है जो उनके अनुसार खोज के लिए सबसे अधिक उपयोग किए जाएंगे और उन पर अनुक्रमणिका को परिभाषित करता है। संबंधात्मक डिजाइन में महत्वपूर्ण अवधारणा यह है कि कोई भी डेटा जिसे दोहराया जा सकता है, सामान्य रूप से अपनी तालिका में रखा जाता है, और यदि ये उदाहरण -दूसरे से संबंधित हैं, तो उन्हें साथ समूहित करने के लिए कॉलम चुना जाता है, विदेशी कुंजी। इस रचना को [[डेटाबेस सामान्यीकरण]] के रूप में जाना जाता है।<ref>{{cite web |url=https://support.microsoft.com/en-ca/kb/283878 |title=डेटाबेस सामान्यीकरण मूल बातें का विवरण|website=Microsoft}}</ref> | संबंधपरक डेटाबेस में, डेटा को पहले कई पूर्वनिर्धारित प्रकारों में वर्गीकृत किया जाता है, और प्रत्येक प्रकार की अलग-अलग प्रविष्टियाँ, या रिकॉर्ड रखने के लिए तालिकाएँ बनाई जाती हैं। तालिकाएँ प्रत्येक रिकॉर्ड के क्षेत्र में डेटा को परिभाषित करती हैं, जिसका अर्थ है कि तालिका में प्रत्येक रिकॉर्ड का समग्र रूप समान है। व्यवस्थापक तालिकाओं के बीच संबंधों को भी परिभाषित करता है, और कुछ निश्चित क्षेत्रों का चयन करता है जो उनके अनुसार खोज के लिए सबसे अधिक उपयोग किए जाएंगे और उन पर अनुक्रमणिका को परिभाषित करता है। संबंधात्मक डिजाइन में महत्वपूर्ण अवधारणा यह है कि कोई भी डेटा जिसे दोहराया जा सकता है, सामान्य रूप से अपनी तालिका में रखा जाता है, और यदि ये उदाहरण -दूसरे से संबंधित हैं, तो उन्हें साथ समूहित करने के लिए कॉलम चुना जाता है, विदेशी कुंजी। इस रचना को [[डेटाबेस सामान्यीकरण]] के रूप में जाना जाता है।<ref>{{cite web |url=https://support.microsoft.com/en-ca/kb/283878 |title=डेटाबेस सामान्यीकरण मूल बातें का विवरण|website=Microsoft}}</ref> | ||
उदाहरण के लिए, पता पुस्तिका एप्लिकेशन को | उदाहरण के लिए, पता पुस्तिका एप्लिकेशन को सामान्यतः संपर्क नाम, वैकल्पिक छवि, या अधिक फ़ोन नंबर, या अधिक डाक पते, और या अधिक ईमेल पते संग्रहीत करने की आवश्यकता होगी। विहित संबंधपरक डेटाबेस में, डेटा के प्रत्येक बिट के लिए पूर्वनिर्धारित क्षेत्रों के साथ इन पंक्तियों में से प्रत्येक के लिए तालिकाएँ बनाई जाएंगी: CONTACT तालिका में FIRST_NAME, LAST_NAME और IMAGE कॉलम सम्मलित हो सकते हैं, जबकि PHONE_NUMBER तालिका में COUNTRY_CODE, AREA_CODE, PHONE_NUMBER और TYPE सम्मलित हो सकते हैं ( घर, काम, आदि)। PHONE_NUMBER तालिका में विदेशी कुंजी स्तंभ, CONTACT_ID भी सम्मलित है, जिसमें संपर्क बनाए जाने के समय निर्दिष्ट विशिष्ट आईडी संख्या होती है। मूल संपर्क को फिर से बनाने के लिए, डेटाबेस इंजन तालिकाओं के समूह में संबंधित वस्तुओं को देखने के लिए विदेशी कुंजियों का उपयोग करता है और मूल डेटा का पुनर्निर्माण करता है। | ||
इसके विपरीत, दस्तावेज़-उन्मुख डेटाबेस में कोई आंतरिक संरचना नहीं हो सकती है जो सीधे किसी तालिका की अवधारणा पर मैप करती है, और | इसके विपरीत, दस्तावेज़-उन्मुख डेटाबेस में कोई आंतरिक संरचना नहीं हो सकती है जो सीधे किसी तालिका की अवधारणा पर मैप करती है, और क्षेत्र और रिश्ते सामान्यतः पूर्वनिर्धारित अवधारणाओं के रूप में मौजूद नहीं होते हैं। इसके बजाय, किसी वस्तु के सभी डेटा को दस्तावेज़ में रखा जाता है, और डेटाबेस में प्रविष्टि के रूप में संग्रहीत किया जाता है। पता पुस्तिका के उदाहरण में, दस्तावेज़ में संपर्क का नाम, छवि, और कोई भी संपर्क जानकारी, सभी ही रिकॉर्ड में सम्मलित होंगे। उस प्रविष्टि को उसकी कुंजी के माध्यम से ्सेस किया जाता है, जो डेटाबेस को एप्लिकेशन को दस्तावेज़ को पुनः प्राप्त करने और वापस करने की अनुमति देता है। संबंधित डेटा को पुनः प्राप्त करने के लिए किसी अतिरिक्त कार्य की आवश्यकता नहीं है; यह सब वस्तु में लौटाया जाता है। | ||
दस्तावेज़-उन्मुख और संबंधपरक मॉडल के बीच महत्वपूर्ण अंतर यह है कि दस्तावेज़ के मामले में डेटा स्वरूप पूर्वनिर्धारित नहीं होते हैं। ज्यादातर मामलों में, किसी भी प्रकार के दस्तावेज़ को किसी भी डेटाबेस में संग्रहीत किया जा सकता है, और वे दस्तावेज़ किसी भी समय प्रकार और रूप में बदल सकते हैं। यदि कोई किसी संपर्क में COUNTRY_FLAG जोड़ना चाहता है, तो इस | दस्तावेज़-उन्मुख और संबंधपरक मॉडल के बीच महत्वपूर्ण अंतर यह है कि दस्तावेज़ के मामले में डेटा स्वरूप पूर्वनिर्धारित नहीं होते हैं। ज्यादातर मामलों में, किसी भी प्रकार के दस्तावेज़ को किसी भी डेटाबेस में संग्रहीत किया जा सकता है, और वे दस्तावेज़ किसी भी समय प्रकार और रूप में बदल सकते हैं। यदि कोई किसी संपर्क में COUNTRY_FLAG जोड़ना चाहता है, तो इस क्षेत्र को नए दस्तावेज़ों में डाला जा सकता है, क्योंकि इसका डेटाबेस या पहले से संग्रहीत मौजूदा दस्तावेज़ों पर कोई प्रभाव नहीं पड़ेगा। डेटाबेस से जानकारी की पुनर्प्राप्ति में सहायता के लिए, दस्तावेज़-उन्मुख प्रणाली सामान्यतः व्यवस्थापक को कुछ प्रकार की जानकारी देखने के लिए डेटाबेस को संकेत प्रदान करने की अनुमति देते हैं। ये संबंधपरक केस में इंडेक्स के समान काम करते हैं। अधिकांश दस्तावेज़ की सामग्री के बाहर अतिरिक्त मेटाडेटा जोड़ने की क्षमता भी प्रदान करते हैं, उदाहरण के लिए, पता पुस्तिका के हिस्से के रूप में प्रविष्टियों को टैग करना, जो प्रोग्रामर को सभी प्रकार की पता पुस्तिका प्रविष्टियों की तरह संबंधित प्रकार की जानकारी प्राप्त करने की अनुमति देता है। यह तालिका के समान कार्यक्षमता प्रदान करता है, किन्तु अवधारणा (डेटा की श्रेणियां) को इसके भौतिक कार्यान्वयन (तालिकाओं) से अलग करता है। | ||
क्लासिक सामान्यीकृत संबंधपरक मॉडल में, डेटाबेस में वस्तुओं को डेटा की अलग-अलग पंक्तियों के रूप में दर्शाया जाता है, जो कि उन्हें प्राप्त होने के बाद दी गई संरचना से परे नहीं होती है। यह प्रोग्रामिंग ऑब्जेक्ट्स को उनके संबंधित डेटाबेस पंक्तियों में और से अनुवाद करने का प्रयास करते समय समस्याएँ पैदा करता है, समस्या जिसे [[ वस्तु-संबंधपरक प्रतिबाधा बेमेल |वस्तु-संबंधपरक प्रतिबाधा बेमेल]] के रूप में जाना जाता है।<ref>{{cite web |url=http://www.agiledata.org/essays/impedanceMismatch.html |title=वस्तु-संबंधपरक प्रतिबाधा बेमेल|first=Scott |last=Wambler |website=Agile Data}}</ref> दस्तावेज़ अधिक बारीकी से भंडार करता है, या कुछ मामलों में सीधे भंडार में प्रोग्रामिंग ऑब्जेक्ट्स को मैप करता है। इनका विपणन अधिकांशतः नोएसक्यूएल शब्द का उपयोग करके किया जाता है। | क्लासिक सामान्यीकृत संबंधपरक मॉडल में, डेटाबेस में वस्तुओं को डेटा की अलग-अलग पंक्तियों के रूप में दर्शाया जाता है, जो कि उन्हें प्राप्त होने के बाद दी गई संरचना से परे नहीं होती है। यह प्रोग्रामिंग ऑब्जेक्ट्स को उनके संबंधित डेटाबेस पंक्तियों में और से अनुवाद करने का प्रयास करते समय समस्याएँ पैदा करता है, समस्या जिसे [[ वस्तु-संबंधपरक प्रतिबाधा बेमेल |वस्तु-संबंधपरक प्रतिबाधा बेमेल]] के रूप में जाना जाता है।<ref>{{cite web |url=http://www.agiledata.org/essays/impedanceMismatch.html |title=वस्तु-संबंधपरक प्रतिबाधा बेमेल|first=Scott |last=Wambler |website=Agile Data}}</ref> दस्तावेज़ अधिक बारीकी से भंडार करता है, या कुछ मामलों में सीधे भंडार में प्रोग्रामिंग ऑब्जेक्ट्स को मैप करता है। इनका विपणन अधिकांशतः नोएसक्यूएल शब्द का उपयोग करके किया जाता है। | ||
Line 109: | Line 109: | ||
| {{proprietary}} | | {{proprietary}} | ||
| [[Java (programming language)|Java]], [[Python (programming language)|Python]], [[Common Lisp (programming language)|Common Lisp]], [[Ruby (programming language)|Ruby]], [[Scala (programming language)|Scala]], [[C Sharp (programming language)|C#]], [[Perl]] | | [[Java (programming language)|Java]], [[Python (programming language)|Python]], [[Common Lisp (programming language)|Common Lisp]], [[Ruby (programming language)|Ruby]], [[Scala (programming language)|Scala]], [[C Sharp (programming language)|C#]], [[Perl]] | ||
| The database platform supports document store and graph data models in a single database. Supports [[JSON]], [[JSON-LD]], [[Resource Description Framework|RDF]], full-text search, [[ACID]], [[Two-phase commit protocol|two-phase commit]], [[Multi-master replication|Multi-Master Replication]], [[Prolog]] and [[SPARQL]]. | | The database platform supports document store and graph data models in a single database. Supports [[JSON|जेएसओएन]], [[JSON-LD|जेएसओएन-LD]], [[Resource Description Framework|RDF]], full-text search, [[ACID]], [[Two-phase commit protocol|two-phase commit]], [[Multi-master replication|Multi-Master Replication]], [[Prolog]] and [[SPARQL]]. | ||
| {{yes}}<ref>{{cite web|url=https://franz.com/agraph/support/documentation/current/http-protocol.html|title=HTTP Protocol for AllegroGraph}}</ref> | | {{yes}}<ref>{{cite web|url=https://franz.com/agraph/support/documentation/current/http-protocol.html|title=HTTP Protocol for AllegroGraph}}</ref> | ||
|- | |- | ||
Line 130: | Line 130: | ||
| {{Open source|[[BSD License]]}} | | {{Open source|[[BSD License]]}} | ||
| [[Java (programming language)|Java]], [[XQuery]] | | [[Java (programming language)|Java]], [[XQuery]] | ||
| Support for एक्सएमएल, | | Support for एक्सएमएल, जेएसओएन and binary formats; client-/server based architecture; concurrent structural and full-text searches and updates. | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 144: | Line 144: | ||
| {{proprietary}} | | {{proprietary}} | ||
| [[Erlang (programming language)|Erlang]], [[Java (programming language)|Java]], [[Scala (programming language)|Scala]], and [[C (programming language)|C]] | | [[Erlang (programming language)|Erlang]], [[Java (programming language)|Java]], [[Scala (programming language)|Scala]], and [[C (programming language)|C]] | ||
| Distributed database service based on [[BigCouch]], the company's [[Open-source model|open source]] fork of the [[Apache Software Foundation|Apache]]-backed [[CouchDB]] project. Uses | | Distributed database service based on [[BigCouch]], the company's [[Open-source model|open source]] fork of the [[Apache Software Foundation|Apache]]-backed [[CouchDB]] project. Uses जेएसओएन model. | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 151: | Line 151: | ||
| {{proprietary}} with free download | | {{proprietary}} with free download | ||
| [[JavaScript]], [[SQL]], [[PHP]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Python (programming language)|Python]], [[Node.js]], [[C (programming language)|C]], [[C++]], | | [[JavaScript]], [[SQL]], [[PHP]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Python (programming language)|Python]], [[Node.js]], [[C (programming language)|C]], [[C++]], | ||
| Distributed document-oriented एक्सएमएल / | | Distributed document-oriented एक्सएमएल / जेएसओएन database platform with [[ACID]]-compliant [[transaction processing|transactions]]; [[high-availability]] [[data replication]] and [[sharding]]; built-in [[full-text search]] engine with [[relevance]] [[ranking]]; JS/SQL [[query language]]; [[Geographic information system|GIS]]; Available as pay-per-use [[cloud database|database as a service]] or as an on-premise free software download. | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 158: | Line 158: | ||
| {{Open source|[[Apache License]]}} | | {{Open source|[[Apache License]]}} | ||
| [[C (programming language)|C]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Python (programming language)|Python]], [[Node.js]], [[PHP]], [[SQL]], [[Go (programming language)|Go]], [[Spring Framework]], [[LINQ]] | | [[C (programming language)|C]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Python (programming language)|Python]], [[Node.js]], [[PHP]], [[SQL]], [[Go (programming language)|Go]], [[Spring Framework]], [[LINQ]] | ||
|Distributed नोएसक्यूएल Document Database, | |Distributed नोएसक्यूएल Document Database, जेएसओएन model and SQL based Query Language. | ||
| {{yes}}<ref>[http://www.couchbase.com/docs/ Documentation] {{webarchive|url=https://web.archive.org/web/20120820182153/http://www.couchbase.com/docs/ |date=2012-08-20 }}. Couchbase. Retrieved on 2013-09-18.</ref> | | {{yes}}<ref>[http://www.couchbase.com/docs/ Documentation] {{webarchive|url=https://web.archive.org/web/20120820182153/http://www.couchbase.com/docs/ |date=2012-08-20 }}. Couchbase. Retrieved on 2013-09-18.</ref> | ||
|- | |- | ||
Line 165: | Line 165: | ||
| {{Open source|[[Apache License]]}} | | {{Open source|[[Apache License]]}} | ||
| Any language that can make HTTP requests | | Any language that can make HTTP requests | ||
| | | जेएसओएन over REST/HTTP with [[Multi-Version Concurrency Control]] and limited [[ACID]] properties. Uses [[map (higher-order function)|map]] and [[fold (higher-order function)|reduce]] for views and queries.<ref>{{Cite web|url=http://couchdb.apache.org/|archive-url=https://web.archive.org/web/20111020074113/http://couchdb.apache.org/docs/overview.html|url-status=dead|title=Apache CouchDB|archive-date=October 20, 2011|website=Apache Couchdb}}</ref> | ||
| {{yes}}<ref>{{cite web|url=http://wiki.apache.org/couchdb/HTTP_Document_API|title=HTTP_Document_API - Couchdb Wiki|access-date=2011-10-14|archive-url=https://web.archive.org/web/20130301093229/http://wiki.apache.org/couchdb/HTTP_Document_API|archive-date=2013-03-01|url-status=dead}}</ref> | | {{yes}}<ref>{{cite web|url=http://wiki.apache.org/couchdb/HTTP_Document_API|title=HTTP_Document_API - Couchdb Wiki|access-date=2011-10-14|archive-url=https://web.archive.org/web/20130301093229/http://wiki.apache.org/couchdb/HTTP_Document_API|archive-date=2013-03-01|url-status=dead}}</ref> | ||
|- | |- | ||
Line 200: | Line 200: | ||
|{{proprietary|Dual-licensed under [[Server Side Public License]] and Elastic license.}} | |{{proprietary|Dual-licensed under [[Server Side Public License]] and Elastic license.}} | ||
|[[Java (programming language)|Java]] | |[[Java (programming language)|Java]] | ||
|[[JSON]], Search engine. | |[[JSON|जेएसओएन]], Search engine. | ||
|{{yes}} | |{{yes}} | ||
|- | |- | ||
Line 214: | Line 214: | ||
| Proprietary, with no-cost editions<ref>{{cite web|url=http://www.ibm.com/developerworks/data/library/techarticle/dm-0801doe/|title=Compare the Informix Version 12 editions|date=22 July 2016}}</ref> | | Proprietary, with no-cost editions<ref>{{cite web|url=http://www.ibm.com/developerworks/data/library/techarticle/dm-0801doe/|title=Compare the Informix Version 12 editions|date=22 July 2016}}</ref> | ||
| Various (Compatible with MongoDB API) | | Various (Compatible with MongoDB API) | ||
| आरडीबीMS with | | आरडीबीMS with जेएसओएन, replication, sharding and ACID compliance. | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 235: | Line 235: | ||
| Free Developer license or Commercial<ref>{{cite web|url=http://developer.marklogic.com/licensing|title=MarkLogic Licensing|access-date=2011-12-28|archive-url=https://web.archive.org/web/20120112032849/http://developer.marklogic.com/licensing|archive-date=2012-01-12|url-status=dead}}</ref> | | Free Developer license or Commercial<ref>{{cite web|url=http://developer.marklogic.com/licensing|title=MarkLogic Licensing|access-date=2011-12-28|archive-url=https://web.archive.org/web/20120112032849/http://developer.marklogic.com/licensing|archive-date=2012-01-12|url-status=dead}}</ref> | ||
|[[Java (programming language)|Java]], [[JavaScript]], [[Node.js]], [[XQuery]], [[SPARQL]], [[XSLT]], [[C++]] | |[[Java (programming language)|Java]], [[JavaScript]], [[Node.js]], [[XQuery]], [[SPARQL]], [[XSLT]], [[C++]] | ||
| Distributed document-oriented database for | | Distributed document-oriented database for जेएसओएन, एक्सएमएल, and [[Resource Description Framework|RDF triples]]. Built-in [[full-text search]], [[ACID]] transactions, [[high availability]] and [[disaster recovery]], certified security. | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 242: | Line 242: | ||
| {{proprietary|[[Server Side Public License]] for the DBMS, [[Apache 2 License]] for the client drivers<ref>{{cite web|url=http://www.mongodb.org/about/licensing/|title=MongoDB Licensing}}</ref>}} | | {{proprietary|[[Server Side Public License]] for the DBMS, [[Apache 2 License]] for the client drivers<ref>{{cite web|url=http://www.mongodb.org/about/licensing/|title=MongoDB Licensing}}</ref>}} | ||
| [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Perl]], [[PHP]], [[Python (programming language)|Python]], [[Go (programming language)|Go]], [[Node.js]], [[Ruby (programming language)|Ruby]], [[Rust (programming language)|Rust]],<ref>{{Cite news|url=https://www.mongodb.com/blog/post/the-new-mongodb-rust-driver|title=The New MongoDB Rust Driver|work=MongoDB|access-date=2018-02-01|language=en-us}}</ref> [[Scala (programming language)|Scala]]<ref>{{cite web|url=http://docs.mongodb.org/ecosystem/drivers/community-supported-drivers/|title=Community Supported Drivers Reference}}</ref> | | [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Perl]], [[PHP]], [[Python (programming language)|Python]], [[Go (programming language)|Go]], [[Node.js]], [[Ruby (programming language)|Ruby]], [[Rust (programming language)|Rust]],<ref>{{Cite news|url=https://www.mongodb.com/blog/post/the-new-mongodb-rust-driver|title=The New MongoDB Rust Driver|work=MongoDB|access-date=2018-02-01|language=en-us}}</ref> [[Scala (programming language)|Scala]]<ref>{{cite web|url=http://docs.mongodb.org/ecosystem/drivers/community-supported-drivers/|title=Community Supported Drivers Reference}}</ref> | ||
| Document database with replication and sharding, [[BSON]] store (binary format [[JSON]]). | | Document database with replication and sharding, [[BSON|बीएसओएन]] store (binary format [[JSON|जेएसओएन]]). | ||
| {{yes}}<ref name="docs">{{Cite web|url=https://docs.mongodb.com/ecosystem/tools/http-interfaces/|title=HTTP Interface — MongoDB Ecosystem|website=MongoDB Docs}}</ref><ref name="github">{{Cite web|url=https://github.com/mongodb/docs-ecosystem|title=GitHub - mongodb/docs-ecosystem: MongoDB Ecosystem Documentation.|date=June 27, 2019|via=GitHub}}</ref> | | {{yes}}<ref name="docs">{{Cite web|url=https://docs.mongodb.com/ecosystem/tools/http-interfaces/|title=HTTP Interface — MongoDB Ecosystem|website=MongoDB Docs}}</ref><ref name="github">{{Cite web|url=https://github.com/mongodb/docs-ecosystem|title=GitHub - mongodb/docs-ecosystem: MongoDB Ecosystem Documentation.|date=June 27, 2019|via=GitHub}}</ref> | ||
|- | |- | ||
Line 270: | Line 270: | ||
| {{Open source|[[Apache License]]}} | | {{Open source|[[Apache License]]}} | ||
| [[Java (programming language)|Java]] | | [[Java (programming language)|Java]] | ||
| | | जेएसओएन over HTTP, SQL support, [[ACID]] transactions | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 277: | Line 277: | ||
|[[Apache License|Apache]] and proprietary | |[[Apache License|Apache]] and proprietary | ||
|C, C#, Java, Python, node.js, Go | |C, C#, Java, Python, node.js, Go | ||
|Shared nothing, horizontally scalable NoSQL Database supporting schema-less JSON, fixed schema tables, and key/value pairs. ACID transactions are also supported.| Shared nothing, horizontally scalable database with support for schema-less | |Shared nothing, horizontally scalable NoSQL Database supporting schema-less JSON, fixed schema tables, and key/value pairs. ACID transactions are also supported.| Shared nothing, horizontally scalable database with support for schema-less जेएसओएन, fixed schema tables, and key/value pairs. Also supports ACID transactions. | ||
|Yes | |Yes | ||
|- | |- | ||
Line 284: | Line 284: | ||
| {{proprietary}} | | {{proprietary}} | ||
| [[REST]], [[Java (programming language)|Java]], [[XQuery]], [[XSLT]], [[C (programming language)|C]], [[C++]], [[Python (programming language)|Python]] | | [[REST]], [[Java (programming language)|Java]], [[XQuery]], [[XSLT]], [[C (programming language)|C]], [[C++]], [[Python (programming language)|Python]] | ||
| Distributed document-oriented [[XML database|एक्सएमएल database]] with integrated [[full-text search]]; support for [[JSON]], text, and binaries. | | Distributed document-oriented [[XML database|एक्सएमएल database]] with integrated [[full-text search]]; support for [[JSON|जेएसओएन]], text, and binaries. | ||
|{{yes}} | |{{yes}} | ||
|- | |- | ||
| [[Redis| | | [[Redis|Redisजेएसओएन]] | ||
| [[Redis]] | | [[Redis]] | ||
| Redis Source Available License (RSAL) | | Redis Source Available License (RSAL) | ||
| [[Python (programming language)|Python]] | | [[Python (programming language)|Python]] | ||
| [[JSON]] with integrated [[full-text search]].<ref>{{cite web |title=RedisJSON - a JSON data type for Redis |url=https://oss.redis.com/redisjson/}}</ref> | | [[JSON|जेएसओएन]] with integrated [[full-text search]].<ref>{{cite web |title=RedisJSON - a JSON data type for Redis |url=https://oss.redis.com/redisjson/}}</ref> | ||
|{{yes}} | |{{yes}} | ||
|- | |- | ||
Line 298: | Line 298: | ||
|{{Open source|[[Apache License]]}}<ref>{{cite web |title=Transferring copyright to The Linux Foundation, relicensing RethinkDB under ASLv2.|url=https://github.com/rethinkdb/rethinkdb/commit/b0ec8bc5a874d5241d8af1166d664083edc5f750#diff-97d9303acdfc078a050e61dc5c1a9a76 |website=github.com |access-date=27 January 2020}}</ref> | |{{Open source|[[Apache License]]}}<ref>{{cite web |title=Transferring copyright to The Linux Foundation, relicensing RethinkDB under ASLv2.|url=https://github.com/rethinkdb/rethinkdb/commit/b0ec8bc5a874d5241d8af1166d664083edc5f750#diff-97d9303acdfc078a050e61dc5c1a9a76 |website=github.com |access-date=27 January 2020}}</ref> | ||
| [[C++]], [[Python (programming language)|Python]], [[JavaScript]], [[Ruby (programming language)|Ruby]], [[Java (programming language)|Java]] | | [[C++]], [[Python (programming language)|Python]], [[JavaScript]], [[Ruby (programming language)|Ruby]], [[Java (programming language)|Java]] | ||
| Distributed document-oriented [[JSON]] database with replication and sharding. | | Distributed document-oriented [[JSON|जेएसओएन]] database with replication and sharding. | ||
|{{no}} | |{{no}} | ||
|- | |- | ||
Line 305: | Line 305: | ||
|{{proprietary}} | |{{proprietary}} | ||
|[[SQL]]-like language | |[[SQL]]-like language | ||
|[[ACID]] transaction supported, [[JSON]] only | |[[ACID]] transaction supported, [[JSON|जेएसओएन]] only | ||
|{{yes}} | |{{yes}} | ||
|- | |- | ||
Line 326: | Line 326: | ||
|{{Open source|[[Apache License]]<ref>{{cite web |title=solr/LICENSE.txt at main · apache/solr · GitHub.|url=https://github.com/apache/solr/blob/main/LICENSE.txt |website=github.com |access-date=24 December 2022}}</ref>}} | |{{Open source|[[Apache License]]<ref>{{cite web |title=solr/LICENSE.txt at main · apache/solr · GitHub.|url=https://github.com/apache/solr/blob/main/LICENSE.txt |website=github.com |access-date=24 December 2022}}</ref>}} | ||
|[[Java (programming language)|Java]] | |[[Java (programming language)|Java]] | ||
|[[JSON]], [[Comma-separated values|CSV]], [[XML|एक्सएमएल]], and a few other formats.<ref>{{cite web |title=Response Writers :: Apache Solr Reference Guide.|url=https://solr.apache.org/guide/solr/latest/query-guide/response-writers.html |website=solr.apache.org |access-date=24 December 2022}}</ref> Search engine. | |[[JSON|जेएसओएन]], [[Comma-separated values|CSV]], [[XML|एक्सएमएल]], and a few other formats.<ref>{{cite web |title=Response Writers :: Apache Solr Reference Guide.|url=https://solr.apache.org/guide/solr/latest/query-guide/response-writers.html |website=solr.apache.org |access-date=24 December 2022}}</ref> Search engine. | ||
|{{yes}}<ref>{{cite web |title=Managed Resources :: Apache Solr Reference Guide.|url=https://solr.apache.org/guide/solr/latest/configuration-guide/managed-resources.html |website=solr.apache.org |access-date=24 December 2022}}</ref> | |{{yes}}<ref>{{cite web |title=Managed Resources :: Apache Solr Reference Guide.|url=https://solr.apache.org/guide/solr/latest/configuration-guide/managed-resources.html |website=solr.apache.org |access-date=24 December 2022}}</ref> | ||
|- | |- |
Revision as of 12:29, 1 March 2023
दस्तावेज़-उन्मुख डेटाबेस, दस्तावेज़ भंडार , कंप्यूटर प्रोग्राम और डेटा भंडारण प्रणाली है। जिसे दस्तावेज़-उन्मुख जानकारी को संग्रहीत करने, पुनर्प्राप्त करने और प्रबंधित करने के लिए रचना किया गया है, जिसे अर्ध-संरचित मॉडल के रूप में भी जाना जाता है।[1]दस्तावेज़-उन्मुख डेटाबेस नोएसक्यूएल डेटाबेस की मुख्य श्रेणियों में से हैं और दस्तावेज़-उन्मुख डेटाबेस शब्द की लोकप्रियता बढ़ी है[2] नोएसक्यूएल शब्द के उपयोग के साथ ही एक्सएमएल डेटाबेस दस्तावेज़-उन्मुख डेटाबेस का उपवर्ग है जो एक्सएमएल दस्तावेज़ों के साथ काम करने के लिए अनुकूलित है। ग्राफ डेटाबेस समान हैं, किन्तु और परत जोड़ते हैं, संबंधपरक जो उन्हें तेजी से पार करने के लिए दस्तावेज़ों को लिंक करने की अनुमति देता है।
दस्तावेज़-उन्मुख डेटाबेस स्वाभाविक रूप से की-वैल्यू डेटाबेस भंडार अन्य नोएसक्यूएल डेटाबेस अवधारणा का उपवर्ग है। यह अंतर डेटा संसाधित करने के प्रणाली में निहित है। की-वैल्यू भंडार में डेटा को डेटाबेस के लिए स्वाभाविक रूप से अपारदर्शी माना जाता है, जबकि दस्तावेज़-उन्मुख प्रणाली मेटा डेटा निकालने के लिए दस्तावेज़ में आंतरिक संरचना पर निर्भर करती है जिसे डेटाबेस इंजन आगे अनुकूलन के लिए उपयोग करता है। चूंकि प्रणाली में उपकरणों के कारण अंतर अधिकांशतः नगण्य होता है,[lower-alpha 1] वैचारिक रूप से दस्तावेज़-भंडार को आधुनिक प्रोग्रामिंग तकनीकों के साथ समृद्ध अनुभव प्रदान करने के लिए रचना किया गया है।
दस्तावेज़ डेटाबेस[lower-alpha 2] पारंपरिक संबंध का डेटाबेस (आरडीबी) के साथ दृढ़ता से विपरीत है। संबंधपरक डेटाबेस सामान्यतः प्रोग्रामर द्वारा परिभाषित अलग-अलग तालिकाओं में डेटा संग्रहीत करते हैं और वस्तु कई तालिकाओं में फैली हो सकती है। दस्तावेज़ डेटाबेस किसी दिए गए वस्तु के लिए सभी सूचनाओं को डेटाबेस में उदाहरण में संग्रहीत करता है और प्रत्येक संग्रहीत वस्तु दूसरे से भिन्न हो सकती है। यह डेटाबेस में डेटा लोड करते समय ऑब्जेक्ट-संबंधपरक मानचित्रण की आवश्यकता को समाप्त करता है।
दस्तावेज़
दस्तावेज़-उन्मुख डेटाबेस की केंद्रीय अवधारणा दस्तावेज़ की धारणा है। जबकि प्रत्येक दस्तावेज़-उन्मुख डेटाबेस कार्यान्वयन इस परिभाषा के विवरण पर भिन्न होता है, सामान्यतः वे सभी दस्तावेजों को कुछ मानक प्रारूप संकेतीकरण में डेटा सूचना को समझाया और कूटलेखन करते हैं। उपयोग में आने वाले संकेतीकरण में एक्सएमएल, वाईएएमएल, जेएसओएन, साथ ही बीएसओएन जैसे द्विआधारी रूप सम्मलित हैं।
दस्तावेज़ भंडार में दस्तावेज़ मोटे प्रकार से किसी वस्तु की प्रोग्रामिंग अवधारणा के बराबर होते हैं। उन्हें मानक स्कीमा का पालन करने की आवश्यकता नहीं है, न ही उनके पास सभी समान खंड, छेद, भाग या कुंजियाँ होंगी। सामान्यतः वस्तुओं का उपयोग करने वाले प्रोग्राम में कई अलग-अलग प्रकार की वस्तुएं होती हैं और उन वस्तुओं में अधिकांशतः कई वैकल्पिक क्षेत्र होते हैं। प्रत्येक वस्तु, यहां तक कि ही वर्ग की भी, बहुत अलग दिख सकती है। दस्तावेज़ भंडार समान हैं कि वे ही भंडार में विभिन्न प्रकार के दस्तावेज़ों को अनुमति देते हैं, उनके भीतर क्षेत्र वैकल्पिक होने की अनुमति देते हैं। अधिकांशतः उन्हें विभिन्न संकेतीकरण प्रणाली का उपयोग करके कूटलेखन करने की अनुमति देते हैं। उदाहरण के लिए, निम्नलिखित जेएसओएन में कूटलेखनेड दस्तावेज़ है।
{
"FirstName": "Bob",
"Address": "5 Oak St.",
"Hobby": "sailing"
}
्सएमएल में दूसरा दस्तावेज़ कूटलेखन किया जा सकता है:
<contact>
<firstname>Bob</firstname>
<lastname>Smith</lastname>
<phone type="Cell">(123) 555-0178</phone>
<phone type="Work">(890) 555-0133</phone>
<address>
<type>Home</type>
<street1>123 Back St.</street1>
<city>Boys</city>
<state>AR</state>
<zip>32225</zip>
<country>US</country>
</address>
</contact>
ये दो दस्तावेज़ कुछ संरचनात्मक तत्वों को दूसरे के साथ साझा करते हैं, किन्तु प्रत्येक में अद्वितीय तत्व भी होते हैं। दस्तावेज़ के अंदर संरचना और पाठ और अन्य डेटा को सामान्यतः दस्तावेज़ की सामग्री के रूप में संदर्भित किया जाता है और पुनर्प्राप्ति या संपादन विधियों के माध्यम से संदर्भित किया जा सकता है, (नीचे देखें)। संबंधपरक डेटाबेस के विपरीत जहां प्रत्येक रिकॉर्ड में समान क्षेत्र होते हैं, अप्रयुक्त क्षेत्र को खाली छोड़ देते हैं; उपरोक्त उदाहरण में किसी भी दस्तावेज़ (रिकॉर्ड) में कोई खाली 'क्षेत्र' नहीं है। यह दृष्टिकोण बिना किसी आवश्यकता के कुछ रिकॉर्ड में नई जानकारी को जोड़ने की अनुमति देता है कि डेटाबेस में हर दूसरा रिकॉर्ड समान संरचना साझा करता है।
दस्तावेज़ डेटाबेस सामान्यतः अतिरिक्त मेटाडेटा को दस्तावेज़ सामग्री के साथ संबद्ध और संग्रहीत करने के लिए प्रदान करते हैं। वह मेटाडेटा सुविधाओं से संबंधित हो सकता है जो डेटाभंडार दस्तावेज़ों को व्यवस्थित करने, सुरक्षा प्रदान करने, या अन्य कार्यान्वयन विशिष्ट सुविधाओं के लिए प्रदान करता है।
सीआरयूडी संचालन
दस्तावेज़-उन्मुख डेटाबेस दस्तावेज़ों के लिए समर्थन करने वाले मुख्य संचालन अन्य डेटाबेस के समान हैं, और जबकि शब्दावली पूरी तरह से मानकीकृत नहीं है, अधिकांश चिकित्सक उन्हें CRUD के रूप में पहचानेंगे:
- निर्माण (या सम्मिलन)
- पुनर्प्राप्ति (या क्वेरी, खोज, पढ़ना या खोजना)
- अपडेट करें (या संपादित करें)
- हटाना (या हटाना)
कुंजी
दस्तावेज़ों को डेटाबेस में अद्वितीय कुंजी के माध्यम से संबोधित किया जाता है जो उस दस्तावेज़ का प्रतिनिधित्व करता है। यह कुंजी साधारण पहचानकर्ता (या आईडी), सामान्यतः स्ट्रिंग (कंप्यूटर विज्ञान), यूआरआई या पथ (कंप्यूटिंग) है। डेटाबेस से दस्तावेज़ को पुनः प्राप्त करने के लिए कुंजी का उपयोग किया जा सकता है। सामान्यतः डेटाबेस दस्तावेज़ पुनर्प्राप्ति को गति देने के लिए कुंजी पर डाटाबेस इंडेक्स रखता है, और कुछ मामलों में डेटाबेस में दस्तावेज़ बनाने या सम्मिलित करने के लिए कुंजी की आवश्यकता होती है।
पुनर्प्राप्ति
दस्तावेज़-उन्मुख डेटाबेस की अन्य परिभाषित विशेषता यह है कि दस्तावेज़ को पुनः प्राप्त करने के लिए उपयोग की जा सकने वाली सरल कुंजी-से-दस्तावेज़ लुकअप से परे, डेटाबेस एपीआई या क्वेरी भाषा प्रदान करता है जो उपयोगकर्ता को सामग्री के आधार पर दस्तावेज़ों को पुनः प्राप्त करने की अनुमति देता है (या मेटाडेटा)। उदाहरण के लिए, आप ऐसी क्वेरी चाहते हैं जो निश्चित क्षेत्र के साथ निश्चित मान पर सेट किए गए सभी दस्तावेज़ों को पुनः प्राप्त करे। क्वेरी एपीआई या क्वेरी भाषा सुविधाओं का सेट उपलब्ध है, साथ ही क्वेरीज़ का अपेक्षित प्रदर्शन, कार्यान्वयन से दूसरे कार्यान्वयन में महत्वपूर्ण रूप से भिन्न होता है। इसी तरह, उपलब्ध इंडेक्सिंग विकल्पों और कॉन्फ़िगरेशन के विशिष्ट सेट कार्यान्वयन से बहुत भिन्न होते हैं।
यह यहाँ है कि दस्तावेज़ भंडार की-वैल्यू भंडार से सबसे अधिक भिन्न होता है। सिद्धांत रूप में, की-वैल्यू भंडार में मान भंडार के लिए अपारदर्शी होते हैं, वे अनिवार्य रूप से ब्लैक बॉक्स होते हैं। वे दस्तावेज़ भंडार के समान खोज प्रणाली की पेशकश कर सकते हैं, किन्तु सामग्री के संगठन के बारे में कम समझ हो सकती है। दस्तावेज़ भंडार सामग्री को वर्गीकृत करने के लिए दस्तावेज़ में मेटाडेटा का उपयोग करते हैं, उदाहरण के लिए, उन्हें यह समझने की अनुमति देता है कि अंकों की श्रृंखला फ़ोन नंबर है, और दूसरा डाक कोड है। यह उन्हें उन प्रकार के डेटा पर खोज करने की अनुमति देता है, उदाहरण के लिए, 555 वाले सभी फ़ोन नंबर, जो ज़िप कोड 55555 को अनदेखा कर देंगे।
संपादन
दस्तावेज़ डेटाबेस सामान्यतः दस्तावेज़ की सामग्री (या मेटाडेटा) को अद्यतन या संपादित करने के लिए कुछ तंत्र प्रदान करते हैं, या तो पूरे दस्तावेज़ के प्रतिस्थापन की अनुमति देकर, या दस्तावेज़ के अलग-अलग संरचनात्मक टुकड़े।
संगठन
दस्तावेज़ डेटाबेस कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने के विभिन्न तरीकों की पेशकश करता है, जिसमें की धारणाएँ भी सम्मलित हैं
- संग्रह: दस्तावेजों के समूह, जहां कार्यान्वयन के आधार पर, संग्रह के अंदर रहने के लिए दस्तावेज़ को लागू किया जा सकता है, या कई संग्रहों में रहने की अनुमति दी जा सकती है
- टैग और अदृश्य मेटाडेटा: दस्तावेज़ सामग्री के बाहर अतिरिक्त डेटा
- निर्देशिका पदानुक्रम: पेड़ जैसी संरचना में व्यवस्थित दस्तावेजों के समूह, सामान्यतः पथ या यूआरआई पर आधारित होते हैं
कभी-कभी ये संगठनात्मक विचार इस बात में भिन्न होते हैं कि वे कितने तार्किक बनाम भौतिक हैं, (जैसे डिस्क पर या मेमोरी में), अभ्यावेदन।
अन्य डेटाबेस से संबंध
की-वैल्यू स्टोर्स से संबंध
दस्तावेज़-उन्मुख डेटाबेस विशेष की-वैल्यू डेटाबेस|की-वैल्यू भंडार है, जो स्वयं अन्य नोएसक्यूएल डेटाबेस श्रेणी है। साधारण की-वैल्यू भंडार में, दस्तावेज़ की सामग्री अपारदर्शी होती है। दस्तावेज़-उन्मुख डेटाबेस एपीआई या क्वेरी/अपडेट भाषा प्रदान करता है जो दस्तावेज़ में आंतरिक संरचना के आधार पर क्वेरी या अपडेट करने की क्षमता को उजागर करता है। यह अंतर उन उपयोगकर्ताओं के लिए मामूली हो सकता है जिन्हें समृद्ध क्वेरी, पुनर्प्राप्ति या संपादन API की आवश्यकता नहीं होती है जो सामान्यतः दस्तावेज़ डेटाबेस द्वारा प्रदान किए जाते हैं। आधुनिक की-वैल्यू भंडार में अधिकांशतः मेटाडेटा के साथ काम करने, दस्तावेज़ भंडार के बीच की रेखाओं को धुंधला करने की सुविधाएँ सम्मलित होती हैं।
खोज इंजन से संबंध
Apache Solr और Elasticsearch जैसे कुछ खोज इंजन (उर्फ सूचना पुनर्प्राप्ति) प्रणाली दस्तावेज़-उन्मुख डेटाबेस की परिभाषा में फिट होने के लिए दस्तावेज़ों पर पर्याप्त मुख्य संचालन प्रदान करते हैं।
संबंधपरक डेटाबेस से संबंध
संबंधपरक डेटाबेस में, डेटा को पहले कई पूर्वनिर्धारित प्रकारों में वर्गीकृत किया जाता है, और प्रत्येक प्रकार की अलग-अलग प्रविष्टियाँ, या रिकॉर्ड रखने के लिए तालिकाएँ बनाई जाती हैं। तालिकाएँ प्रत्येक रिकॉर्ड के क्षेत्र में डेटा को परिभाषित करती हैं, जिसका अर्थ है कि तालिका में प्रत्येक रिकॉर्ड का समग्र रूप समान है। व्यवस्थापक तालिकाओं के बीच संबंधों को भी परिभाषित करता है, और कुछ निश्चित क्षेत्रों का चयन करता है जो उनके अनुसार खोज के लिए सबसे अधिक उपयोग किए जाएंगे और उन पर अनुक्रमणिका को परिभाषित करता है। संबंधात्मक डिजाइन में महत्वपूर्ण अवधारणा यह है कि कोई भी डेटा जिसे दोहराया जा सकता है, सामान्य रूप से अपनी तालिका में रखा जाता है, और यदि ये उदाहरण -दूसरे से संबंधित हैं, तो उन्हें साथ समूहित करने के लिए कॉलम चुना जाता है, विदेशी कुंजी। इस रचना को डेटाबेस सामान्यीकरण के रूप में जाना जाता है।[3] उदाहरण के लिए, पता पुस्तिका एप्लिकेशन को सामान्यतः संपर्क नाम, वैकल्पिक छवि, या अधिक फ़ोन नंबर, या अधिक डाक पते, और या अधिक ईमेल पते संग्रहीत करने की आवश्यकता होगी। विहित संबंधपरक डेटाबेस में, डेटा के प्रत्येक बिट के लिए पूर्वनिर्धारित क्षेत्रों के साथ इन पंक्तियों में से प्रत्येक के लिए तालिकाएँ बनाई जाएंगी: CONTACT तालिका में FIRST_NAME, LAST_NAME और IMAGE कॉलम सम्मलित हो सकते हैं, जबकि PHONE_NUMBER तालिका में COUNTRY_CODE, AREA_CODE, PHONE_NUMBER और TYPE सम्मलित हो सकते हैं ( घर, काम, आदि)। PHONE_NUMBER तालिका में विदेशी कुंजी स्तंभ, CONTACT_ID भी सम्मलित है, जिसमें संपर्क बनाए जाने के समय निर्दिष्ट विशिष्ट आईडी संख्या होती है। मूल संपर्क को फिर से बनाने के लिए, डेटाबेस इंजन तालिकाओं के समूह में संबंधित वस्तुओं को देखने के लिए विदेशी कुंजियों का उपयोग करता है और मूल डेटा का पुनर्निर्माण करता है।
इसके विपरीत, दस्तावेज़-उन्मुख डेटाबेस में कोई आंतरिक संरचना नहीं हो सकती है जो सीधे किसी तालिका की अवधारणा पर मैप करती है, और क्षेत्र और रिश्ते सामान्यतः पूर्वनिर्धारित अवधारणाओं के रूप में मौजूद नहीं होते हैं। इसके बजाय, किसी वस्तु के सभी डेटा को दस्तावेज़ में रखा जाता है, और डेटाबेस में प्रविष्टि के रूप में संग्रहीत किया जाता है। पता पुस्तिका के उदाहरण में, दस्तावेज़ में संपर्क का नाम, छवि, और कोई भी संपर्क जानकारी, सभी ही रिकॉर्ड में सम्मलित होंगे। उस प्रविष्टि को उसकी कुंजी के माध्यम से ्सेस किया जाता है, जो डेटाबेस को एप्लिकेशन को दस्तावेज़ को पुनः प्राप्त करने और वापस करने की अनुमति देता है। संबंधित डेटा को पुनः प्राप्त करने के लिए किसी अतिरिक्त कार्य की आवश्यकता नहीं है; यह सब वस्तु में लौटाया जाता है।
दस्तावेज़-उन्मुख और संबंधपरक मॉडल के बीच महत्वपूर्ण अंतर यह है कि दस्तावेज़ के मामले में डेटा स्वरूप पूर्वनिर्धारित नहीं होते हैं। ज्यादातर मामलों में, किसी भी प्रकार के दस्तावेज़ को किसी भी डेटाबेस में संग्रहीत किया जा सकता है, और वे दस्तावेज़ किसी भी समय प्रकार और रूप में बदल सकते हैं। यदि कोई किसी संपर्क में COUNTRY_FLAG जोड़ना चाहता है, तो इस क्षेत्र को नए दस्तावेज़ों में डाला जा सकता है, क्योंकि इसका डेटाबेस या पहले से संग्रहीत मौजूदा दस्तावेज़ों पर कोई प्रभाव नहीं पड़ेगा। डेटाबेस से जानकारी की पुनर्प्राप्ति में सहायता के लिए, दस्तावेज़-उन्मुख प्रणाली सामान्यतः व्यवस्थापक को कुछ प्रकार की जानकारी देखने के लिए डेटाबेस को संकेत प्रदान करने की अनुमति देते हैं। ये संबंधपरक केस में इंडेक्स के समान काम करते हैं। अधिकांश दस्तावेज़ की सामग्री के बाहर अतिरिक्त मेटाडेटा जोड़ने की क्षमता भी प्रदान करते हैं, उदाहरण के लिए, पता पुस्तिका के हिस्से के रूप में प्रविष्टियों को टैग करना, जो प्रोग्रामर को सभी प्रकार की पता पुस्तिका प्रविष्टियों की तरह संबंधित प्रकार की जानकारी प्राप्त करने की अनुमति देता है। यह तालिका के समान कार्यक्षमता प्रदान करता है, किन्तु अवधारणा (डेटा की श्रेणियां) को इसके भौतिक कार्यान्वयन (तालिकाओं) से अलग करता है।
क्लासिक सामान्यीकृत संबंधपरक मॉडल में, डेटाबेस में वस्तुओं को डेटा की अलग-अलग पंक्तियों के रूप में दर्शाया जाता है, जो कि उन्हें प्राप्त होने के बाद दी गई संरचना से परे नहीं होती है। यह प्रोग्रामिंग ऑब्जेक्ट्स को उनके संबंधित डेटाबेस पंक्तियों में और से अनुवाद करने का प्रयास करते समय समस्याएँ पैदा करता है, समस्या जिसे वस्तु-संबंधपरक प्रतिबाधा बेमेल के रूप में जाना जाता है।[4] दस्तावेज़ अधिक बारीकी से भंडार करता है, या कुछ मामलों में सीधे भंडार में प्रोग्रामिंग ऑब्जेक्ट्स को मैप करता है। इनका विपणन अधिकांशतः नोएसक्यूएल शब्द का उपयोग करके किया जाता है।
कार्यान्वयन
Name | Publisher | License | Languages supported | Notes | RESTful API |
---|---|---|---|---|---|
Aerospike | Aerospike | AGPL and Proprietary | C, C#, Java, Scala, Python, Node.js, PHP, Go, Rust, Spring Framework | Aerospike is a flash-optimized and in-memory distributed key value नोएसक्यूएल database which also supports a document store model.[5] | Yes[6] |
AllegroGraph | Franz, Inc. | Proprietary | Java, Python, Common Lisp, Ruby, Scala, C#, Perl | The database platform supports document store and graph data models in a single database. Supports जेएसओएन, जेएसओएन-LD, RDF, full-text search, ACID, two-phase commit, Multi-Master Replication, Prolog and SPARQL. | Yes[7] |
ArangoDB | ArangoDB | Apache License | C, C#, Java, Python, Node.js, PHP, Scala, Go, Ruby, Elixir | The database system supports document store as well as key/value and graph data models with one database core and a unified query language AQL (ArangoDB Query Language). | Yes[8] |
ArcadeDB | Arcade Data Ltd | Apache License | Java | Multi-model database supporting document, graph, and key/value models, queried by a SQL dialect. | Yes[9] |
BaseX | BaseX Team | BSD License | Java, XQuery | Support for एक्सएमएल, जेएसओएन and binary formats; client-/server based architecture; concurrent structural and full-text searches and updates. | Yes |
Caché | InterSystems Corporation | Proprietary | Java, C#, Node.js | Commonly used in Health, Business and Government applications. | Yes |
Cloudant | Cloudant, Inc. | Proprietary | Erlang, Java, Scala, and C | Distributed database service based on BigCouch, the company's open source fork of the Apache-backed CouchDB project. Uses जेएसओएन model. | Yes |
Clusterpoint Database | Clusterpoint Ltd. | Proprietary with free download | JavaScript, SQL, PHP, C#, Java, Python, Node.js, C, C++, | Distributed document-oriented एक्सएमएल / जेएसओएन database platform with ACID-compliant transactions; high-availability data replication and sharding; built-in full-text search engine with relevance ranking; JS/SQL query language; GIS; Available as pay-per-use database as a service or as an on-premise free software download. | Yes |
Couchbase Server | Couchbase, Inc. | Apache License | C, C#, Java, Python, Node.js, PHP, SQL, Go, Spring Framework, LINQ | Distributed नोएसक्यूएल Document Database, जेएसओएन model and SQL based Query Language. | Yes[10] |
CouchDB | Apache Software Foundation | Apache License | Any language that can make HTTP requests | जेएसओएन over REST/HTTP with Multi-Version Concurrency Control and limited ACID properties. Uses map and reduce for views and queries.[11] | Yes[12] |
CrateIO | CRATE Technology GmbH | Apache License | Java | Use familiar SQL syntax for real time distributed queries across a cluster. Based on Lucene / Elasticsearch ecosystem with built-in support for binary objects (BLOBs). | Yes[13] |
Cosmos DB | Microsoft | Proprietary | C#, Java, Python, Node.js, JavaScript, SQL | Platform-as-a-Service offering, part of the Microsoft Azure platform. Builds upon and extends the earlier Azure DocumentDB. | Yes |
DocumentDB | Amazon Web Services | Proprietary online service | various, REST | fully managed MongoDB v3.6-compatible database service | Yes |
DynamoDB | Amazon Web Services | Proprietary | Java, JavaScript, Node.js, Go, C# .NET, Perl, PHP, Python, Ruby, Rust, Haskell, Erlang, Django, and Grails | fully managed proprietary नोएसक्यूएल database service that supports key–value and document data structures | Yes |
Elasticsearch | Shay Banon | Dual-licensed under Server Side Public License and Elastic license. | Java | जेएसओएन, Search engine. | Yes |
eXist | eXist | LGPL | XQuery, Java | एक्सएमएल over REST/HTTP, WebDAV, Lucene Fulltext search, binary data support, validation, versioning, clustering, triggers, URL rewriting, collections, ACLS, XQuery Update | Yes[14] |
Informix | IBM | Proprietary, with no-cost editions[15] | Various (Compatible with MongoDB API) | आरडीबीMS with जेएसओएन, replication, sharding and ACID compliance. | Yes |
Jackrabbit | Apache Foundation | Apache License | Java | Java Content Repository implementation | ? |
HCL Notes (HCL Domino) | HCL | Proprietary | LotusScript, Java, Notes Formula Language | MultiValue | Yes |
MarkLogic | MarkLogic Corporation | Free Developer license or Commercial[16] | Java, JavaScript, Node.js, XQuery, SPARQL, XSLT, C++ | Distributed document-oriented database for जेएसओएन, एक्सएमएल, and RDF triples. Built-in full-text search, ACID transactions, high availability and disaster recovery, certified security. | Yes |
MongoDB | MongoDB, Inc | Server Side Public License for the DBMS, Apache 2 License for the client drivers[17] | C, C++, C#, Java, Perl, PHP, Python, Go, Node.js, Ruby, Rust,[18] Scala[19] | Document database with replication and sharding, बीएसओएन store (binary format जेएसओएन). | Yes[20][21] |
MUMPS Database | ? | Proprietary and Affero GPL[22] | MUMPS | Commonly used in health applications. | ? |
ObjectDatabase++ | Ekky Software | Proprietary | C++, C#, TScript | Binary Native C++ class structures | ? |
OpenLink Virtuoso | OpenLink Software | GPLv2[1] and proprietary | C++, C#, Java, SPARQL | Middleware and database engine hybrid | Yes |
OrientDB | Orient Technologies | Apache License | Java | जेएसओएन over HTTP, SQL support, ACID transactions | Yes |
Oracle नोएसक्यूएल Database | Oracle Corp | Apache and proprietary | C, C#, Java, Python, node.js, Go | Shared nothing, horizontally scalable database with support for schema-less जेएसओएन, fixed schema tables, and key/value pairs. Also supports ACID transactions. | Yes |
Qizx | Qualcomm | Proprietary | REST, Java, XQuery, XSLT, C, C++, Python | Distributed document-oriented एक्सएमएल database with integrated full-text search; support for जेएसओएन, text, and binaries. | Yes |
Redisजेएसओएन | Redis | Redis Source Available License (RSAL) | Python | जेएसओएन with integrated full-text search.[23] | Yes |
RethinkDB | ? | Apache License[24] | C++, Python, JavaScript, Ruby, Java | Distributed document-oriented जेएसओएन database with replication and sharding. | No |
SAP HANA | SAP | Proprietary | SQL-like language | ACID transaction supported, जेएसओएन only | Yes |
Sedna | sedna.org | Apache License | C++, XQuery | एक्सएमएल database | No |
SimpleDB | Amazon Web Services | Proprietary online service | Erlang | ? | |
Apache Solr | Apache Software Foundation | Apache License[25] | Java | जेएसओएन, CSV, एक्सएमएल, and a few other formats.[26] Search engine. | Yes[27] |
TerminusDB | TerminusDB | Apache License | Python, Node.js, JavaScript | The database system supports document store as well as graph data models with one database core and a unified, datalog based query language WOQL (Web Object Query Language).[28] | Yes |
TokuMX | Tokutek | GNU Affero General Public License | C++, C#, Go | MongoDB with Fractal Tree indexing | ? |
्सएमएल डेटाबेस कार्यान्वयन
अधिकांश एक्सएमएल डेटाबेस दस्तावेज़-उन्मुख डेटाबेस हैं।
यह भी देखें
- डेटाबेस सिद्धांत
- डेटा पदानुक्रम
- डेटा विश्लेषण
- पूरा पाठ खोजें
- इन-मेमोरी डेटाबेस
- इंटरनेट संदेश ्सेस प्रोटोकॉल (IMAP)
- मशीन-पठनीय दस्तावेज़
- बहु-मॉडल डेटाबेस
- नोएसक्यूएल
- वस्तु डेटाबेस
- ऑनलाइन डेटाबेस
- रीयल-टाइम डेटाबेस
- संबंध का डेटाबेस
- सामग्री प्रबंधन प्रणाली
टिप्पणियाँ
संदर्भ
- ↑ Drake, Mark (9 August 2019). "NoSQL डेटाबेस मैनेजमेंट सिस्टम और मॉडल की तुलना". DigitalOcean. Archived from the original on 13 August 2019. Retrieved 23 August 2019.
Document-oriented databases, or document stores, are NoSQL databases that store data in the form of documents. Document stores are a type of key-value store: each document has a unique identifier — its key — and the document itself serves as the value.
- ↑ "DB-Engines Ranking per database model category".
- ↑ "डेटाबेस सामान्यीकरण मूल बातें का विवरण". Microsoft.
- ↑ Wambler, Scott. "वस्तु-संबंधपरक प्रतिबाधा बेमेल". Agile Data.
- ↑ "Documentation | Aerospike - Key-Value Store". docs.aerospike.com. Retrieved 3 May 2021.
- ↑ "Documentation | Aerospike". docs.aerospike.com. Retrieved 3 May 2021.
- ↑ "HTTP Protocol for AllegroGraph".
- ↑ "Multi-model highly available NoSQL database". ArangoDB.
- ↑ "HTTP API". ArcadeDB.
- ↑ Documentation Archived 2012-08-20 at the Wayback Machine. Couchbase. Retrieved on 2013-09-18.
- ↑ "Apache CouchDB". Apache Couchdb. Archived from the original on October 20, 2011.
- ↑ "HTTP_Document_API - Couchdb Wiki". Archived from the original on 2013-03-01. Retrieved 2011-10-14.
- ↑ "Crate SQL HTTP Endpoint (Archived copy)". Archived from the original on 2015-06-22. Retrieved 2015-06-22.
- ↑ eXist-db Open Source Native XML Database. Exist-db.org. Retrieved on 2013-09-18.
- ↑ "Compare the Informix Version 12 editions". 22 July 2016.
- ↑ "MarkLogic Licensing". Archived from the original on 2012-01-12. Retrieved 2011-12-28.
- ↑ "MongoDB Licensing".
- ↑ "The New MongoDB Rust Driver". MongoDB (in English). Retrieved 2018-02-01.
- ↑ "Community Supported Drivers Reference".
- ↑ "HTTP Interface — MongoDB Ecosystem". MongoDB Docs.
- ↑ "GitHub - mongodb/docs-ecosystem: MongoDB Ecosystem Documentation". June 27, 2019 – via GitHub.
- ↑ "GT.M High end TP database engine".
- ↑ "RedisJSON - a JSON data type for Redis".
- ↑ "Transferring copyright to The Linux Foundation, relicensing RethinkDB under ASLv2". github.com. Retrieved 27 January 2020.
- ↑ "solr/LICENSE.txt at main · apache/solr · GitHub". github.com. Retrieved 24 December 2022.
- ↑ "Response Writers :: Apache Solr Reference Guide". solr.apache.org. Retrieved 24 December 2022.
- ↑ "Managed Resources :: Apache Solr Reference Guide". solr.apache.org. Retrieved 24 December 2022.
- ↑ "TerminusX - Why TerminusX". terminusdb.com. Retrieved 2021-12-16.
अग्रिम पठन
- Assaf Arkin. (2007, September 20). Read Consistency: Dumb Databases, Smart Services.
बाहरी संबंध
- DB-Engines Ranking of Document Stores by popularity, updated monthly