1.1 NoSQL डेटाबेस कसा कार्य करतो

NoSQL डेटाबेस डेटामध्ये प्रवेश करण्यासाठी आणि हाताळण्यासाठी विविध डेटा मॉडेल्स वापरतात. या प्रकारचे डेटाबेस डेटा-केंद्रित ऍप्लिकेशन्ससाठी ऑप्टिमाइझ केले जातात ज्यांना कमी विलंबता आणि लवचिक डेटा मॉडेलची आवश्यकता असते. हे सर्व इतर प्रकारच्या डेटाबेससाठी वैशिष्ट्यपूर्ण असलेल्या कठोर डेटा सातत्य आवश्यकता मऊ करून साध्य केले जाते.

पुस्तकांच्या साध्या डेटाबेससाठी स्कीमा मॉडेलिंगचे उदाहरण विचारात घ्या.

  • रिलेशनल डेटाबेसमध्ये, पुस्तकाची नोंद अनेकदा अनेक भागांमध्ये (किंवा "सामान्यीकृत") विभाजित केली जाते आणि स्वतंत्र सारण्यांमध्ये संग्रहित केली जाते ज्यांचे संबंध प्राथमिक आणि परदेशी की मर्यादांद्वारे परिभाषित केले जातात. या उदाहरणात, पुस्तके सारणीमध्ये ISBN , पुस्तकाचे शीर्षक आणि संस्करण क्रमांक स्तंभ आहेत , "ISBN"आणि"लेखक"लेखक-ISBNआणिस्तंभलेखकाचे नावआणिआयडीलेखकसारणीमध्येलेखक. रिलेशनल मॉडेल डेटाबेसमधील सारण्यांमधील संदर्भ अखंडता राखण्यासाठी डिझाइन केले आहे. रिडंडंसी कमी करण्यासाठी डेटा सामान्यीकृत केला जातो आणि सामान्यतः स्टोरेजसाठी ऑप्टिमाइझ केला जातो.

  • NoSQL डेटाबेसमध्ये, पुस्तक रेकॉर्ड सामान्यत: JSON दस्तऐवज म्हणून संग्रहित केले जाते. प्रत्येक पुस्तक किंवा घटकासाठी, ISBN , पुस्तकाचे शीर्षक , संस्करण क्रमांक , लेखकाचे नाव , आणि लेखक आयडी मूल्ये एकाच दस्तऐवजात विशेषता म्हणून संग्रहित केली जातात. या मॉडेलमध्ये, अंतर्ज्ञानी विकास आणि क्षैतिज स्केलेबिलिटीसाठी डेटा ऑप्टिमाइझ केला जातो.

1.2 NoSQL डेटाबेस कशासाठी वापरले जाऊ शकतात?

NoSQL डेटाबेस अनेक आधुनिक ऍप्लिकेशन्ससाठी योग्य आहेत, जसे की मोबाइल, गेमिंग, वेब ऍप्लिकेशन्स, ज्यांना लवचिक, स्केलेबल डेटाबेसची आवश्यकता असते ज्यात उच्च कार्यक्षमता आणि समृद्ध कार्यक्षमता असते जी जास्तीत जास्त उपयोगिता प्रदान करू शकते.

  • लवचिकता . सामान्यतः, NoSQL डेटाबेस लवचिक स्कीमा ऑफर करतात, जे जलद विकासास अनुमती देतात आणि वाढीव अंमलबजावणी सक्षम करतात. लवचिक डेटा मॉडेल्सच्या वापरामुळे, NoSQL डेटाबेस अर्ध-संरचित आणि असंरचित डेटासाठी योग्य आहेत.

  • स्केलेबिलिटी _ NoSQL डेटाबेस हे महागडे, विश्वासार्ह सर्व्हर जोडून नव्हे तर वितरित हार्डवेअर क्लस्टर्सचा वापर करून स्केल करण्यासाठी डिझाइन केलेले आहेत. काही क्लाउड सेवा प्रदाता ही ऑपरेशन्स पार्श्वभूमीत चालवतात, पूर्णपणे व्यवस्थापित सेवा प्रदान करतात.

  • उच्च कार्यक्षमता . NoSQL डेटाबेस विशिष्ट डेटा मॉडेल्ससाठी आणि रिलेशनल डेटाबेसपेक्षा उच्च कार्यप्रदर्शन प्राप्त करण्यासाठी ऍक्सेस पॅटर्नसाठी ऑप्टिमाइझ केले जातात.

  • विस्तृत कार्यक्षमता . NoSQL डेटाबेस समृद्ध API आणि डेटा प्रकार प्रदान करतात जे विशेषतः त्यांच्या संबंधित डेटा मॉडेलसाठी डिझाइन केलेले आहेत.

