दस्तावेज़-आधारित और कुंजी / मूल्य-आधारित डेटाबेस के बीच अंतर?


97

मुझे पता है कि गैर-वर्ग डेटाबेस के तीन अलग-अलग, लोकप्रिय प्रकार हैं।

  • कुंजी / मूल्य: रेडिस, टोक्यो कैबिनेट, मेमकेड
  • कॉलमफैमिली: कैसेंड्रा, एचबीएज़
  • दस्तावेज़: MongoDB, CouchDB

मैंने इसके बारे में इतना समझे बिना इसके बारे में लंबे ब्लॉग पढ़े हैं।

मैं संबंधपरक डेटाबेस को जानता हूं और दस्तावेज़-आधारित डेटाबेस जैसे MongoDB / CouchDB के आसपास हैंग हो जाता हूं।

क्या कोई मुझे बता सकता है कि सूची में इन और 2 पूर्व के बीच प्रमुख अंतर क्या हैं?


4
पाँच हैं: (१) की-वैल्यू स्टोर्स: ओरेकल कोएरेंस, रेडिस, क्योटो कैबिनेट (२) बिगटेबल-स्टाइल डेटाबेस: अपाचे HBase, अपाचे कैसेंड्रा (३) डॉक्यूमेंट डेटाबेस: मोंगोडीबी, काउचबडी (४) पूर्ण पाठ खोज इंजन: अपाचे Lucene, Apache Solr (5) ग्राफ़ डेटाबेस: neo4j, FlockDB, nosql-data-मॉडलिंग-तकनीक देखें
Gary Gauh

जवाबों:


74

मुख्य अंतर डेटा मॉडल और क्वेरी क्षमताओं हैं।

की-वैल्यू स्टोर

पहला प्रकार बहुत सरल है और शायद आगे किसी स्पष्टीकरण की आवश्यकता नहीं है।

डेटा मॉडल: कुंजी-मूल्य स्टोर से अधिक

हालाँकि कैसंड्रा जैसे डेटाबेस के लिए सही नाम पर कुछ बहस है , मैं उन्हें कॉलम-फ़ैमिली स्टोर कहना चाहूंगा । यद्यपि की-वैल्यू जोड़े कैसेंड्रा का एक अनिवार्य हिस्सा हैं, लेकिन यह सिर्फ यहीं तक सीमित नहीं है। यह आपको कुंजी-मूल्य वाले जोड़े को घोंसला बनाने की अनुमति देता है, इसलिए एक कुंजी कई उप-कुंजी-मूल्य जोड़े को संदर्भित कर सकती है।

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

दस्तावेज़ डेटाबेस , जैसे CouchDB और MongoDB JSON ऑब्जेक्ट्स के रूप में संपूर्ण दस्तावेज़ संग्रहीत करते हैं । आप इन वस्तुओं को नेस्टेड की-वैल्यू पेयर के रूप में सोच सकते हैं। कैसेंड्रा के विपरीत, आप कुंजी-मूल्य जोड़े को जितना चाहें उतना घोंसला बना सकते हैं। JSON भी सरणियों का समर्थन करता है और विभिन्न डेटा प्रकारों को समझता है, जैसे तार, संख्या और बूलियन मान।

क्वेरी

मेरा मानना ​​है कि कॉलम-फ़ैमिली स्टोर केवल कुंजी द्वारा, या मानचित्र-कम कार्यों को लिखने के द्वारा क्वियर किया जा सकता है। आप मानों को क्वेरी नहीं कर सकते जैसे आप एक SQL डेटाबेस में करेंगे। यदि आपके एप्लिकेशन को अधिक जटिल प्रश्नों की आवश्यकता है, तो आपके एप्लिकेशन को वांछित डेटा तक पहुंचने के लिए अनुक्रमित बनाने और बनाए रखना होगा।

दस्तावेज़ डेटाबेस कुंजी और मानचित्र-घटाए गए कार्यों के साथ-साथ प्रश्नों का समर्थन करते हैं, लेकिन साथ ही आपको मूल प्रश्नों को भी करने की अनुमति देते हैं, जैसे "मुझे 10 से अधिक पदों वाले सभी उपयोगकर्ता दें"। दस्तावेज़ डेटाबेस इस तरह से अधिक लचीले होते हैं।


2
तो की-वैल्यू स्टोर जैसे रेडिट आपको नेस्टेड की को स्टोर करने की अनुमति नहीं देता है: मान? और आपके विवरण से, फिर कैसंड्रा में एक पूरे डेटाबेस (RDBMS से) को संग्रहीत करना बहुत ही चतुर ध्वनि नहीं है क्योंकि यह लचीली क्वेरी की अनुमति नहीं देता है और इसमें घोंसले के शिकार की गहराई सीमित है, क्या मैं सही हूं?
never_had_a_name

7
@ajsie: सही, की-वैल्यू स्टोर नेस्टेड की-वैल्यू पेयर का समर्थन नहीं करते हैं। उनमें से अधिकांश विशिष्ट मूल्यों का समर्थन करते हैं, हालांकि एक सूची के रूप में। कैसंड्रा RDBMS से बहुत अलग है, क्योंकि दोनों को बहुत अलग समस्याओं को हल करने के लिए डिज़ाइन किया गया है। RDBMS सिस्टम रिलेशनल डेटा के उद्देश्य से होते हैं, जिन्हें जटिल क्वेरी की आवश्यकता होती है, जबकि कैसेंड्रा का लक्ष्य ज्यादातर गैर-रिलेशनल डेटा की भारी मात्रा में प्रसंस्करण है। बेशक , कैसंड्रा के लिए आरडीबीएमएस डेटाबेस को स्थानांतरित करना संभव है, लेकिन वास्तव में बहुत चालाक नहीं है। उनमें से प्रत्येक का अपना उपयोग है।
Niels van der बाकी

तो क्या हर डॉक्यूमेंट डेटाबेस भी एक महत्वपूर्ण, वैल्यू स्टोर है, जहाँ वैल्यू केवल JSON जैसे {value: base64 (val)} है?
GroovyDotCom

@GroovyDotCom: हाँ, आप साधारण कुंजी / मान ऑब्जेक्ट को संग्रहीत करने के लिए दस्तावेज़ डेटाबेस का उपयोग कर सकते हैं।
नील्स वैन डेर रेस्ट

15

आयेंडे ने की-वैल्यू और डॉक्यूमेंट डेटाबेस के बीच अंतर के बारे में एक अच्छी व्याख्या दी है:

एक दस्तावेज़ डेटाबेस, इसके मूल में, एक प्रमुख अपवाद के साथ एक कुंजी / मूल्य की दुकान है। इसमें किसी भी बूँद को संग्रहीत करने के बजाय, एक दस्तावेज़ db के लिए आवश्यक है कि डेटा एक प्रारूप में संग्रहित किया जाएगा जिसे डेटाबेस समझ सकता है (जैसे कि JSON, XML आदि)। अधिकांश दस्तावेज़ में, इसका मतलब है कि अब हम दस्तावेज़ डेटा पर प्रश्नों की अनुमति दे सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.