दस्तावेज़-उन्मुख डेटाबेस: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
दस्तावेज़-उन्मुख डेटाबेस, या दस्तावेज़ स्टोर, | दस्तावेज़-उन्मुख डेटाबेस, या दस्तावेज़ स्टोर, [[कंप्यूटर प्रोग्राम]] और डेटा स्टोरेज सिस्टम है जिसे दस्तावेज़-उन्मुख जानकारी को संग्रहीत करने, पुनर्प्राप्त करने और प्रबंधित करने के लिए डिज़ाइन किया गया है, जिसे [[अर्ध-संरचित मॉडल]] | अर्ध-संरचित डेटा के रूप में भी जाना जाता है।<ref name = "Drake, DigitalOcean, 2019" >{{ Cite web | url = https://www.digitalocean.com/community/tutorials/a-comparison-of-nosql-database-management-systems-and-models | title = NoSQL डेटाबेस मैनेजमेंट सिस्टम और मॉडल की तुलना| access-date = 23 August 2019 | first = Mark | last = Drake | date = 9 August 2019 | website = [[DigitalOcean]] | quote = 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. | archive-url = https://web.archive.org/web/20190813163612/https://www.digitalocean.com/community/tutorials/a-comparison-of-nosql-database-management-systems-and-models | archive-date = 2019-08-13 | df = dmy-all }}</ref> | ||
दस्तावेज़-उन्मुख डेटाबेस [[NoSQL]] डेटाबेस की मुख्य श्रेणियों में से | दस्तावेज़-उन्मुख डेटाबेस [[NoSQL]] डेटाबेस की मुख्य श्रेणियों में से हैं, और दस्तावेज़-उन्मुख डेटाबेस शब्द की लोकप्रियता बढ़ी है<ref>{{cite web|url=http://db-engines.com/en/ranking_categories|title=DB-Engines Ranking per database model category}}</ref> NoSQL शब्द के उपयोग के साथ ही। [[XML]] डेटाबेस दस्तावेज़-उन्मुख डेटाबेस का उपवर्ग है जो XML दस्तावेज़ों के साथ काम करने के लिए अनुकूलित है। [[ग्राफ डेटाबेस]] समान हैं, लेकिन और परत जोड़ते हैं, संबंध, जो उन्हें तेजी से ट्रैवर्सल के लिए दस्तावेज़ों को लिंक करने की अनुमति देता है। | ||
दस्तावेज़-उन्मुख डेटाबेस स्वाभाविक रूप से [[की-वैल्यू डेटाबेस]] | की-वैल्यू स्टोर, | दस्तावेज़-उन्मुख डेटाबेस स्वाभाविक रूप से [[की-वैल्यू डेटाबेस]] | की-वैल्यू स्टोर, अन्य NoSQL डेटाबेस अवधारणा का उपवर्ग है। के अंतर{{contradict inline|reason=If there is a difference between document-oriented databases and key-value stores, then document-oriented databases are not a subclass of the key-value store. If document-oriented databases truly are a subclass of the key-value store, the phrase "the difference" should be rephrased, for example as "the difference between document-oriented databases and other types of key-value stores".|date=December 2022}} डेटा संसाधित करने के तरीके में निहित है; की-वैल्यू स्टोर में, डेटा को डेटाबेस के लिए स्वाभाविक रूप से अपारदर्शी माना जाता है, जबकि दस्तावेज़-उन्मुख प्रणाली [[मेटा डेटा]] निकालने के लिए दस्तावेज़ में आंतरिक संरचना पर निर्भर करती है जिसे डेटाबेस इंजन आगे अनुकूलन के लिए उपयोग करता है। हालांकि सिस्टम में उपकरणों के कारण अंतर अक्सर नगण्य होता है,{{efn|To the point that document-oriented and key-value systems can often be interchanged in operation.}} वैचारिक रूप से दस्तावेज़-स्टोर को आधुनिक प्रोग्रामिंग तकनीकों के साथ समृद्ध अनुभव प्रदान करने के लिए डिज़ाइन किया गया है। | ||
दस्तावेज़ डेटाबेस{{efn|And key-value stores in general.}} पारंपरिक [[ संबंध का डेटाबेस ]] (RDB) के साथ दृढ़ता से विपरीत। संबंधपरक डेटाबेस आमतौर पर प्रोग्रामर द्वारा परिभाषित अलग-अलग तालिकाओं में डेटा संग्रहीत करते हैं, और | दस्तावेज़ डेटाबेस{{efn|And key-value stores in general.}} पारंपरिक [[ संबंध का डेटाबेस |संबंध का डेटाबेस]] (RDB) के साथ दृढ़ता से विपरीत। संबंधपरक डेटाबेस आमतौर पर प्रोग्रामर द्वारा परिभाषित अलग-अलग तालिकाओं में डेटा संग्रहीत करते हैं, और वस्तु कई तालिकाओं में फैली हो सकती है। दस्तावेज़ डेटाबेस किसी दिए गए ऑब्जेक्ट के लिए सभी सूचनाओं को डेटाबेस में उदाहरण में संग्रहीत करता है, और प्रत्येक संग्रहीत वस्तु दूसरे से भिन्न हो सकती है। यह डेटाबेस में डेटा लोड करते समय [[ऑब्जेक्ट-रिलेशनल मैपिंग]] की आवश्यकता को समाप्त करता है। | ||
== दस्तावेज़ == | == दस्तावेज़ == | ||
दस्तावेज़-उन्मुख डेटाबेस की केंद्रीय अवधारणा दस्तावेज़ की धारणा है। जबकि प्रत्येक दस्तावेज़-उन्मुख डेटाबेस कार्यान्वयन इस परिभाषा के विवरण पर भिन्न होता है, सामान्य तौर पर, वे सभी दस्तावेजों को कुछ मानक प्रारूप या एन्कोडिंग में डेटा (या सूचना) को एनकैप्सुलेट और एन्कोड करते हैं। उपयोग में आने वाले एन्कोडिंग में XML, [[YAML]], [[JSON]], साथ ही [[BSON]] जैसे बाइनरी फॉर्म शामिल हैं। | दस्तावेज़-उन्मुख डेटाबेस की केंद्रीय अवधारणा दस्तावेज़ की धारणा है। जबकि प्रत्येक दस्तावेज़-उन्मुख डेटाबेस कार्यान्वयन इस परिभाषा के विवरण पर भिन्न होता है, सामान्य तौर पर, वे सभी दस्तावेजों को कुछ मानक प्रारूप या एन्कोडिंग में डेटा (या सूचना) को एनकैप्सुलेट और एन्कोड करते हैं। उपयोग में आने वाले एन्कोडिंग में XML, [[YAML]], [[JSON]], साथ ही [[BSON]] जैसे बाइनरी फॉर्म शामिल हैं। | ||
दस्तावेज़ स्टोर में दस्तावेज़ मोटे तौर पर किसी वस्तु की प्रोग्रामिंग अवधारणा के बराबर होते हैं। उन्हें | दस्तावेज़ स्टोर में दस्तावेज़ मोटे तौर पर किसी वस्तु की प्रोग्रामिंग अवधारणा के बराबर होते हैं। उन्हें मानक स्कीमा का पालन करने की आवश्यकता नहीं है, न ही उनके पास सभी समान खंड, स्लॉट, भाग या कुंजियाँ होंगी। आम तौर पर, वस्तुओं का उपयोग करने वाले प्रोग्राम में कई अलग-अलग प्रकार की वस्तुएं होती हैं, और उन वस्तुओं में अक्सर कई वैकल्पिक क्षेत्र होते हैं। प्रत्येक वस्तु, यहां तक कि ही वर्ग की भी, बहुत अलग दिख सकती है। दस्तावेज़ भंडार समान हैं कि वे ही स्टोर में विभिन्न प्रकार के दस्तावेज़ों को अनुमति देते हैं, उनके भीतर फ़ील्ड वैकल्पिक होने की अनुमति देते हैं, और अक्सर उन्हें विभिन्न एन्कोडिंग सिस्टम का उपयोग करके एन्कोड करने की अनुमति देते हैं। उदाहरण के लिए, निम्नलिखित JSON में एन्कोडेड दस्तावेज़ है: | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
Line 18: | Line 18: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
्सएमएल में | ्सएमएल में दूसरा दस्तावेज़ एन्कोड किया जा सकता है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<contact> | <contact> | ||
Line 35: | Line 35: | ||
</contact> | </contact> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ये दो दस्तावेज़ कुछ संरचनात्मक तत्वों को | ये दो दस्तावेज़ कुछ संरचनात्मक तत्वों को दूसरे के साथ साझा करते हैं, लेकिन प्रत्येक में अद्वितीय तत्व भी होते हैं। दस्तावेज़ के अंदर संरचना और पाठ और अन्य डेटा को आमतौर पर दस्तावेज़ की सामग्री के रूप में संदर्भित किया जाता है और पुनर्प्राप्ति या संपादन विधियों के माध्यम से संदर्भित किया जा सकता है, (नीचे देखें)। रिलेशनल डेटाबेस के विपरीत जहां प्रत्येक रिकॉर्ड में समान फ़ील्ड होते हैं, अप्रयुक्त फ़ील्ड को खाली छोड़ देते हैं; उपरोक्त उदाहरण में किसी भी दस्तावेज़ (रिकॉर्ड) में कोई खाली 'फ़ील्ड' नहीं है। यह दृष्टिकोण बिना किसी आवश्यकता के कुछ रिकॉर्ड में नई जानकारी को जोड़ने की अनुमति देता है कि डेटाबेस में हर दूसरा रिकॉर्ड समान संरचना साझा करता है। | ||
दस्तावेज़ डेटाबेस आमतौर पर अतिरिक्त मेटाडेटा को दस्तावेज़ सामग्री के साथ संबद्ध और संग्रहीत करने के लिए प्रदान करते हैं। वह मेटाडेटा सुविधाओं से संबंधित हो सकता है जो डेटास्टोर दस्तावेज़ों को व्यवस्थित करने, सुरक्षा प्रदान करने, या अन्य कार्यान्वयन विशिष्ट सुविधाओं के लिए प्रदान करता है। | दस्तावेज़ डेटाबेस आमतौर पर अतिरिक्त मेटाडेटा को दस्तावेज़ सामग्री के साथ संबद्ध और संग्रहीत करने के लिए प्रदान करते हैं। वह मेटाडेटा सुविधाओं से संबंधित हो सकता है जो डेटास्टोर दस्तावेज़ों को व्यवस्थित करने, सुरक्षा प्रदान करने, या अन्य कार्यान्वयन विशिष्ट सुविधाओं के लिए प्रदान करता है। | ||
Line 48: | Line 48: | ||
=== कुंजी === | === कुंजी === | ||
दस्तावेज़ों को डेटाबेस में | दस्तावेज़ों को डेटाबेस में अद्वितीय कुंजी के माध्यम से संबोधित किया जाता है जो उस दस्तावेज़ का प्रतिनिधित्व करता है। यह कुंजी साधारण [[पहचानकर्ता]] (या आईडी), आमतौर पर [[स्ट्रिंग (कंप्यूटर विज्ञान)]], यूआरआई या [[पथ (कंप्यूटिंग)]] है। डेटाबेस से दस्तावेज़ को पुनः प्राप्त करने के लिए कुंजी का उपयोग किया जा सकता है। आमतौर पर डेटाबेस दस्तावेज़ पुनर्प्राप्ति को गति देने के लिए कुंजी पर [[ डाटाबेस इंडेक्स |डाटाबेस इंडेक्स]] रखता है, और कुछ मामलों में डेटाबेस में दस्तावेज़ बनाने या सम्मिलित करने के लिए कुंजी की आवश्यकता होती है। | ||
=== पुनर्प्राप्ति === | === पुनर्प्राप्ति === | ||
दस्तावेज़-उन्मुख डेटाबेस की | दस्तावेज़-उन्मुख डेटाबेस की अन्य परिभाषित विशेषता यह है कि दस्तावेज़ को पुनः प्राप्त करने के लिए उपयोग की जा सकने वाली सरल कुंजी-से-दस्तावेज़ लुकअप से परे, डेटाबेस एपीआई या क्वेरी भाषा प्रदान करता है जो उपयोगकर्ता को सामग्री के आधार पर दस्तावेज़ों को पुनः प्राप्त करने की अनुमति देता है (या मेटाडेटा)। उदाहरण के लिए, आप ऐसी क्वेरी चाहते हैं जो निश्चित फ़ील्ड के साथ निश्चित मान पर सेट किए गए सभी दस्तावेज़ों को पुनः प्राप्त करे। क्वेरी एपीआई या क्वेरी भाषा सुविधाओं का सेट उपलब्ध है, साथ ही क्वेरीज़ का अपेक्षित प्रदर्शन, कार्यान्वयन से दूसरे कार्यान्वयन में महत्वपूर्ण रूप से भिन्न होता है। इसी तरह, उपलब्ध इंडेक्सिंग विकल्पों और कॉन्फ़िगरेशन के विशिष्ट सेट कार्यान्वयन से बहुत भिन्न होते हैं। | ||
यह यहाँ है कि दस्तावेज़ स्टोर की-वैल्यू स्टोर से सबसे अधिक भिन्न होता है। सिद्धांत रूप में, की-वैल्यू स्टोर में मान स्टोर के लिए अपारदर्शी होते हैं, वे अनिवार्य रूप से ब्लैक बॉक्स होते हैं। वे | यह यहाँ है कि दस्तावेज़ स्टोर की-वैल्यू स्टोर से सबसे अधिक भिन्न होता है। सिद्धांत रूप में, की-वैल्यू स्टोर में मान स्टोर के लिए अपारदर्शी होते हैं, वे अनिवार्य रूप से ब्लैक बॉक्स होते हैं। वे दस्तावेज़ स्टोर के समान खोज प्रणाली की पेशकश कर सकते हैं, लेकिन सामग्री के संगठन के बारे में कम समझ हो सकती है। दस्तावेज़ स्टोर सामग्री को वर्गीकृत करने के लिए दस्तावेज़ में मेटाडेटा का उपयोग करते हैं, उदाहरण के लिए, उन्हें यह समझने की अनुमति देता है कि अंकों की श्रृंखला फ़ोन नंबर है, और दूसरा डाक कोड है। यह उन्हें उन प्रकार के डेटा पर खोज करने की अनुमति देता है, उदाहरण के लिए, 555 वाले सभी फ़ोन नंबर, जो ज़िप कोड 55555 को अनदेखा कर देंगे। | ||
=== संपादन === | === संपादन === | ||
Line 61: | Line 61: | ||
दस्तावेज़ डेटाबेस कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने के विभिन्न तरीकों की पेशकश करता है, जिसमें की धारणाएँ भी शामिल हैं | दस्तावेज़ डेटाबेस कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने के विभिन्न तरीकों की पेशकश करता है, जिसमें की धारणाएँ भी शामिल हैं | ||
* संग्रह: दस्तावेजों के समूह, जहां कार्यान्वयन के आधार पर, | * संग्रह: दस्तावेजों के समूह, जहां कार्यान्वयन के आधार पर, संग्रह के अंदर रहने के लिए दस्तावेज़ को लागू किया जा सकता है, या कई संग्रहों में रहने की अनुमति दी जा सकती है | ||
* टैग और अदृश्य मेटाडेटा: दस्तावेज़ सामग्री के बाहर अतिरिक्त डेटा | * टैग और अदृश्य मेटाडेटा: दस्तावेज़ सामग्री के बाहर अतिरिक्त डेटा | ||
* निर्देशिका पदानुक्रम: पेड़ जैसी संरचना में व्यवस्थित दस्तावेजों के समूह, आमतौर पर पथ या यूआरआई पर आधारित होते हैं | * निर्देशिका पदानुक्रम: पेड़ जैसी संरचना में व्यवस्थित दस्तावेजों के समूह, आमतौर पर पथ या यूआरआई पर आधारित होते हैं | ||
Line 71: | Line 71: | ||
=== की-वैल्यू स्टोर्स से संबंध === | === की-वैल्यू स्टोर्स से संबंध === | ||
दस्तावेज़-उन्मुख डेटाबेस | दस्तावेज़-उन्मुख डेटाबेस विशेष की-वैल्यू डेटाबेस|की-वैल्यू स्टोर है, जो स्वयं अन्य NoSQL डेटाबेस श्रेणी है। साधारण की-वैल्यू स्टोर में, दस्तावेज़ की सामग्री अपारदर्शी होती है। दस्तावेज़-उन्मुख डेटाबेस एपीआई या क्वेरी/अपडेट भाषा प्रदान करता है जो दस्तावेज़ में आंतरिक संरचना के आधार पर क्वेरी या अपडेट करने की क्षमता को उजागर करता है। यह अंतर उन उपयोगकर्ताओं के लिए मामूली हो सकता है जिन्हें समृद्ध क्वेरी, पुनर्प्राप्ति या संपादन API की आवश्यकता नहीं होती है जो आमतौर पर दस्तावेज़ डेटाबेस द्वारा प्रदान किए जाते हैं। आधुनिक की-वैल्यू स्टोर में अक्सर मेटाडेटा के साथ काम करने, दस्तावेज़ स्टोर के बीच की रेखाओं को धुंधला करने की सुविधाएँ शामिल होती हैं। | ||
=== खोज इंजन से संबंध === | === खोज इंजन से संबंध === | ||
Line 80: | Line 80: | ||
{{cleanup|section|reason="Requires cleanup"|date=July 2016}} | {{cleanup|section|reason="Requires cleanup"|date=July 2016}} | ||
संबंधपरक डेटाबेस में, डेटा को पहले कई पूर्वनिर्धारित प्रकारों में वर्गीकृत किया जाता है, और प्रत्येक प्रकार की अलग-अलग प्रविष्टियाँ, या रिकॉर्ड रखने के लिए तालिकाएँ बनाई जाती हैं। तालिकाएँ प्रत्येक रिकॉर्ड के क्षेत्र में डेटा को परिभाषित करती हैं, जिसका अर्थ है कि तालिका में प्रत्येक रिकॉर्ड का समग्र रूप समान है। व्यवस्थापक तालिकाओं के बीच संबंधों को भी परिभाषित करता है, और कुछ निश्चित क्षेत्रों का चयन करता है जो उनके अनुसार खोज के लिए सबसे अधिक उपयोग किए जाएंगे और उन पर अनुक्रमणिका को परिभाषित करता है। संबंधात्मक डिजाइन में | संबंधपरक डेटाबेस में, डेटा को पहले कई पूर्वनिर्धारित प्रकारों में वर्गीकृत किया जाता है, और प्रत्येक प्रकार की अलग-अलग प्रविष्टियाँ, या रिकॉर्ड रखने के लिए तालिकाएँ बनाई जाती हैं। तालिकाएँ प्रत्येक रिकॉर्ड के क्षेत्र में डेटा को परिभाषित करती हैं, जिसका अर्थ है कि तालिका में प्रत्येक रिकॉर्ड का समग्र रूप समान है। व्यवस्थापक तालिकाओं के बीच संबंधों को भी परिभाषित करता है, और कुछ निश्चित क्षेत्रों का चयन करता है जो उनके अनुसार खोज के लिए सबसे अधिक उपयोग किए जाएंगे और उन पर अनुक्रमणिका को परिभाषित करता है। संबंधात्मक डिजाइन में महत्वपूर्ण अवधारणा यह है कि कोई भी डेटा जिसे दोहराया जा सकता है, सामान्य रूप से अपनी तालिका में रखा जाता है, और यदि ये उदाहरण -दूसरे से संबंधित हैं, तो उन्हें साथ समूहित करने के लिए कॉलम चुना जाता है, विदेशी कुंजी। इस डिज़ाइन को [[डेटाबेस सामान्यीकरण]] के रूप में जाना जाता है।<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 जोड़ना चाहता है, तो इस फ़ील्ड को नए दस्तावेज़ों में डाला जा सकता है, क्योंकि इसका डेटाबेस या पहले से संग्रहीत मौजूदा दस्तावेज़ों पर कोई प्रभाव नहीं पड़ेगा। डेटाबेस से जानकारी की पुनर्प्राप्ति में सहायता के लिए, दस्तावेज़-उन्मुख सिस्टम आम तौर पर व्यवस्थापक को कुछ प्रकार की जानकारी देखने के लिए डेटाबेस को संकेत प्रदान करने की अनुमति देते हैं। ये रिलेशनल केस में इंडेक्स के समान काम करते हैं। अधिकांश दस्तावेज़ की सामग्री के बाहर अतिरिक्त मेटाडेटा जोड़ने की क्षमता भी प्रदान करते हैं, उदाहरण के लिए, पता पुस्तिका के हिस्से के रूप में प्रविष्टियों को टैग करना, जो प्रोग्रामर को सभी प्रकार की पता पुस्तिका प्रविष्टियों की तरह संबंधित प्रकार की जानकारी प्राप्त करने की अनुमति देता है। यह तालिका के समान कार्यक्षमता प्रदान करता है, लेकिन अवधारणा (डेटा की श्रेणियां) को इसके भौतिक कार्यान्वयन (तालिकाओं) से अलग करता है। | ||
क्लासिक सामान्यीकृत रिलेशनल मॉडल में, डेटाबेस में वस्तुओं को डेटा की अलग-अलग पंक्तियों के रूप में दर्शाया जाता है, जो कि उन्हें प्राप्त होने के बाद दी गई संरचना से परे नहीं होती है। यह प्रोग्रामिंग ऑब्जेक्ट्स को उनके संबंधित डेटाबेस पंक्तियों में और से अनुवाद करने का प्रयास करते समय समस्याएँ पैदा करता है, | क्लासिक सामान्यीकृत रिलेशनल मॉडल में, डेटाबेस में वस्तुओं को डेटा की अलग-अलग पंक्तियों के रूप में दर्शाया जाता है, जो कि उन्हें प्राप्त होने के बाद दी गई संरचना से परे नहीं होती है। यह प्रोग्रामिंग ऑब्जेक्ट्स को उनके संबंधित डेटाबेस पंक्तियों में और से अनुवाद करने का प्रयास करते समय समस्याएँ पैदा करता है, समस्या जिसे [[ वस्तु-संबंधपरक प्रतिबाधा बेमेल |वस्तु-संबंधपरक प्रतिबाधा बेमेल]] के रूप में जाना जाता है।<ref>{{cite web |url=http://www.agiledata.org/essays/impedanceMismatch.html |title=वस्तु-संबंधपरक प्रतिबाधा बेमेल|first=Scott |last=Wambler |website=Agile Data}}</ref> दस्तावेज़ अधिक बारीकी से स्टोर करता है, या कुछ मामलों में सीधे स्टोर में प्रोग्रामिंग ऑब्जेक्ट्स को मैप करता है। इनका विपणन अक्सर NoSQL शब्द का उपयोग करके किया जाता है। | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
Line 148: | Line 148: | ||
| {{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. | | 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 JSON model. | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 281: | Line 281: | ||
|[[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 JSON, fixed schema tables, and key/value pairs. | |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 JSON, fixed schema tables, and key/value pairs. Also supports ACID transactions. | ||
|Yes | |Yes | ||
|- | |- | ||
Line 359: | Line 359: | ||
* [[पूरा पाठ खोजें]] | * [[पूरा पाठ खोजें]] | ||
* [[इन-मेमोरी डेटाबेस]] | * [[इन-मेमोरी डेटाबेस]] | ||
* [[इंटरनेट संदेश एक्सेस प्रोटोकॉल|इंटरनेट संदेश | * [[इंटरनेट संदेश एक्सेस प्रोटोकॉल|इंटरनेट संदेश ्सेस प्रोटोकॉल]] (IMAP) | ||
* [[मशीन-पठनीय दस्तावेज़]] | * [[मशीन-पठनीय दस्तावेज़]] | ||
* [[बहु-मॉडल डेटाबेस]] | * [[बहु-मॉडल डेटाबेस]] |
Revision as of 11:53, 1 March 2023
दस्तावेज़-उन्मुख डेटाबेस, या दस्तावेज़ स्टोर, कंप्यूटर प्रोग्राम और डेटा स्टोरेज सिस्टम है जिसे दस्तावेज़-उन्मुख जानकारी को संग्रहीत करने, पुनर्प्राप्त करने और प्रबंधित करने के लिए डिज़ाइन किया गया है, जिसे अर्ध-संरचित मॉडल | अर्ध-संरचित डेटा के रूप में भी जाना जाता है।[1] दस्तावेज़-उन्मुख डेटाबेस NoSQL डेटाबेस की मुख्य श्रेणियों में से हैं, और दस्तावेज़-उन्मुख डेटाबेस शब्द की लोकप्रियता बढ़ी है[2] NoSQL शब्द के उपयोग के साथ ही। XML डेटाबेस दस्तावेज़-उन्मुख डेटाबेस का उपवर्ग है जो XML दस्तावेज़ों के साथ काम करने के लिए अनुकूलित है। ग्राफ डेटाबेस समान हैं, लेकिन और परत जोड़ते हैं, संबंध, जो उन्हें तेजी से ट्रैवर्सल के लिए दस्तावेज़ों को लिंक करने की अनुमति देता है।
दस्तावेज़-उन्मुख डेटाबेस स्वाभाविक रूप से की-वैल्यू डेटाबेस | की-वैल्यू स्टोर, अन्य NoSQL डेटाबेस अवधारणा का उपवर्ग है। के अंतरTemplate:Contradict inline डेटा संसाधित करने के तरीके में निहित है; की-वैल्यू स्टोर में, डेटा को डेटाबेस के लिए स्वाभाविक रूप से अपारदर्शी माना जाता है, जबकि दस्तावेज़-उन्मुख प्रणाली मेटा डेटा निकालने के लिए दस्तावेज़ में आंतरिक संरचना पर निर्भर करती है जिसे डेटाबेस इंजन आगे अनुकूलन के लिए उपयोग करता है। हालांकि सिस्टम में उपकरणों के कारण अंतर अक्सर नगण्य होता है,[lower-alpha 1] वैचारिक रूप से दस्तावेज़-स्टोर को आधुनिक प्रोग्रामिंग तकनीकों के साथ समृद्ध अनुभव प्रदान करने के लिए डिज़ाइन किया गया है।
दस्तावेज़ डेटाबेस[lower-alpha 2] पारंपरिक संबंध का डेटाबेस (RDB) के साथ दृढ़ता से विपरीत। संबंधपरक डेटाबेस आमतौर पर प्रोग्रामर द्वारा परिभाषित अलग-अलग तालिकाओं में डेटा संग्रहीत करते हैं, और वस्तु कई तालिकाओं में फैली हो सकती है। दस्तावेज़ डेटाबेस किसी दिए गए ऑब्जेक्ट के लिए सभी सूचनाओं को डेटाबेस में उदाहरण में संग्रहीत करता है, और प्रत्येक संग्रहीत वस्तु दूसरे से भिन्न हो सकती है। यह डेटाबेस में डेटा लोड करते समय ऑब्जेक्ट-रिलेशनल मैपिंग की आवश्यकता को समाप्त करता है।
दस्तावेज़
दस्तावेज़-उन्मुख डेटाबेस की केंद्रीय अवधारणा दस्तावेज़ की धारणा है। जबकि प्रत्येक दस्तावेज़-उन्मुख डेटाबेस कार्यान्वयन इस परिभाषा के विवरण पर भिन्न होता है, सामान्य तौर पर, वे सभी दस्तावेजों को कुछ मानक प्रारूप या एन्कोडिंग में डेटा (या सूचना) को एनकैप्सुलेट और एन्कोड करते हैं। उपयोग में आने वाले एन्कोडिंग में XML, YAML, JSON, साथ ही BSON जैसे बाइनरी फॉर्म शामिल हैं।
दस्तावेज़ स्टोर में दस्तावेज़ मोटे तौर पर किसी वस्तु की प्रोग्रामिंग अवधारणा के बराबर होते हैं। उन्हें मानक स्कीमा का पालन करने की आवश्यकता नहीं है, न ही उनके पास सभी समान खंड, स्लॉट, भाग या कुंजियाँ होंगी। आम तौर पर, वस्तुओं का उपयोग करने वाले प्रोग्राम में कई अलग-अलग प्रकार की वस्तुएं होती हैं, और उन वस्तुओं में अक्सर कई वैकल्पिक क्षेत्र होते हैं। प्रत्येक वस्तु, यहां तक कि ही वर्ग की भी, बहुत अलग दिख सकती है। दस्तावेज़ भंडार समान हैं कि वे ही स्टोर में विभिन्न प्रकार के दस्तावेज़ों को अनुमति देते हैं, उनके भीतर फ़ील्ड वैकल्पिक होने की अनुमति देते हैं, और अक्सर उन्हें विभिन्न एन्कोडिंग सिस्टम का उपयोग करके एन्कोड करने की अनुमति देते हैं। उदाहरण के लिए, निम्नलिखित JSON में एन्कोडेड दस्तावेज़ है:
{
"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 को अनदेखा कर देंगे।
संपादन
दस्तावेज़ डेटाबेस आमतौर पर दस्तावेज़ की सामग्री (या मेटाडेटा) को अद्यतन या संपादित करने के लिए कुछ तंत्र प्रदान करते हैं, या तो पूरे दस्तावेज़ के प्रतिस्थापन की अनुमति देकर, या दस्तावेज़ के अलग-अलग संरचनात्मक टुकड़े।
संगठन
दस्तावेज़ डेटाबेस कार्यान्वयन दस्तावेज़ों को व्यवस्थित करने के विभिन्न तरीकों की पेशकश करता है, जिसमें की धारणाएँ भी शामिल हैं
- संग्रह: दस्तावेजों के समूह, जहां कार्यान्वयन के आधार पर, संग्रह के अंदर रहने के लिए दस्तावेज़ को लागू किया जा सकता है, या कई संग्रहों में रहने की अनुमति दी जा सकती है
- टैग और अदृश्य मेटाडेटा: दस्तावेज़ सामग्री के बाहर अतिरिक्त डेटा
- निर्देशिका पदानुक्रम: पेड़ जैसी संरचना में व्यवस्थित दस्तावेजों के समूह, आमतौर पर पथ या यूआरआई पर आधारित होते हैं
कभी-कभी ये संगठनात्मक विचार इस बात में भिन्न होते हैं कि वे कितने तार्किक बनाम भौतिक हैं, (जैसे डिस्क पर या मेमोरी में), अभ्यावेदन।
अन्य डेटाबेस से संबंध
की-वैल्यू स्टोर्स से संबंध
दस्तावेज़-उन्मुख डेटाबेस विशेष की-वैल्यू डेटाबेस|की-वैल्यू स्टोर है, जो स्वयं अन्य NoSQL डेटाबेस श्रेणी है। साधारण की-वैल्यू स्टोर में, दस्तावेज़ की सामग्री अपारदर्शी होती है। दस्तावेज़-उन्मुख डेटाबेस एपीआई या क्वेरी/अपडेट भाषा प्रदान करता है जो दस्तावेज़ में आंतरिक संरचना के आधार पर क्वेरी या अपडेट करने की क्षमता को उजागर करता है। यह अंतर उन उपयोगकर्ताओं के लिए मामूली हो सकता है जिन्हें समृद्ध क्वेरी, पुनर्प्राप्ति या संपादन API की आवश्यकता नहीं होती है जो आमतौर पर दस्तावेज़ डेटाबेस द्वारा प्रदान किए जाते हैं। आधुनिक की-वैल्यू स्टोर में अक्सर मेटाडेटा के साथ काम करने, दस्तावेज़ स्टोर के बीच की रेखाओं को धुंधला करने की सुविधाएँ शामिल होती हैं।
खोज इंजन से संबंध
Apache Solr और Elasticsearch जैसे कुछ खोज इंजन (उर्फ सूचना पुनर्प्राप्ति) सिस्टम दस्तावेज़-उन्मुख डेटाबेस की परिभाषा में फिट होने के लिए दस्तावेज़ों पर पर्याप्त मुख्य संचालन प्रदान करते हैं।
रिलेशनल डेटाबेस से संबंध
This section may require cleanup to meet Wikipedia's quality standards. The specific problem is: "Requires cleanup". (July 2016) (Learn how and when to remove this template message) |
संबंधपरक डेटाबेस में, डेटा को पहले कई पूर्वनिर्धारित प्रकारों में वर्गीकृत किया जाता है, और प्रत्येक प्रकार की अलग-अलग प्रविष्टियाँ, या रिकॉर्ड रखने के लिए तालिकाएँ बनाई जाती हैं। तालिकाएँ प्रत्येक रिकॉर्ड के क्षेत्र में डेटा को परिभाषित करती हैं, जिसका अर्थ है कि तालिका में प्रत्येक रिकॉर्ड का समग्र रूप समान है। व्यवस्थापक तालिकाओं के बीच संबंधों को भी परिभाषित करता है, और कुछ निश्चित क्षेत्रों का चयन करता है जो उनके अनुसार खोज के लिए सबसे अधिक उपयोग किए जाएंगे और उन पर अनुक्रमणिका को परिभाषित करता है। संबंधात्मक डिजाइन में महत्वपूर्ण अवधारणा यह है कि कोई भी डेटा जिसे दोहराया जा सकता है, सामान्य रूप से अपनी तालिका में रखा जाता है, और यदि ये उदाहरण -दूसरे से संबंधित हैं, तो उन्हें साथ समूहित करने के लिए कॉलम चुना जाता है, विदेशी कुंजी। इस डिज़ाइन को डेटाबेस सामान्यीकरण के रूप में जाना जाता है।[3] उदाहरण के लिए, पता पुस्तिका एप्लिकेशन को आम तौर पर संपर्क नाम, वैकल्पिक छवि, या अधिक फ़ोन नंबर, या अधिक डाक पते, और या अधिक ईमेल पते संग्रहीत करने की आवश्यकता होगी। विहित संबंधपरक डेटाबेस में, डेटा के प्रत्येक बिट के लिए पूर्वनिर्धारित क्षेत्रों के साथ इन पंक्तियों में से प्रत्येक के लिए तालिकाएँ बनाई जाएंगी: CONTACT तालिका में FIRST_NAME, LAST_NAME और IMAGE कॉलम शामिल हो सकते हैं, जबकि PHONE_NUMBER तालिका में COUNTRY_CODE, AREA_CODE, PHONE_NUMBER और TYPE शामिल हो सकते हैं ( घर, काम, आदि)। PHONE_NUMBER तालिका में विदेशी कुंजी स्तंभ, CONTACT_ID भी शामिल है, जिसमें संपर्क बनाए जाने के समय निर्दिष्ट विशिष्ट आईडी संख्या होती है। मूल संपर्क को फिर से बनाने के लिए, डेटाबेस इंजन तालिकाओं के समूह में संबंधित वस्तुओं को देखने के लिए विदेशी कुंजियों का उपयोग करता है और मूल डेटा का पुनर्निर्माण करता है।
इसके विपरीत, दस्तावेज़-उन्मुख डेटाबेस में कोई आंतरिक संरचना नहीं हो सकती है जो सीधे किसी तालिका की अवधारणा पर मैप करती है, और फ़ील्ड और रिश्ते आमतौर पर पूर्वनिर्धारित अवधारणाओं के रूप में मौजूद नहीं होते हैं। इसके बजाय, किसी ऑब्जेक्ट के सभी डेटा को दस्तावेज़ में रखा जाता है, और डेटाबेस में प्रविष्टि के रूप में संग्रहीत किया जाता है। पता पुस्तिका के उदाहरण में, दस्तावेज़ में संपर्क का नाम, छवि, और कोई भी संपर्क जानकारी, सभी ही रिकॉर्ड में शामिल होंगे। उस प्रविष्टि को उसकी कुंजी के माध्यम से ्सेस किया जाता है, जो डेटाबेस को एप्लिकेशन को दस्तावेज़ को पुनः प्राप्त करने और वापस करने की अनुमति देता है। संबंधित डेटा को पुनः प्राप्त करने के लिए किसी अतिरिक्त कार्य की आवश्यकता नहीं है; यह सब वस्तु में लौटाया जाता है।
दस्तावेज़-उन्मुख और संबंधपरक मॉडल के बीच महत्वपूर्ण अंतर यह है कि दस्तावेज़ के मामले में डेटा स्वरूप पूर्वनिर्धारित नहीं होते हैं। ज्यादातर मामलों में, किसी भी प्रकार के दस्तावेज़ को किसी भी डेटाबेस में संग्रहीत किया जा सकता है, और वे दस्तावेज़ किसी भी समय प्रकार और रूप में बदल सकते हैं। यदि कोई किसी संपर्क में COUNTRY_FLAG जोड़ना चाहता है, तो इस फ़ील्ड को नए दस्तावेज़ों में डाला जा सकता है, क्योंकि इसका डेटाबेस या पहले से संग्रहीत मौजूदा दस्तावेज़ों पर कोई प्रभाव नहीं पड़ेगा। डेटाबेस से जानकारी की पुनर्प्राप्ति में सहायता के लिए, दस्तावेज़-उन्मुख सिस्टम आम तौर पर व्यवस्थापक को कुछ प्रकार की जानकारी देखने के लिए डेटाबेस को संकेत प्रदान करने की अनुमति देते हैं। ये रिलेशनल केस में इंडेक्स के समान काम करते हैं। अधिकांश दस्तावेज़ की सामग्री के बाहर अतिरिक्त मेटाडेटा जोड़ने की क्षमता भी प्रदान करते हैं, उदाहरण के लिए, पता पुस्तिका के हिस्से के रूप में प्रविष्टियों को टैग करना, जो प्रोग्रामर को सभी प्रकार की पता पुस्तिका प्रविष्टियों की तरह संबंधित प्रकार की जानकारी प्राप्त करने की अनुमति देता है। यह तालिका के समान कार्यक्षमता प्रदान करता है, लेकिन अवधारणा (डेटा की श्रेणियां) को इसके भौतिक कार्यान्वयन (तालिकाओं) से अलग करता है।
क्लासिक सामान्यीकृत रिलेशनल मॉडल में, डेटाबेस में वस्तुओं को डेटा की अलग-अलग पंक्तियों के रूप में दर्शाया जाता है, जो कि उन्हें प्राप्त होने के बाद दी गई संरचना से परे नहीं होती है। यह प्रोग्रामिंग ऑब्जेक्ट्स को उनके संबंधित डेटाबेस पंक्तियों में और से अनुवाद करने का प्रयास करते समय समस्याएँ पैदा करता है, समस्या जिसे वस्तु-संबंधपरक प्रतिबाधा बेमेल के रूप में जाना जाता है।[4] दस्तावेज़ अधिक बारीकी से स्टोर करता है, या कुछ मामलों में सीधे स्टोर में प्रोग्रामिंग ऑब्जेक्ट्स को मैप करता है। इनका विपणन अक्सर NoSQL शब्द का उपयोग करके किया जाता है।
कार्यान्वयन
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 NoSQL 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 JSON, JSON-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 XML, JSON 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 JSON model. | Yes |
Clusterpoint Database | Clusterpoint Ltd. | Proprietary with free download | JavaScript, SQL, PHP, C#, Java, Python, Node.js, C, C++, | Distributed document-oriented XML / JSON 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 NoSQL Document Database, JSON model and SQL based Query Language. | Yes[10] |
CouchDB | Apache Software Foundation | Apache License | Any language that can make HTTP requests | JSON 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 NoSQL 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 | JSON, Search engine. | Yes |
eXist | eXist | LGPL | XQuery, Java | XML 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) | RDBMS with JSON, 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 JSON, XML, 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, BSON store (binary format JSON). | 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 | JSON over HTTP, SQL support, ACID transactions | Yes |
Oracle NoSQL Database | Oracle Corp | Apache and proprietary | C, C#, Java, Python, node.js, Go | Shared nothing, horizontally scalable database with support for schema-less JSON, 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 XML database with integrated full-text search; support for JSON, text, and binaries. | Yes |
RedisJSON | Redis | Redis Source Available License (RSAL) | Python | JSON with integrated full-text search.[23] | Yes |
RethinkDB | ? | Apache License[24] | C++, Python, JavaScript, Ruby, Java | Distributed document-oriented JSON database with replication and sharding. | No |
SAP HANA | SAP | Proprietary | SQL-like language | ACID transaction supported, JSON only | Yes |
Sedna | sedna.org | Apache License | C++, XQuery | XML database | No |
SimpleDB | Amazon Web Services | Proprietary online service | Erlang | ? | |
Apache Solr | Apache Software Foundation | Apache License[25] | Java | JSON, CSV, XML, 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 | ? |
्सएमएल डेटाबेस कार्यान्वयन
अधिकांश XML डेटाबेस दस्तावेज़-उन्मुख डेटाबेस हैं।
यह भी देखें
- डेटाबेस सिद्धांत
- डेटा पदानुक्रम
- डेटा विश्लेषण
- पूरा पाठ खोजें
- इन-मेमोरी डेटाबेस
- इंटरनेट संदेश ्सेस प्रोटोकॉल (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