1.3 NoSQL डेटाबेसचे प्रकार

NoSQL डेटाबेस वापरले जातात जेथे टेबलच्या स्वरूपात डेटा संग्रहित करणे फार सोयीचे नसते. म्हणून, ते खूप भिन्न स्वरूपात संग्रहित केले जातात. सहसा, NoSQL डेटाबेसचे 6 मुख्य डेटा प्रकार असतात.

मुख्य-मूल्य जोड्यांवर आधारित DB

की-व्हॅल्यू जोड्यांचा वापर करणारे डेटाबेस उच्च विभाजकतेचे समर्थन करतात आणि अभूतपूर्व क्षैतिज स्केलिंग प्रदान करतात जे इतर प्रकारच्या डेटाबेससह साध्य करता येत नाहीत. गेमिंग, जाहिराती आणि IoT ऍप्लिकेशन्स हे की-व्हॅल्यू डेटाबेसेससाठी चांगल्या वापराची प्रकरणे आहेत.

उदाहरणार्थ, Amazon DynamoDB कोणत्याही प्रमाणात काही मिलिसेकंदांपेक्षा जास्त विलंब न करता स्थिर डेटाबेस ऑपरेशन सुनिश्चित करते. स्नॅपचॅट स्टोरीज डायनॅमोडीबीमध्ये स्थलांतरित करण्यामागे ही मजबूत कामगिरी हे मुख्य कारण होते, कारण हे स्नॅपचॅट वैशिष्ट्य सर्वात मोठ्या स्टोरेज राइट लोडशी संबंधित आहे.

दस्तऐवज

ऍप्लिकेशन कोडमध्ये, डेटा अनेकदा JSON सारख्या फॉरमॅटमध्ये ऑब्जेक्ट किंवा डॉक्युमेंट म्हणून दर्शविला जातो कारण तो डेव्हलपरसाठी एक कार्यक्षम आणि अंतर्ज्ञानी डेटा मॉडेल आहे. दस्तऐवज डेटाबेस विकासकांना त्यांच्या अनुप्रयोग कोडमध्ये वापरत असलेल्या दस्तऐवज मॉडेलचा वापर करून डेटाबेसमध्ये डेटा संचयित आणि क्वेरी करण्यास अनुमती देतात. दस्तऐवज आणि दस्तऐवज डेटाबेसचे लवचिक, अर्ध-संरचित, श्रेणीबद्ध स्वरूप त्यांना अनुप्रयोगाच्या गरजेनुसार विकसित होऊ देते.

दस्तऐवज मॉडेल कॅटलॉग, वापरकर्ता प्रोफाइल आणि सामग्री व्यवस्थापन प्रणालींमध्ये चांगले कार्य करते जेथे प्रत्येक दस्तऐवज अद्वितीय असतो आणि कालांतराने बदलतो. Amazon DocumentDB (MongoDB शी सुसंगत) आणि MongoDB हे सामान्य दस्तऐवज डेटाबेस आहेत जे चपळ विकासासाठी कार्यात्मक आणि अंतर्ज्ञानी API प्रदान करतात.

आलेख डेटाबेस

आलेख डेटाबेस जटिल डेटाच्या संचासह कार्य करणारे अनुप्रयोग विकसित करणे आणि चालवणे सोपे करतात. आलेख डेटाबेस वापरण्याची विशिष्ट उदाहरणे म्हणजे सामाजिक नेटवर्क, शिफारस सेवा, फसवणूक शोध प्रणाली आणि ज्ञान आलेख. Amazon Neptune ही संपूर्णपणे व्यवस्थापित आलेख डेटाबेस सेवा आहे. नेपच्यून प्रॉपर्टी ग्राफ आणि रिसोर्स वर्णन फ्रेमवर्क (RDF) चे समर्थन करते, निवडण्यासाठी दोन ग्राफ API प्रदान करते: TinkerPop आणि RDF/SPARQL. सामान्य आलेख डेटाबेसमध्ये Neo4j आणि Giraph यांचा समावेश होतो.

मेमरीमध्ये डीबी

