एचएमबी क्या है? MongoDB? परिचय, Archiटेकचर, विशेषताएं और उदाहरण
एचएमबी क्या है? MongoDB?
MongoDB एक दस्तावेज़-उन्मुख NoSQL डेटाबेस है जिसका उपयोग उच्च मात्रा में डेटा संग्रहण के लिए किया जाता है। पारंपरिक रिलेशनल डेटाबेस में तालिकाओं और पंक्तियों का उपयोग करने के बजाय, MongoDB संग्रह और दस्तावेज़ों का उपयोग करता है। दस्तावेज़ों में कुंजी-मूल्य जोड़े होते हैं जो डेटा की मूल इकाई हैं MongoDBसंग्रह में दस्तावेजों और फ़ंक्शन के सेट होते हैं जो संबंधपरक डेटाबेस तालिकाओं के समतुल्य होते हैं। MongoDB यह एक डेटाबेस है जो 2000 के दशक के मध्य में प्रकाश में आया।
MongoDB विशेषताएं
- प्रत्येक डेटाबेस में संग्रह होते हैं जिनमें दस्तावेज़ होते हैं। प्रत्येक दस्तावेज़ अलग-अलग फ़ील्ड की संख्या के साथ अलग-अलग हो सकता है। प्रत्येक दस्तावेज़ का आकार और सामग्री एक दूसरे से भिन्न हो सकती है।
- दस्तावेज़ संरचना डेवलपर्स द्वारा अपनी संबंधित प्रोग्रामिंग भाषाओं में अपने वर्गों और ऑब्जेक्ट्स का निर्माण करने के तरीके के अनुरूप है। डेवलपर्स अक्सर कहते हैं कि उनके वर्ग पंक्तियाँ और स्तंभ नहीं हैं, बल्कि कुंजी-मूल्य जोड़े के साथ एक स्पष्ट संरचना है।
- पंक्तियाँ (या दस्तावेज़ जैसा कि कहा जाता है MongoDB) को पहले से स्कीमा परिभाषित करने की आवश्यकता नहीं है। इसके बजाय, फ़ील्ड को तुरंत बनाया जा सकता है।
- डेटा मॉडल उपलब्ध है MongoDB आपको पदानुक्रमिक संबंधों को दर्शाने, सरणियों को संग्रहीत करने, तथा अन्य अधिक जटिल संरचनाओं को अधिक आसानी से प्रस्तुत करने की अनुमति देता है।
- स्केलेबिलिटी – MongoDB वातावरण बहुत स्केलेबल हैं। दुनिया भर की कंपनियों ने क्लस्टर निर्धारित किए हैं, जिनमें से कुछ डेटाबेस के भीतर लगभग लाखों दस्तावेज़ों के साथ 100+ नोड्स चला रहे हैं
MongoDB उदाहरण
नीचे दिया गया उदाहरण दिखाता है कि किसी दस्तावेज़ को किस प्रकार मॉडल किया जा सकता है MongoDB.
- _id फ़ील्ड किसके द्वारा जोड़ा जाता है MongoDB संग्रह में दस्तावेज़ को विशिष्ट रूप से पहचानने के लिए।
- आप यह ध्यान रख सकते हैं कि ऑर्डर डेटा (ऑर्डरआईडी, उत्पाद और मात्रा) जो कि RDBMS में सामान्य रूप से एक अलग तालिका में संग्रहीत किया जाएगा, जबकि MongoDB यह वास्तव में संग्रह में ही एक एम्बेडेड दस्तावेज़ के रूप में संग्रहीत है। यह डेटा को मॉडल करने के तरीके में मुख्य अंतरों में से एक है MongoDB.
के प्रमुख घटक MongoDB Archiटेक्चर
नीचे कुछ सामान्य शब्द दिए गए हैं जिनका प्रयोग MongoDB
- _ id – यह प्रत्येक क्षेत्र में आवश्यक है MongoDB दस्तावेज़. _id फ़ील्ड दस्तावेज़ में एक अद्वितीय मान का प्रतिनिधित्व करता है. MongoDB दस्तावेज़। _id फ़ील्ड दस्तावेज़ की प्राथमिक कुंजी की तरह है। यदि आप _id फ़ील्ड के बिना कोई नया दस्तावेज़ बनाते हैं, MongoDB स्वचालित रूप से फ़ील्ड बनाएगा। इसलिए उदाहरण के लिए, यदि हम उपरोक्त ग्राहक तालिका का उदाहरण देखते हैं, तो मोंगो डीबी संग्रह में प्रत्येक दस्तावेज़ में 24 अंकों का अद्वितीय पहचानकर्ता जोड़ देगा।
_पहचान | ग्राहक आईडी | ग्राहक का नाम | आदेश ID |
---|---|---|---|
563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
563479cc7a8a4246bd47d784 | 22 | ट्रेवर स्मिथ | 222 |
563479cc9a8a4246bd57d784 | 33 | निकोल | 333 |
- पुस्तक संग्रह – यह एक समूह है MongoDB दस्तावेज़। एक संग्रह एक तालिका के समतुल्य है जो किसी अन्य RDMS में बनाया जाता है जैसे Oracle या MS SQL. एक संग्रह एक ही डेटाबेस के भीतर मौजूद होता है। जैसा कि परिचय से देखा जा सकता है संग्रह किसी भी प्रकार की संरचना को लागू नहीं करते हैं।
- कर्सर - यह क्वेरी के परिणाम सेट के लिए एक पॉइंटर है। क्लाइंट परिणाम प्राप्त करने के लिए कर्सर के माध्यम से पुनरावृति कर सकते हैं।
- डाटाबेस - यह RDMS की तरह संग्रह के लिए एक कंटेनर है जिसमें यह तालिकाओं के लिए एक कंटेनर है। प्रत्येक डेटाबेस को फ़ाइल सिस्टम पर फ़ाइलों का अपना सेट मिलता है। MongoDB सर्वर एकाधिक डाटाबेस संग्रहीत कर सकता है.
- दस्तावेज़ – एक रिकॉर्ड MongoDB संग्रह को मूल रूप से एक दस्तावेज़ कहा जाता है। दस्तावेज़, बदले में, फ़ील्ड नाम और मानों से मिलकर बनेगा।
- क्षेत्र – दस्तावेज़ में नाम-मूल्य युग्म। दस्तावेज़ में शून्य या अधिक फ़ील्ड होते हैं। फ़ील्ड रिलेशनल डेटाबेस में कॉलम के समान होते हैं। निम्न आरेख कुंजी मान युग्म वाले फ़ील्ड का एक उदाहरण दिखाता है। इसलिए नीचे दिए गए उदाहरण में CustomerID और 11 दस्तावेज़ में परिभाषित कुंजी मान युग्मों में से एक है।
- JSON – इसे इस नाम से जाना जाता है Javaलिपि ऑब्जेक्ट नोटेशन। यह संरचित डेटा को व्यक्त करने के लिए एक मानव-पठनीय, सादा पाठ प्रारूप है। JSON वर्तमान में कई प्रोग्रामिंग भाषाओं में समर्थित है।
_id फ़ील्ड और सामान्य संग्रह फ़ील्ड के बीच मुख्य अंतर पर बस एक त्वरित नोट। _id फ़ील्ड का उपयोग संग्रह में दस्तावेज़ों को विशिष्ट रूप से पहचानने के लिए किया जाता है और इसे स्वचालित रूप से जोड़ा जाता है MongoDB जब संग्रह बनाया जाता है.
क्यों का उपयोग करें MongoDB?
नीचे कुछ कारण दिए गए हैं कि क्यों किसी को इसका उपयोग शुरू करना चाहिए MongoDB
- दस्तावेज़-उन्मुख – चूंकि MongoDB एक NoSQL टाइप डेटाबेस, रिलेशनल टाइप फॉर्मेट में डेटा रखने के बजाय, यह डेटा को दस्तावेजों में संग्रहीत करता है। यह बनाता है MongoDB वास्तविक व्यापारिक दुनिया की स्थिति और आवश्यकताओं के लिए बहुत लचीला और अनुकूलनीय।
- तदर्थ प्रश्न – MongoDB फ़ील्ड, रेंज क्वेरीज़ और रेगुलर एक्सप्रेशन खोजों द्वारा खोज का समर्थन करता है। दस्तावेज़ों के भीतर विशिष्ट फ़ील्ड वापस करने के लिए क्वेरीज़ बनाई जा सकती हैं।
- अनुक्रमण - खोजों के प्रदर्शन को बेहतर बनाने के लिए अनुक्रमणिकाएँ बनाई जा सकती हैं MongoDB. किसी भी क्षेत्र में MongoDB दस्तावेज़ को अनुक्रमित किया जा सकता है.
- प्रतिकृति - MongoDB प्रतिकृति सेट के साथ उच्च उपलब्धता प्रदान कर सकते हैं। एक प्रतिकृति सेट में दो या अधिक मोंगो डीबी इंस्टेंस होते हैं। प्रत्येक प्रतिकृति सेट सदस्य किसी भी समय प्राथमिक या द्वितीयक प्रतिकृति की भूमिका में कार्य कर सकता है। प्राथमिक प्रतिकृति मुख्य सर्वर है जो क्लाइंट के साथ इंटरैक्ट करता है और सभी रीड/राइट ऑपरेशन करता है। द्वितीयक प्रतिकृतियाँ अंतर्निहित प्रतिकृति का उपयोग करके प्राथमिक के डेटा की एक प्रति बनाए रखती हैं। जब एक प्राथमिक प्रतिकृति विफल हो जाती है, तो प्रतिकृति सेट स्वचालित रूप से द्वितीयक पर स्विच हो जाता है और फिर यह प्राथमिक सर्वर बन जाता है।
- भार का संतुलन - MongoDB डेटा को कई भागों में विभाजित करके क्षैतिज रूप से स्केल करने के लिए शार्डिंग की अवधारणा का उपयोग करता है MongoDB उदाहरणों। MongoDB यह एकाधिक सर्वरों पर चल सकता है, लोड को संतुलित कर सकता है और/या हार्डवेयर विफलता की स्थिति में सिस्टम को चालू रखने के लिए डेटा की प्रतिलिपि बना सकता है।
डेटा मॉडलिंग MongoDB
जैसा कि हमने परिचय अनुभाग में देखा है, डेटा MongoDB एक लचीली स्कीमा है। एसक्यूएल डेटाबेस, जहाँ डेटा डालने से पहले आपको तालिका की स्कीमा घोषित करनी होगी, MongoDBके संग्रह दस्तावेज़ संरचना को लागू नहीं करते हैं। इस तरह का लचीलापन ही इसे बनाता है MongoDB बहुत शक्तिशाली.
मोंगो में डेटा मॉडलिंग करते समय, निम्नलिखित बातों को ध्यान में रखें
- आवेदन की क्या ज़रूरतें हैं - आवेदन की व्यावसायिक ज़रूरतों को देखें और देखें कि आवेदन के लिए किस तरह के डेटा की ज़रूरत है। इसके आधार पर सुनिश्चित करें कि दस्तावेज़ की संरचना उसी के अनुसार तय की जाए।
- डेटा पुनर्प्राप्ति पैटर्न क्या हैं - यदि आपको भारी क्वेरी उपयोग का अनुमान है तो क्वेरी की दक्षता में सुधार करने के लिए अपने डेटा मॉडल में इंडेक्स के उपयोग पर विचार करें।
- क्या डेटाबेस में लगातार प्रविष्टियाँ, अद्यतन और निष्कासन हो रहे हैं? अपने समग्र डेटा मॉडलिंग डिज़ाइन की दक्षता में सुधार करने के लिए इंडेक्स के उपयोग पर पुनर्विचार करें या यदि आवश्यक हो तो शार्डिंग को शामिल करें MongoDB पर्यावरण.
के बीच अंतर MongoDB और आरडीबीएमएस
नीचे कुछ प्रमुख शब्द अंतर दिए गए हैं MongoDB और आरडीबीएमएस
आरडीबीएमएस | MongoDB | अंतर |
---|---|---|
तालिका | पुस्तक संग्रह | In आरडीबीएमएस, तालिका में कॉलम और पंक्तियाँ होती हैं जिनका उपयोग डेटा संग्रहीत करने के लिए किया जाता है, जबकि, MongoDB, इसी संरचना को संग्रह के रूप में जाना जाता है। संग्रह में दस्तावेज़ होते हैं जिनमें फ़ील्ड होते हैं, जो बदले में कुंजी-मूल्य जोड़े होते हैं। |
पंक्ति | दस्तावेज़ | RDBMS में, पंक्ति तालिका में एकल, अंतर्निहित संरचित डेटा आइटम का प्रतिनिधित्व करती है। MongoDBडेटा को दस्तावेज़ों में संग्रहीत किया जाता है। |
स्तंभ | क्षेत्र | RDBMS में, कॉलम डेटा मानों के एक सेट को दर्शाता है। MongoDB फ़ील्ड्स के नाम से जाने जाते हैं। |
जुड़ती | एंबेडेड दस्तावेज़ | आरडीबीएमएस में, डेटा कभी-कभी विभिन्न तालिकाओं में फैला होता है और सभी डेटा का पूरा दृश्य दिखाने के लिए, डेटा प्राप्त करने के लिए कभी-कभी तालिकाओं में एक जॉइन बनाया जाता है। MongoDBडेटा को आम तौर पर एक ही संग्रह में संग्रहीत किया जाता है, लेकिन एम्बेडेड दस्तावेज़ों का उपयोग करके अलग किया जाता है। इसलिए इसमें जॉइन की कोई अवधारणा नहीं है MongoDB. |
शर्तों के अंतर के अलावा, कुछ अन्य अंतर नीचे दिखाए गए हैं
- रिलेशनल डेटाबेस डेटा अखंडता को लागू करने के लिए जाने जाते हैं। यह एक स्पष्ट आवश्यकता नहीं है MongoDB.
- RDBMS के लिए आवश्यक है कि डेटा सामान्यीकृत सबसे पहले ताकि यह अनाथ रिकॉर्ड और डुप्लिकेट को रोक सके। फिर डेटा को सामान्य करने के लिए अधिक तालिकाओं की आवश्यकता होती है, जिसके परिणामस्वरूप अधिक तालिका जॉइन होंगे, इस प्रकार अधिक कुंजियों और अनुक्रमणिकाओं की आवश्यकता होगी। जैसे-जैसे डेटाबेस बढ़ने लगते हैं, प्रदर्शन एक मुद्दा बनना शुरू हो सकता है। फिर से यह एक स्पष्ट आवश्यकता नहीं है MongoDB. MongoDB लचीला है और पहले डेटा को सामान्यीकृत करने की आवश्यकता नहीं है।