2013-03-23 2 views
20

स्केमेलेस एक ऐसा शब्द है जो वर्तमान में नोएसक्ल दुनिया में तैर रहा है।NoSQL डेटाबेस के लिए स्कीमा-कम मतलब क्या है?

  1. इसका क्या अर्थ है?
  2. मेरे पास आज 3 गुणों वाला एक दस्तावेज़ है और मैं इसके साथ उत्पादन में जाता हूं, तो मेरे डेटा में 2 और गुण जोड़ने की आवश्यकता होने पर मेरे डेटा का क्या होता है?
  3. क्या यह पूरी तरह से माइग्रेशन समस्या है जहां मुझे अपने डेटा माइग्रेशन को प्रबंधित करने की आवश्यकता है या कोई नोएसक्ल डेटाबेस आरडीबीएमएस के रूप में ज्यादा घर्षण पैदा कर सकता है या इसे किसी भी तरह से आसान बना सकता है?

उत्तर

16

स्कीमा-कम एक मिथ्या नाम का एक सा है, यह के रूप में यह सोचने के लिए बेहतर है है:

  • एसक्यूएल = लिखें पर एक आरडीबीएमएस द्वारा लागू स्कीमा
  • NoSQL = आंशिक स्कीमा डीबीएमएस द्वारा लागू लिखें, प्लस स्कीमा पूरी तरह से पढ़ें पर अनुप्रयोग द्वारा लागू पर (Externalised स्कीमा)

इसलिए जब एक माना जाता स्कीमा-कम NoSQL डेटा की दुकान सिद्धांत रूप में आप अपनी पसंद के डाटा स्टोर करने की अनुमति देगा (typica लिली कुंजी मूल्य जोड़े, किसी दस्तावेज़ में) कुंजी, या डेटा प्रकार के पूर्व ज्ञान के बिना, यह व्यर्थ होगा जब तक कि आपके पास डेटा को पुनर्प्राप्त करने और उपयोग करने के लिए कुछ तंत्र न हो। इसलिए अनिवार्य रूप से स्कीमा आंशिक रूप से आरडीबीएमएस से आवेदन कोड में ले जाया गया है। मैं आंशिक रूप से कहता हूं क्योंकि आपने संग्रह संग्रह में इंडेक्स जोड़े होंगे और प्रदर्शन के लिए डेटा को विभाजित किया होगा, इसलिए नोएसक्यूएल डीबीएमएस में आंशिक स्कीमा स्थानीय रूप से परिभाषित किया जाएगा, और संभावित रूप से अद्वितीय बाधाओं के माध्यम से लागू किया जाएगा।

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

+0

अंतरिक्ष आवंटन के बारे में अच्छा बिंदु। लेकिन विशेष रूप से बिंदु 2 और 3 के लिए, मैं डेटा माइग्रेशन में डेटा w.r.t का प्रबंधन कैसे करूं? क्या कोई नोएसक्यूएल उत्पाद उन परिवर्तनों का पता लगाने के लिए पर्याप्त स्मार्ट है जो वृद्धिशील और गैर-ब्रेकिंग वी/एस तोड़ रहे हैं? –

+2

उत्पाद पर निर्भर करता है, लेकिन आम तौर पर यदि आप किसी दस्तावेज़ में अतिरिक्त विशेषताओं/कुंजी जोड़ना चाहते हैं, तो आपको केवल नए कुंजी मान जोड़े को स्टोर/उपयोग करने के लिए अपना एप्लिकेशन कोड बदलना होगा। डीबीएमएस को इस बात की परवाह नहीं है कि दस्तावेज़ में क्या संग्रहीत किया गया है, अगर इसे अनुक्रमित नहीं किया गया है, और यह मानते हुए कि प्रत्येक दस्तावेज़ के लिए आवंटित पर्याप्त स्थान है, जैसे कि डीबीएमएस को इसके पीछे के अंत को पुन: स्थापित करना नहीं है। – arober11

+0

तो हमें हाथ से पहले दस्तावेज़ आकार में संभावित वृद्धि के लिए खाते की आवश्यकता है? –

2

दिन में देर से, लेकिन जब विषय पर खोज कर थोड़ा फिर मैं इस लेख

http://tech.pro/tutorial/1189/basics-of-ravendb-nosql

पाया अनुभाग से 3 आसानी के लिए फिर से, मैं इसे बोली होगी लेख में संदर्भ लें।

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

यह रावेनडीबी के लिए तार्किक उत्तर प्रतीत होता है।

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