बर्‍याचदा गेमिंग आणि जाहिरात अनुप्रयोग लीडरबोर्ड, सत्र संचयन आणि रीअल-टाइम विश्लेषणे वापरतात. अशा क्षमतेसाठी काही मायक्रोसेकंदांमध्ये प्रतिसाद आवश्यक असतो, तर रहदारीमध्ये तीक्ष्ण वाढ कधीही शक्य असते.

Redis साठी Amazon MemoryDB ही Redis-सुसंगत, विश्वासार्ह इन-मेमरी डेटाबेस सेवा आहे जी वाचनाची विलंबता मिलीसेकंदांपर्यंत कमी करते आणि एकाधिक उपलब्धता झोनमध्ये टिकाऊपणा प्रदान करते. MemoryDB हे अति-उच्च कार्यप्रदर्शन आणि विश्वासार्हतेसाठी उद्देशाने तयार केलेले आहे, त्यामुळे आधुनिक मायक्रोसर्व्हिस-आधारित अनुप्रयोगांसाठी ते प्राथमिक डेटाबेस म्हणून वापरले जाऊ शकते.

Amazon ElastiCache ही पूर्णतः व्यवस्थापित केलेली Redis आणि Memcached सुसंगत इन-मेमरी कॅशिंग सेवा आहे जी कमी विलंबता, उच्च थ्रूपुट वर्कलोडसाठी सेवा देते. टिंडरसारखे क्लायंट ज्यांना रिअल टाइममध्ये प्रतिसाद देण्यासाठी त्यांच्या अॅप्सची आवश्यकता असते ते डिस्क स्टोरेज सिस्टमऐवजी मेमरी वापरत आहेत. उद्देशाने तयार केलेल्या डेटा वेअरहाऊसचे दुसरे उदाहरण म्हणजे Amazon DynamoDB Accelerator (DAX). DAX मुळे DynamoDB ला अनेक वेळा जलद डेटा वाचता येतो.

डेटाबेस शोधा

विकासकांना समस्यानिवारण करणे आणि त्यांचे निराकरण करणे सोपे करण्यासाठी अनेक अनुप्रयोग लॉग व्युत्पन्न करतात. Amazon OpenSearch ही रीअल-टाइम व्हिज्युअलायझेशन आणि सेमी-स्ट्रक्चर्ड लॉग आणि मेट्रिक्स अनुक्रमित, एकत्रित आणि शोधून स्वयंचलितपणे व्युत्पन्न केलेल्या डेटा प्रवाहांच्या विश्लेषणासाठी एक उद्देश-निर्मित सेवा आहे.

याव्यतिरिक्त, Amazon OpenSearch ही एक शक्तिशाली, उच्च-कार्यक्षमता पूर्ण-मजकूर शोध सेवा आहे. Expedia 150 पेक्षा जास्त Amazon OpenSearch सेवा डोमेन, 30 TB डेटा आणि 30 अब्ज दस्तऐवज विविध मिशन-गंभीर वापर प्रकरणांसाठी, ऑपरेशनल मॉनिटरिंग आणि ट्रबलशूटिंगपासून ते वितरित ऍप्लिकेशन स्टॅक ट्रॅकिंग आणि खर्च ऑप्टिमायझेशनपर्यंत वापरते.

1.4 SQL (रिलेशनल) आणि NoSQL (नॉन-रिलेशनल) डेटाबेसची तुलना

NoSQL चे बरेच फायदे आहेत, त्यामुळे तुम्हाला किमान हे माहित असले पाहिजे की तुम्हाला आवश्यक असलेले साधन ते स्वतः लिहिण्यापूर्वी आधीच अस्तित्वात आहे. खाली मी NoSQL आणि SQL डेटाबेसची तुलना देईन:

योग्य वर्कलोड

रिलेशनल डेटाबेसेस ट्रान्झॅक्शनल आणि अत्यंत सुसंगत रिअल-टाइम ट्रान्झॅक्शन प्रोसेसिंग (OLTP) ऍप्लिकेशन्ससाठी डिझाइन केले आहेत आणि रीअल-टाइम विश्लेषणात्मक प्रक्रियेसाठी (OLAP) योग्य आहेत.

NoSQL डेटाबेसेस कमी लेटन्सी ऍप्लिकेशन्ससह डेटा ऍक्सेस पॅटर्नच्या श्रेणीसह कार्य करण्यासाठी डिझाइन केलेले आहेत. NoSQL शोध डेटाबेस अर्ध-संरचित डेटाच्या विश्लेषणासाठी डिझाइन केले आहेत.

