7

मैं रेल का उपयोग कर एक वेब-आधारित अनुप्रयोग विकसित कर रहा हूं। मैं एक ग्राफ डेटाबेस, जैसे InfoGrid, या दस्तावेज़ डेटाबेस जैसे मोंगोडीबी का उपयोग करने के बीच बहस कर रहा हूं।वेब अनुप्रयोगों को विकसित करते समय आप दस्तावेज़ डेटाबेस बनाम ग्राफ डेटाबेस का उपयोग कब करेंगे?

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

मुझे ग्राफ या दस्तावेज़ डेटाबेस के साथ लोगों के अनुभवों के बारे में सीखने में दिलचस्पी है और वे किसी भी विकल्प का उपयोग क्यों करेंगे।

धन्यवाद

उत्तर

3

मैं पर्याप्त नहीं लग रहा है दोनों दुनिया के साथ अनुभव ठीक से और पूरी तरह से अपने सवाल का जवाब देने, हालांकि मैं कुछ समय के लिए एक दस्तावेज डेटाबेस का उपयोग कर रहा हूँ और यहाँ कुछ व्यक्तिगत संकेत दिए हैं।

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

वे दस्तावेजों के बीच संबंध संकल्पना नहीं करते हैं।

तो यदि आपके सॉफ़्टवेयर को उन्नत "प्रश्न" प्रदान करना है जहां चयन मानदंड कई प्रकार के दस्तावेज़ों पर कार्य करता है या यदि आपको कई तत्वों का उपयोग करके चयन करने की आवश्यकता है, तो [कुंजी, मान] अवधारणा उचित नहीं है। "पृष्ठांकित" तालिकाओं में बड़े डेटासेट पेश, कई स्तंभ पर sortable मामलों में जहां प्रदर्शन कर रहे हैं कम और डिस्क स्थान उपयोग विशाल है में से एक है:

वहाँ भी अन्य मामलों की संख्या में जहां दस्तावेज़ डेटाबेस अनुपयुक्त हैं कर रहे हैं।

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

ग्राफ डेटाबेस ट्रिपप्लेस्टोर की अवधारणा पर आधारित है, जिसका अर्थ है कि वे संस्थाओं के बीच संबंधों को भी संकल्पना देते हैं।

ग्राफ संबंधों (और इकाई भूमिकाओं) का उपयोग करके ट्रैवर किया जा सकता है, और संबंध-संरचित डेटा में खोज करते समय अधिक सुविधाजनक हो सकता है।

जैसा कि मुझे ग्राफ डेटाबेस के साथ कोई अनुभव नहीं है, मुझे पता नहीं है कि ग्राफ डेटाबेस को आसानी से पूछताछ/कई मानदंडों के साथ ट्रैवर किया जा सकता है, हालांकि अगर एक सलाहकार पाठक की ऐसी जानकारी है तो मैं वास्तव में ऐसे किसी भी उदाहरण की सराहना करता हूं प्रश्नों के लिए/traversals।

मैं वर्तमान में InfoGrid के बारे में पढ़ रहा हूँ और अगर इस तरह के डेटाबेस सकता है काम से क्रम में जटिल अनुरोध डेटा की एक बहुत बड़ी सेट पर प्रदर्शन करने के लिए, संबंधों शामिल लगाने की कोशिश कर ....

मैं क्या पढ़ सकते हैं से , InfoGrah को "डेटा फेडररेटर" के रूप में माना जाना चाहिए जिसे कई स्रोतों (स्टोर्स) से डेटा खोजने/मेरा पता लगाने में सक्षम है, जो मोंगो जैसे नोएसक्यूएल डेटाबेस भी हो सकता है।

कौन सा मतलब है कि आप अद्यतन और InfoGraph डेटा खोज के लिए के लिए एक मोंगो दुकान इस्तेमाल कर सकते हैं, और शायद सीपीयू और डिस्क का एक बहुत छोड़ जब यह एक NoSQL डेटाबेस के अंदर जटिल खोजों के लिए आता है।

बेशक यह थोड़ा "ओवरकिल" प्रतीत हो सकता है यदि आपका ऐप बस डेटाबेस में विशाल बाइनरी फ़ाइलों का एक बड़ा सेट संग्रहीत करता है और आपको केवल सरल कुंजी क्वेरी करने और परिणाम पुनर्प्राप्त करने की आवश्यकता होती है। उस कैस में मोंगो या सोफे जैसे नोस्कल डेटाबेस शायद आसान होंगे।

आशा इस मदद करता है में से कुछ;)

3

जब किनारों से संबंधित दस्तावेज़ों को जोड़ने के लिए, आप एक उथले या एक गहरी ग्राफ मिलेगा? मुझे लगता है कि ग्राफdbs और documentdbs के बीच निर्णय लेने पर उस प्रश्न का उत्तर महत्वपूर्ण है। इन लाइनों के साथ विचारों के लिए जिम वेबबर द्वारा Square Pegs and Round Holes in the NOSQL World देखें।

+0

बहुत अच्छा लेख, धन्यवाद !!! – devlearn

संबंधित मुद्दे