NoSQL क्रांतिकारी से अधिक विकासवादी है। यह अनिवार्य रूप से "परिचित डेटा संरचनाओं का उपयोग करके" बाहरी डेटाबेस भंडारण "के मौजूदा विचारों को जोड़ती है, न कि रिलेशनल टेबल।"
संबंधपरक से अधिक प्रकार के डेटाबेस हैं, उदाहरण के लिए पदानुक्रमित डेटाबेस । आज के मानकों से पुरातन होते हुए, यह अपने डेटा के डेटा संरचनाओं (जैसे COBOL रिकॉर्ड) के साथ वास्तव में अच्छी तरह से मेल खाता है । बिंदु यह है कि डेटाबेस में डेटा को बारीकी से मॉडलिंग की गई थी कि प्रोग्रामिंग भाषाओं में रिकॉर्ड कैसे रखे गए थे जो उनका उपयोग करते थे।
रिलेशनल डेटाबेस के आविष्कार के लिए तेजी से आगे , जहां अंततः डेटाबेस ने चिंताओं को अलग कर दिया और जब ठीक से सामान्यीकृत किया जाता है, तो डेटा के बीच अधिकांश प्रकार के डेटा और संबंधों की कल्पना करने का एक शानदार तरीका है। यह है वास्तव में डेटाबेस के अन्य प्रकार की तुलना समझने में आसान। हालाँकि, यह पूरी तरह से विफल रहता है, लेकिन एक कार्यक्रम में वस्तुओं और कक्षाओं को दर्पण करने वाले तरीके से डेटा संग्रहीत कर रहा है। इसलिए, वस्तु-संबंधपरक मानचित्रण का आविष्कार । दूसरे शब्दों में, डेटाबेस का डिज़ाइन वास्तव में उस प्रोग्राम के डिजाइन के लिए एक बाधा है जो इसका उपयोग करता है, यही कारण है कि हमें ORM पुस्तकालयों जैसे हाइबरनेट की आवश्यकता होती है। स्वच्छ और सुसंगत रहते हुए, मेरे दिमाग में हमेशा यह संदेह बना रहता है कि कुछ ठीक नहीं है।
इसने दो और प्रकार के डेटाबेस, ऑब्जेक्ट डेटाबेस और NoSQL को जन्म दिया ।
दोनों संबंधपरक डेटाबेस द्वारा पेश किए गए मुद्दों को हल करने का प्रयास करते हैं, जबकि हमें पदानुक्रमित डेटाबेस के झुकने वाले भयावहता के लिए उजागर नहीं करते हैं। डेटा अभी भी रिपॉजिटरी में रखे गए हैं जो अस्पष्ट रूप से तालिकाओं से मिलते जुलते हैं, लेकिन वास्तविकता में संबंधपरक तालिकाओं की तुलना में प्रोग्रामिंग डेटा संरचनाओं को अधिक पसंद करते हैं। जबकि ऑब्जेक्ट डेटाबेस ज्यादातर अच्छी तरह से परिभाषित नियमों का पालन करते हैं, मेरी समझ में यह है कि NoSQL बल्कि मनमाना है। उदाहरण के लिए, किसी तालिका को हैश तालिका या सरणी के रूप में देखा जा सकता है। ओरेकल SQL डेवलपर या SQL सर्वर प्रबंधन स्टूडियो के अनुरूप एक मनमाना उपकरण का उपयोग करके उन्हें क्वेरी करने का एक आसान, अच्छी तरह से परिभाषित तरीका नहीं है ।
विचार यह है कि कोई डेटा संरचनाओं को आसानी से कोड में खोजा जा सकता है, बजाय SQL क्वेरीज़ को एक इच्छाओं को व्यक्त करने के बजाय एक SQL डेटाबेस इंजन के लिए बेहतर-अनुकूल होने वाले SQL प्रश्नों के साथ। उदाहरण के लिए, फजी या आंशिक मैच अधिक कठिन होते हैं और एक संबंधपरक डेटाबेस में खराब प्रदर्शन करते हैं, जबकि एक NoSQL डेटाबेस में ऐसी संरचना हो सकती है जो इस तरह की खोज के लिए अनुकूलित होती है और समय के एक अंश में पूरी होती है।
NoSQL को क्वेरी करने के लिए भाषाएँ हैं। हालाँकि, कोई सार्वभौमिक भाषा नहीं है जैसे कि SQL रिलेशनल डेटाबेस के लिए क्या है।
देर से संपादित करें:
जबकि मैं NoSQL डेटाबेस से काफी परिचित हूं, यह सवाल मेरे लिए विषय पर एक गुणवत्ता की किताब खरीदने और विषय पर एक वास्तविक विशेषज्ञ होने के अंतिम लक्ष्य के साथ इसे पढ़ना शुरू करने के लिए प्रेरणा था। शेष टिप्पणियां NoSQL डिस्टिल्ड पर आधारित हैं : प्रमोद सदलगे और मार्टिन फाउलर द्वारा पॉलीग्लॉट पर्सिस्टेंस की उभरती दुनिया के लिए एक संक्षिप्त गाइड ।
लेखकों का कहना है कि संबंधपरक डेटाबेस अमेज़न और Google जैसी साइटों के लिए आवश्यक डेटा की सेवा करने में सक्षम समूहों के लिए अच्छी तरह से पैमाने पर नहीं हैं: NoSQL इस आला को फिट करने के लिए विकसित किया गया था, एसीआईडी में संक्षिप्तता और स्थायित्व को आराम करने के लिए बड़ी संख्या में प्रश्नों को सर्वर करने के लिए बड़े पैमाने पर स्थैतिक डेटा का उपयोग करें (इसलिए, ACID लेनदेन उतना महत्वपूर्ण नहीं है)।
इसके अलावा, वे कहते हैं कि NoSQL डेटाबेस एक स्कीमा (पृष्ठ 10) के बिना काम करते हैं जो NoSQL डेटाबेस को डेटा की संरचना को अधिक आसानी से संशोधित करने की अनुमति देता है। मुझे यकीन नहीं है कि इस संबंध में औपचारिक स्कीमा की मौजूदगी या अनुपस्थिति इस संबंध में है, क्योंकि SQL डेटाबेस भी स्कीमा को संशोधित करने की अनुमति देते हैं। भले ही, दो प्रसिद्ध लेखक दावा करते हैं इसलिए यह जांचने योग्य है।
मेरा मानना है कि ये दोनों मुख्य बिंदु केवल मेरे प्राथमिक बिंदु को लागू करने के लिए काम करते हैं कि NoSQL विकासवादी है, क्रांतिकारी नहीं। वे अभी भी डेटा स्टोर करते हैं, और स्केल और मोडिफ़िबिलिटी में वृद्धिशील सुधार करते हैं। वे यह भी कहते हैं कि NoSQL डेटा संग्रहण के राजा के रूप में रिलेशनल डेटाबेसों की खोज नहीं करता है, केवल डेटा के प्रकारों के लिए डेटा स्टोरेज का एक वैकल्पिक साधन प्रदान करने के लिए जो एक तरह से स्केल और मॉर्फ करने की आवश्यकता है (वे मानते हैं) संबंधपरक डेटाबेस पर्याप्त रूप से समर्थन नहीं करते हैं।