डेटा मॉडेल

रिलेशनल मॉडेल डेटाचे सामान्यीकरण करते आणि पंक्ती आणि स्तंभ असलेल्या सारण्यांमध्ये रूपांतरित करते. स्कीमा टेबल, पंक्ती, स्तंभ, अनुक्रमणिका, सारण्यांमधील संबंध आणि इतर डेटाबेस घटकांची कठोरपणे व्याख्या करते. असा डेटाबेस टेबलमधील संबंधांमधील संदर्भ डेटाची अखंडता सुनिश्चित करतो.

NoSQL डेटाबेस विविध प्रकारचे डेटा मॉडेल प्रदान करतात जसे की की-व्हॅल्यू जोड्या, दस्तऐवज आणि आलेख जे उच्च कार्यप्रदर्शन आणि स्केलेबिलिटीसाठी ऑप्टिमाइझ केले जातात.

ACID गुणधर्म

रिलेशनल डेटाबेस ACID गुणधर्मांचा एक संच प्रदान करतात: अणु, सुसंगतता, अलगाव, विश्वसनीयता.

  • Atomicity साठी आवश्यक आहे की व्यवहार संपूर्णपणे अंमलात आणला जावा किंवा अजिबात नाही.
  • सुसंगतता म्हणजे व्यवहार पूर्ण होताच, डेटा डेटाबेस स्कीमाशी सुसंगत असणे आवश्यक आहे.
  • पृथक्करणासाठी समांतर व्यवहार एकमेकांपासून वेगळे चालणे आवश्यक आहे.
  • विश्वासार्हता म्हणजे अनपेक्षित सिस्टम अयशस्वी होणे किंवा पॉवर आउटेज नंतर शेवटच्या जतन केलेल्या स्थितीत पुनर्प्राप्त करण्याची क्षमता.

NoSQL डेटाबेस अनेकदा तडजोड देतात, ACID गुणधर्मांच्या कठोर आवश्यकतांना अधिक लवचिक डेटा मॉडेलच्या बाजूने आराम देतात जे क्षैतिज स्केलिंगसाठी परवानगी देतात. हे NoSQL ला उच्च-बँडविड्थ, कमी-विलंब वापर प्रकरणांसाठी एक उत्तम पर्याय बनवते ज्यांना एका प्रसंगापेक्षा क्षैतिज स्केलिंग आवश्यक आहे.

कामगिरी

कार्यप्रदर्शन प्रामुख्याने डिस्क उपप्रणालीवर अवलंबून असते. जास्तीत जास्त कामगिरीसाठी क्वेरी, अनुक्रमणिका आणि सारणी रचना यांचे ऑप्टिमायझेशन आवश्यक असते.

कार्यप्रदर्शन सामान्यत: अंतर्निहित हार्डवेअर क्लस्टर, नेटवर्क लेटन्सी आणि कॉलिंग ऍप्लिकेशनच्या आकारावर अवलंबून असते.

स्केलिंग

रिलेशनल डेटाबेस सामान्यत: हार्डवेअरची संगणकीय शक्ती वाढवून किंवा वाचलेल्या वर्कलोड्ससाठी वेगळ्या प्रती जोडून स्केल करतात.

NoSQL डेटाबेस सामान्यत: वितरित आर्किटेक्चरवर आधारित स्केलेबल ऍक्सेस पॅटर्नद्वारे उच्च विभाज्यतेचे समर्थन करतात. हे थ्रुपुट सुधारते आणि जवळजवळ अमर्यादित प्रमाणात सातत्यपूर्ण कार्यप्रदर्शन प्रदान करते.

API

लेखन आणि डेटा पुनर्प्राप्त करण्यासाठी विनंत्या SQL मध्ये लिहिलेल्या आहेत. या क्वेरी रिलेशनल डेटाबेसद्वारे पार्स केल्या जातात आणि अंमलात आणल्या जातात.

ऑब्जेक्ट-ओरिएंटेड API अनुप्रयोग विकसकांना डेटा संरचना सहजपणे लिहू आणि पुनर्प्राप्त करू देतात. विभाजन की वापरून, अॅप्लिकेशन्स की-व्हॅल्यू जोड्या, कॉलम सेट्स किंवा सेमी-स्ट्रक्चर्ड दस्तऐवज शोधू शकतात ज्यामध्ये सिरीयल ऑब्जेक्ट्स आणि अॅप्लिकेशन विशेषता आहेत.