डीबीएम (कंप्यूटिंग): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Key-value database management system}}
{{Short description|Key-value database management system}}
{{About|the family of database engines||DBM (disambiguation){{!}}DBM}}
{{About|डेटाबेस इंजनों का समूह ||डीबीएम (बहुविकल्पी){{!}}डीबीएम}}


कंप्यूटिंग में, डीबीएम [[लाइब्रेरी (कंप्यूटिंग)]] और फ़ाइल प्रारूप है जो डेटा तक तेज़, -कुंजी पहुंच प्रदान करता है। मूल [[यूनिक्स]] से [[कुंजी-मूल्य डेटाबेस]], ''dbm'' [[NoSQL]] प्रणाली का प्रारंभिक उदाहरण है।<ref name="2007-kew-apache"/><ref name="2001-hazel-exim"/><ref name="2001-ladd-odonell-xhtml"/>
कंप्यूटिंग में, '''डीबीएम''' [[लाइब्रेरी (कंप्यूटिंग)]] और फ़ाइल का प्रारूप है जो की  डेटा तक तीव्र , एकल-कुंजी तक  पहुंच प्रदान करता है। और मूल [[यूनिक्स]] से [[कुंजी-मूल्य डेटाबेस]], ''डीबीएम'' [[NoSQL|नोएसक्यूएल]] प्रणाली का प्रारंभिक उदाहरण है।<ref name="2007-kew-apache"/><ref name="2001-hazel-exim"/><ref name="2001-ladd-odonell-xhtml"/>  
==इतिहास==
==इतिहास==
मूल डीबीएम लाइब्रेरी और फ़ाइल प्रारूप साधारण [[डेटाबेस इंजन]] था, जो मूल रूप से [[केन थॉम्पसन]] द्वारा लिखा गया था और 1979 में एटी एंड टी द्वारा जारी किया गया था। नाम डेटाबेस मैनेजर के लिए तीन अक्षरों का संक्षिप्त नाम है, और एपीआई और सुविधाओं के साथ डेटाबेस इंजन के परिवार को भी संदर्भित कर सकता है। मूल डीबीएम से प्राप्त।
मूल डीबीएम लाइब्रेरी और फ़ाइल प्रारूप साधारण [[डेटाबेस इंजन]] था, जो मूल रूप से [[केन थॉम्पसन]] द्वारा लिखा गया था और 1979 में एटी एंड टी द्वारा प्राप्त किया गया था। और यह  नाम डेटाबेस मैनेजर के लिए तीन अक्षरों का संक्षिप्त नाम है, और एपीआई और सुविधाओं के साथ डेटाबेस इंजन के समूह  को भी संदर्भित कर सकता है। जो की मूल डीबीएम द्वारा प्राप्त की जाती  है ।


डीबीएम लाइब्रेरी निश्चित आकार की बकेट में कुंजी ( [[प्राथमिक कुंजी]]) के उपयोग से मनमाना डेटा संग्रहीत करती है और कुंजी द्वारा डेटा की तेजी से पुनर्प्राप्ति को सक्षम करने के लिए [[हैश फंकशन]] तकनीकों का उपयोग करती है।
इस प्रकार  से डीबीएम लाइब्रेरी निश्चित आकार की बकेट में एकल कुंजी ( [[प्राथमिक कुंजी]]) के उपयोग से इच्छानुसार डेटा संग्रहीत करती है और कुंजी द्वारा डेटा की तीव्रता  से पुनर्प्राप्ति को सक्षम करने के लिए [[हैश फंकशन]] विधियों  का उपयोग करती है।


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


डीबीएम लाइब्रेरी और इसके डेरिवेटिव प्री-[[ संबंध का डेटाबेस | संबंध का डेटाबेस]] हैं{{snd}} वे सहयोगी सरणियों का प्रबंधन करते हैं, जिन्हें ऑन-डिस्क [[हैश तालिका]]ओं के रूप में कार्यान्वित किया जाता है। व्यवहार में, वे कुंजी द्वारा ्सेस किए गए हाई-स्पीड स्टोरेज के लिए अधिक व्यावहारिक समाधान पेश कर सकते हैं, क्योंकि उन्हें कनेक्ट करने और क्वेरी तैयार करने के ओवरहेड की आवश्यकता नहीं होती है। यह इस तथ्य से संतुलित है कि उन्हें आम तौर पर समय में केवल ही प्रक्रिया द्वारा लिखने के लिए खोला जा सकता है। एजेंट [[डेमॉन (कंप्यूटर सॉफ्टवेयर)]] कई प्रक्रियाओं से अनुरोधों को संभाल सकता है, लेकिन अंतर-प्रक्रिया संचार ओवरहेड का परिचय देता है।
चूंकि डीबीएम लाइब्रेरी और इसके डेरिवेटिव [[ संबंध का डेटाबेस |पूर्व-संबंधपरक डेटाबेस]] हैं{{snd}} वे सहयोगी सरणियों का प्रबंधन करते हैं, जिन्हें ऑन-डिस्क [[हैश तालिका]]ओं के रूप में कार्यान्वित किया जाता है। व्यवहार में, वे कुंजी द्वारा एक्सेस किए गए हाई-स्पीड स्टोरेज के लिए अधिक व्यावहारिक समाधान प्रस्तुत  करती  हैं, क्योंकि उन्हें कनेक्ट करने और क्वेरी तैयार करने के ओवरहेड की आवश्यकता नहीं होती है। यह इस तथ्य से संतुलित है कि उन्हें सामान्यता  समय में केवल ही प्रक्रिया द्वारा लिखने के लिए खोला जा सकता है। इस प्रकार से एजेंट [[डेमॉन (कंप्यूटर सॉफ्टवेयर)]] अनेक  प्रक्रियाओं से अनुरोधों को संभाल सकता है, किन्तु अंतर-प्रक्रिया संचार ओवरहेड का परिचय देता है।


== कार्यान्वयन ==
== कार्यान्वयन ==
मूल AT&T dbm लाइब्रेरी को इसके कई उत्तराधिकारी कार्यान्वयनों द्वारा प्रतिस्थापित कर दिया गया है। उल्लेखनीय उदाहरणों में शामिल हैं:<ref name="2001-ladd-odonell-xhtml"/>* एनडीबीएम (नया डीबीएम), कुछ नई सुविधाओं के साथ मूल डीबीएम पर आधारित।
इस प्रकार से मूल एटी&टी डीबीएम लाइब्रेरी को इसके अनेक  उत्तराधिकारी कार्यान्वयनों द्वारा प्रतिस्थापित कर दिया गया है। उल्लेखनीय उदाहरणों में सम्मिलित  हैं:<ref name="2001-ladd-odonell-xhtml"/>
* [https://www.gnu.org.ua/software/gdbm/gdbm.html GDBM] ([[GNU]] dbm), ndbm सुविधाओं और अपने स्वयं के इंटरफ़ेस को लागू करने वाली लाइब्रेरी का GNU पुनर्लेखन। डेटा स्थिरता की गारंटी के लिए क्रैश टॉलरेंस जैसी नई सुविधाएँ भी प्रदान करता है।<ref>{{cite web |title=दुर्घटना सहनशीलता|website=GDBM manual |url=https://www.gnu.org.ua/software/gdbm/manual/Crash-Tolerance.html |access-date=3 October 2021}}</ref><ref>{{cite web |title=मूल NoSQL की-वैल्यू स्टोर को क्रैशप्रूफ़ करना|url=https://queue.acm.org/detail.cfm?id=3487353 |access-date=3 October 2021}}</ref>
* एनडीबीएम (नया डीबीएम), कुछ नई सुविधाओं के साथ मूल डीबीएम पर आधारित है ।
* एसडीबीएम (छोटा डीबीएम), डीबीएम का सार्वजनिक डोमेन पुनर्लेखन। यह [[पर्ल]] के लिए मानक वितरण का हिस्सा है और रूबी_(प्रोग्रामिंग_लैंग्वेज) के लिए बाहरी लाइब्रेरी के रूप में उपलब्ध है।<ref>{{cite web |last1=yigit |first1=ozan |title=sdbm.bun|website=cse.yorku.ca |url=http://www.cse.yorku.ca/~oz/sdbm.bun|access-date=8 May 2019}}</ref><ref>{{cite web |title=रूबी एसडीबीएम लाइब्रेरी|website=SDBM on Github |url=https://github.com/ruby/sdbm |quote=Note that Ruby used to ship SDBM in the standard distribution up until version 2.7, after which it was made available only as an external library, similarly to the DBM and GDBM libraries, removed from the standard library in Ruby 3.1.}}</ref>
*[https://www.gnu.org.ua/software/gdbm/gdbm.html जीडीबीएम] (जीएनयू डीबीएम ), एनडीबीएम सुविधाओं और अपने स्वयं के इंटरफ़ेस को प्रयुक्त  करने वाली लाइब्रेरी का जीएनयू पुनर्लेखन सम्मिलत है । डेटा स्थिरता की प्रमाण  के लिए क्रैश टॉलरेंस जैसी नई सुविधाएँ भी प्रदान करता है।<ref>{{cite web |title=दुर्घटना सहनशीलता|website=GDBM manual |url=https://www.gnu.org.ua/software/gdbm/manual/Crash-Tolerance.html |access-date=3 October 2021}}</ref><ref>{{cite web |title=मूल NoSQL की-वैल्यू स्टोर को क्रैशप्रूफ़ करना|url=https://queue.acm.org/detail.cfm?id=3487353 |access-date=3 October 2021}}</ref>
* क्यूडीबीएम (क्विक डेटाबेस मैनेजर), उच्च प्रदर्शन वाला डीबीएम जिसमें टोक्यो/क्योटो कैबिनेट जैसी कई तकनीकों का इस्तेमाल किया गया है। कैबिनेट में जाने से पहले उसी लेखक द्वारा लिखा गया।<ref>{{cite web |date=2006 |title=QDBM: Quick Database Manager |website=fallabs.com |url=https://fallabs.com/qdbm/ |access-date=2020-02-27 |archive-date=2020-02-27 |archive-url=https://web.archive.org/web/20200227064151/https://fallabs.com/qdbm/ |url-status=dead }}</ref>
* एसडीबीएम (लघु  डीबीएम), डीबीएम का सार्वजनिक डोमेन पुनर्लेखन है । यह [[पर्ल]] के लिए मानक वितरण का भाग है और रूबी (प्रोग्रामिंग लैंग्वेज) के लिए बाहरी लाइब्रेरी के रूप में उपलब्ध है।<ref>{{cite web |last1=yigit |first1=ozan |title=sdbm.bun|website=cse.yorku.ca |url=http://www.cse.yorku.ca/~oz/sdbm.bun|access-date=8 May 2019}}</ref><ref>{{cite web |title=रूबी एसडीबीएम लाइब्रेरी|website=SDBM on Github |url=https://github.com/ruby/sdbm |quote=Note that Ruby used to ship SDBM in the standard distribution up until version 2.7, after which it was made available only as an external library, similarly to the DBM and GDBM libraries, removed from the standard library in Ruby 3.1.}}</ref>
* टीडीबी (ट्रिवियल डेटाबेस), [[सांबा (सॉफ्टवेयर)]] द्वारा उपयोग किया जाने वाला सरल डेटाबेस जो कई लेखकों का समर्थन करता है। gdbm-आधारित API है।<ref>{{cite web |title=tdb: Main Page |website=tdb.samba.org |url=https://tdb.samba.org/}}</ref>
* क्यूडीबीएम (क्विक डेटाबेस मैनेजर), उच्च प्रदर्शन वाला डीबीएम जिसमें टोक्यो/क्योटो कैबिनेट जैसी अनेक  विधियों  का उपयोग  किया गया है।और  कैबिनेट में जाने से पहले उसी लेखक द्वारा लिखा गया था ।<ref>{{cite web |date=2006 |title=QDBM: Quick Database Manager |website=fallabs.com |url=https://fallabs.com/qdbm/ |access-date=2020-02-27 |archive-date=2020-02-27 |archive-url=https://web.archive.org/web/20200227064151/https://fallabs.com/qdbm/ |url-status=dead }}</ref>
* [[बर्कले डीबी]], 1991 में [[बर्कले सॉफ्टवेयर वितरण]] पर एटी एंड टी यूनिक्स कॉपीराइट से बचने के लिए [[स्लीपीकैट सॉफ्टवेयर]] (अब [[ओरेकल कॉर्पोरेशन]]) द्वारा एनडीबीएम का प्रतिस्थापन किया गया। इसमें समानता, लेनदेन नियंत्रण, हैशिंग और बी ट्री स्टोरेज जैसे कई ्सटेंशन शामिल हैं।
* टीडीबी (ट्रिवियल डेटाबेस), [[सांबा (सॉफ्टवेयर)]] द्वारा उपयोग किया जाने वाला सरल डेटाबेस जो की  अनेक  लेखकों का समर्थन करता है। किन्तु जीडीबीएम-आधारित एपीआई है।<ref>{{cite web |title=tdb: Main Page |website=tdb.samba.org |url=https://tdb.samba.org/}}</ref>
* [[लाइटनिंग मेमोरी-मैप्ड डेटाबेस]]: [[लिखने पर नकल]] [[मेमोरी-मैप की गई फ़ाइल]] | बर्कले-शैली एपीआई के साथ [[सी (प्रोग्रामिंग भाषा)]] में मेमोरी-मैप्ड [[ बी+ पेड़ |बी+ पेड़]] कार्यान्वयन।
* [[बर्कले डीबी]], द्वारा 1991 में [[बर्कले सॉफ्टवेयर वितरण]] पर एटी एंड टी यूनिक्स कॉपीराइट से बचने के लिए [[स्लीपीकैट सॉफ्टवेयर]] (अब [[ओरेकल कॉर्पोरेशन]]) द्वारा एनडीबीएम का प्रतिस्थापन किया गया है । इसमें समानता, लेनदेन नियंत्रण, हैशिंग और बी ट्री स्टोरेज जैसे कई एक्सटेंशन  भी सम्मिलित  हैं।
* [[लाइटनिंग मेमोरी-मैप्ड डेटाबेस]]: [[लिखने पर नकल|लिखने पर कॉपी]] [[मेमोरी-मैप की गई फ़ाइल|मेमोरी-मैप]] [[ बी+ पेड़ |बी+ ट्री]] बर्कले-शैली एपीआई के साथ [[सी (प्रोग्रामिंग भाषा)]] में कार्यान्वयन आदि ।


निम्नलिखित डेटाबेस डीबीएम-प्रेरित हैं, लेकिन वे सीधे डीबीएम इंटरफ़ेस प्रदान नहीं करते हैं, भले ही इसे लपेटना मामूली होगा:
निम्नलिखित डेटाबेस डीबीएम-प्रेरित हैं, किन्तु वे सीधे डीबीएम इंटरफ़ेस प्रदान नहीं करते हैं, तथापि  यह सामान्य रूप से साधारण होते है:
* [[सीडीबी (सॉफ्टवेयर)]] (स्थिर डेटाबेस), डैनियल जे. बर्नस्टीन द्वारा डेटाबेस, डेटाबेस फ़ाइलें केवल बनाई और पढ़ी जा सकती हैं, लेकिन कभी संशोधित नहीं की जा सकतीं
* [[सीडीबी (सॉफ्टवेयर)]] (स्थिर डेटाबेस), डैनियल जे. बर्नस्टीन द्वारा डेटाबेस, डेटाबेस फ़ाइलो को  केवल बनाया और पढ़ा  जा सकता  हैं, किन्तु कभी संशोधित नहीं की जा सकतीं है
* [[Tkrzw]], क्योटो कैबिनेट और टोक्यो कैबिनेट का अपाचे 2.0 लाइसेंस प्राप्त उत्तराधिकारी
* [[Tkrzw]], क्योटो कैबिनेट और टोक्यो कैबिनेट का अपाचे 2.0 लाइसेंस प्राप्त उत्तराधिकारी है।
* [[वायर्डटाइगर]]: पारंपरिक पंक्ति-उन्मुख और स्तंभ-उन्मुख भंडारण वाला डेटाबेस।
* [[वायर्डटाइगर]]: पारंपरिक पंक्ति-उन्मुख और स्तंभ-उन्मुख संगृहीत  वाला डेटाबेस है।


==उपलब्धता==
==उपलब्धता==
2001 तक, डीबीएम का एनडीबीएम कार्यान्वयन सोलारिस और आईआरआई ्स पर मानक था, जबकि जीडीबीएम [[लिनक्स]] पर सर्वव्यापी है। बर्कले डीबी कार्यान्वयन कुछ मुफ्त ऑपरेटिंग सिस्टम पर मानक थे।<ref name="2001-hazel-exim"/><ref name=fuzz/>2013 में बर्कले डीबी की लाइसेंसिंग को [[जीएनयू एजीपीएल]] में बदलने के बाद, [[डेबियन]] जैसी परियोजनाएं एलएमडीबी में स्थानांतरित हो गई हैं।<ref name=deb>{{cite mailing list |last=Surý |first=Ondřej |date=19 June 2014 |title=New project goal: Get rid of Berkeley DB (post jessie) |mailing-list=debian-devel |publisher=[[Debian]] |url=https://lists.debian.org/debian-devel/2014/06/msg00338.html}}</ref>
इस प्रकार से 2001 तक, डीबीएम का एनडीबीएम कार्यान्वयन सोलारिस और आईआरआईएक्स  पर मानक था, जबकि जीडीबीएम [[लिनक्स]] पर सर्वव्यापी है। किन्तु  बर्कले डीबी कार्यान्वयन कुछ फ्री  ऑपरेटिंग सिस्टम पर मानक थे।<ref name="2001-hazel-exim"/><ref name=fuzz/> चूंकि 2013 में बर्कले डीबी की लाइसेंसिंग को [[जीएनयू एजीपीएल]] में परिवर्तन  के पश्चात् , [[डेबियन]] जैसी परियोजनाएं एलएमडीबी में स्थानांतरित हो गई हैं।<ref name=deb>{{cite mailing list |last=Surý |first=Ondřej |date=19 June 2014 |title=New project goal: Get rid of Berkeley DB (post jessie) |mailing-list=debian-devel |publisher=[[Debian]] |url=https://lists.debian.org/debian-devel/2014/06/msg00338.html}}</ref>
== विश्वसनीयता ==
== विश्वसनीयता ==
जब भ्रष्ट या अमान्य डेटाबेस फ़ाइलों की बात आती है तो कई DBM-फ़ैमिली डेटाबेस के विरुद्ध 2018 [[अमेरिकन फ़ज़ी लोप (फ़ज़र)]]फ़ज़र) [[फ़ज़िंग]] परीक्षण ने कार्यान्वयन में कई समस्याओं को उजागर किया। केवल डेनियल जे. बर्नस्टीन के सीडीबी (सॉफ़्टवेयर) में कोई क्रैश नहीं दिखा। जीडीबीएम, टीडीबी और एलएमडीबी के लेखकों ने तुरंत प्रतिक्रिया दी। अन्य मुद्दों की भारी संख्या के कारण बर्कले डीबी पिछड़ गया;<ref name=fuzz>{{cite web |last=Debroux |first=Lionel |date=16 Jun 2018 |title=ओएसएस-सुरक्षा - डीबीएम-प्रकार के डेटाबेस के साथ मज़ा...|website=openwall.com |url=https://www.openwall.com/lists/oss-security/2018/06/17/1}}</ref> ये सुधार ओपन-सोर्स सॉफ़्टवेयर उपयोगकर्ताओं के लिए अप्रासंगिक होंगे क्योंकि लाइसेंसिंग परिवर्तन के कारण उन्हें पुराने संस्करण पर वापस लॉक कर दिया जाएगा।<ref name=deb/>
इसके अतिरिक्त जब भ्रष्ट या अमान्य डेटाबेस फ़ाइलों पर विचार करते  है तो कई डीबीएम-फ़ैमिली डेटाबेस के विरुद्ध 2018 [[अमेरिकन फ़ज़ी लोप (फ़ज़र)]]फ़ज़र) [[फ़ज़िंग]] परीक्षण ने कार्यान्वयन में अनेक समस्याओं को उजागर किया है । केवल डेनियल जे. बर्नस्टीन के सीडीबी (सॉफ़्टवेयर) में कोई क्रैश नहीं दिखा। अतः जीडीबीएम, टीडीबी और एलएमडीबी के लेखकों द्वारा तुरंत प्रतिक्रिया दी गयी है । की अन्य नियमो  की भारी संख्या के कारण बर्कले डीबी पिछड़ गया है ;<ref name=fuzz>{{cite web |last=Debroux |first=Lionel |date=16 Jun 2018 |title=ओएसएस-सुरक्षा - डीबीएम-प्रकार के डेटाबेस के साथ मज़ा...|website=openwall.com |url=https://www.openwall.com/lists/oss-security/2018/06/17/1}}</ref> अर्थात ये सुधार ओपन-सोर्स सॉफ़्टवेयर उपयोगकर्ताओं के लिए अप्रासंगिक होंगे क्योंकि लाइसेंसिंग परिवर्तन के कारण उन्हें प्राचीन  संस्करण पर वापस लॉक कर दिया जाता है ।<ref name=deb/>
== यह भी देखें ==
== यह भी देखें ==
* [[एंबेडेड डेटाबेस]]
* [[एंबेडेड डेटाबेस]]
* [[फ़्लैट फ़ाइल डेटाबेस]]
* [[फ़्लैट फ़ाइल डेटाबेस]]
* [[मैं हूँ]]
* [[मैं हूँ|आईएसएएम]]  
* कुंजी-मूल्य डेटाबेस
* कुंजी-मान डेटाबेस
* [[मोबाइल डेटाबेस]]
* [[मोबाइल डेटाबेस]]
* नोएसक्यूएल
* नोएसक्यूएल
Line 52: Line 53:
*{{cite book |last=Kew |first=Nick |year=2007 |title=The Apache Modules Book: Application Development with Apache |publisher=Prentice Hall Professional |isbn=9780132704502 |url=https://books.google.com/books?id=HTo_AmTpQPMC&pg=PA80}}
*{{cite book |last=Kew |first=Nick |year=2007 |title=The Apache Modules Book: Application Development with Apache |publisher=Prentice Hall Professional |isbn=9780132704502 |url=https://books.google.com/books?id=HTo_AmTpQPMC&pg=PA80}}
{{refend}}
{{refend}}
*[https://apr.apache.org/docs/apr-util/0.9/group__APR__Util__DBM__SDBM.html SDBM library] @[[The Apache Software Foundation|Apache]]
*[https://apr.apache.org/docs/apr-util/0.9/group__APR__Util__DBM__SDBM.html Sडीबीएम library] @[[The Apache Software Foundation|Apache]]
*{{cite book |last1=Matthew |first1=Neil |last2=Stones |first2=Richard |year=2008 |title=Beginning Linux Programming |chapter=Databases |publisher=Wiley |url=https://books.google.com/books?id=vvuzDziOMeMC&pg=PT270}}
*{{cite book |last1=Matthew |first1=Neil |last2=Stones |first2=Richard |year=2008 |title=Beginning Linux Programming |chapter=Databases |publisher=Wiley |url=https://books.google.com/books?id=vvuzDziOMeMC&pg=PT270}}
*{{cite web |last1=Olson |first1=Michael A. |last2=Bostic |first2=Keith |last3=Seltzer |first3=Margo |year=1999 |title=Berkeley DB |work=Proceedings of the FREENIX Track:1999 USENIX Annual Technical Conference |url=http://www.usenix.org/events/usenix99/full_papers/olson/olson.pdf}}
*{{cite web |last1=Olson |first1=Michael A. |last2=Bostic |first2=Keith |last3=Seltzer |first3=Margo |year=1999 |title=Berkeley DB |work=Proceedings of the FREENIX Track:1999 USENIX Annual Technical Conference |url=http://www.usenix.org/events/usenix99/full_papers/olson/olson.pdf}}

Revision as of 18:40, 18 July 2023

कंप्यूटिंग में, डीबीएम लाइब्रेरी (कंप्यूटिंग) और फ़ाइल का प्रारूप है जो की डेटा तक तीव्र , एकल-कुंजी तक पहुंच प्रदान करता है। और मूल यूनिक्स से कुंजी-मूल्य डेटाबेस, डीबीएम नोएसक्यूएल प्रणाली का प्रारंभिक उदाहरण है।[1][2][3]

इतिहास

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

इस प्रकार से डीबीएम लाइब्रेरी निश्चित आकार की बकेट में एकल कुंजी ( प्राथमिक कुंजी) के उपयोग से इच्छानुसार डेटा संग्रहीत करती है और कुंजी द्वारा डेटा की तीव्रता से पुनर्प्राप्ति को सक्षम करने के लिए हैश फंकशन विधियों का उपयोग करती है।

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

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

कार्यान्वयन

इस प्रकार से मूल एटी&टी डीबीएम लाइब्रेरी को इसके अनेक उत्तराधिकारी कार्यान्वयनों द्वारा प्रतिस्थापित कर दिया गया है। उल्लेखनीय उदाहरणों में सम्मिलित हैं:[3]

  • एनडीबीएम (नया डीबीएम), कुछ नई सुविधाओं के साथ मूल डीबीएम पर आधारित है ।
  • जीडीबीएम (जीएनयू डीबीएम ), एनडीबीएम सुविधाओं और अपने स्वयं के इंटरफ़ेस को प्रयुक्त करने वाली लाइब्रेरी का जीएनयू पुनर्लेखन सम्मिलत है । डेटा स्थिरता की प्रमाण के लिए क्रैश टॉलरेंस जैसी नई सुविधाएँ भी प्रदान करता है।[4][5]
  • एसडीबीएम (लघु डीबीएम), डीबीएम का सार्वजनिक डोमेन पुनर्लेखन है । यह पर्ल के लिए मानक वितरण का भाग है और रूबी (प्रोग्रामिंग लैंग्वेज) के लिए बाहरी लाइब्रेरी के रूप में उपलब्ध है।[6][7]
  • क्यूडीबीएम (क्विक डेटाबेस मैनेजर), उच्च प्रदर्शन वाला डीबीएम जिसमें टोक्यो/क्योटो कैबिनेट जैसी अनेक विधियों का उपयोग किया गया है।और कैबिनेट में जाने से पहले उसी लेखक द्वारा लिखा गया था ।[8]
  • टीडीबी (ट्रिवियल डेटाबेस), सांबा (सॉफ्टवेयर) द्वारा उपयोग किया जाने वाला सरल डेटाबेस जो की अनेक लेखकों का समर्थन करता है। किन्तु जीडीबीएम-आधारित एपीआई है।[9]
  • बर्कले डीबी, द्वारा 1991 में बर्कले सॉफ्टवेयर वितरण पर एटी एंड टी यूनिक्स कॉपीराइट से बचने के लिए स्लीपीकैट सॉफ्टवेयर (अब ओरेकल कॉर्पोरेशन) द्वारा एनडीबीएम का प्रतिस्थापन किया गया है । इसमें समानता, लेनदेन नियंत्रण, हैशिंग और बी ट्री स्टोरेज जैसे कई एक्सटेंशन भी सम्मिलित हैं।
  • लाइटनिंग मेमोरी-मैप्ड डेटाबेस: लिखने पर कॉपी मेमोरी-मैप बी+ ट्री बर्कले-शैली एपीआई के साथ सी (प्रोग्रामिंग भाषा) में कार्यान्वयन आदि ।

निम्नलिखित डेटाबेस डीबीएम-प्रेरित हैं, किन्तु वे सीधे डीबीएम इंटरफ़ेस प्रदान नहीं करते हैं, तथापि यह सामान्य रूप से साधारण होते है:

  • सीडीबी (सॉफ्टवेयर) (स्थिर डेटाबेस), डैनियल जे. बर्नस्टीन द्वारा डेटाबेस, डेटाबेस फ़ाइलो को केवल बनाया और पढ़ा जा सकता हैं, किन्तु कभी संशोधित नहीं की जा सकतीं है
  • Tkrzw, क्योटो कैबिनेट और टोक्यो कैबिनेट का अपाचे 2.0 लाइसेंस प्राप्त उत्तराधिकारी है।
  • वायर्डटाइगर: पारंपरिक पंक्ति-उन्मुख और स्तंभ-उन्मुख संगृहीत वाला डेटाबेस है।

उपलब्धता

इस प्रकार से 2001 तक, डीबीएम का एनडीबीएम कार्यान्वयन सोलारिस और आईआरआईएक्स पर मानक था, जबकि जीडीबीएम लिनक्स पर सर्वव्यापी है। किन्तु बर्कले डीबी कार्यान्वयन कुछ फ्री ऑपरेटिंग सिस्टम पर मानक थे।[2][10] चूंकि 2013 में बर्कले डीबी की लाइसेंसिंग को जीएनयू एजीपीएल में परिवर्तन के पश्चात् , डेबियन जैसी परियोजनाएं एलएमडीबी में स्थानांतरित हो गई हैं।[11]

विश्वसनीयता

इसके अतिरिक्त जब भ्रष्ट या अमान्य डेटाबेस फ़ाइलों पर विचार करते है तो कई डीबीएम-फ़ैमिली डेटाबेस के विरुद्ध 2018 अमेरिकन फ़ज़ी लोप (फ़ज़र)फ़ज़र) फ़ज़िंग परीक्षण ने कार्यान्वयन में अनेक समस्याओं को उजागर किया है । केवल डेनियल जे. बर्नस्टीन के सीडीबी (सॉफ़्टवेयर) में कोई क्रैश नहीं दिखा। अतः जीडीबीएम, टीडीबी और एलएमडीबी के लेखकों द्वारा तुरंत प्रतिक्रिया दी गयी है । की अन्य नियमो की भारी संख्या के कारण बर्कले डीबी पिछड़ गया है ;[10] अर्थात ये सुधार ओपन-सोर्स सॉफ़्टवेयर उपयोगकर्ताओं के लिए अप्रासंगिक होंगे क्योंकि लाइसेंसिंग परिवर्तन के कारण उन्हें प्राचीन संस्करण पर वापस लॉक कर दिया जाता है ।[11]

यह भी देखें

संदर्भ

  1. Kew 2007, p. 80: "DBMs have been with us since the early days of computing, when the need for fast keyed lookups was recognized. The original DBM is a UNIX-based library and file format for fast, highly-scalable keyed access to data. It was followed (in order) by NDBM ('new DBM'), GDBM ('GNU DBM'), and the Berkeley DB. This last is by far the most advanced, and the only DBM under active development today. Nevertheless, all of the DBMs from NDBM onward provide the same core functionality used by most programs, including Apache. A minimal-implementation SDBM is also bundled with APR, and is available to applications along with the other DBMs.
    Although NDBM is now old - like the city named New Town ('Neapolis') by the Greeks in about 600BC and still called Naples today - it remains the baseline DBM. NDBM was used by early Apache modules such as the Apache 1.x versions of mod_auth_dbm and mod_rewrite. Both GDBM and Berkeley DB provide NDBM emulations, and Linux distributions ship with one or other of these emulations in place of the 'real' NDBM, which is excluded for licensing reasons. Unfortunately, the various file formats are totally incompatible, and there are subtle differences in behaviour concerning database locking. These issues led a steady stream of Linux users to report problems with DBMs in Apache 1.x."
  2. 2.0 2.1 Hazel 2001, p. 500: "The most common [single-key] format is called DBM. Most modern versions of Unix have a DBM library installed as standard, though this is not true of some older systems. The two most common DBM libraries are ndbm (standard on Solaris and IRIX) and Berkeley DB Version 2 or 3 (standard on several free operating systems). Exim supports both of these, as well as the older Berkeley DB Version 1, gdbm, and tdb."
  3. 3.0 3.1 Ladd & O'Donnell 2001, pp. 823–824: "Most UNIX systems have some kind of DBM database. DBM is a set of library routines that manages data files consisting of key and value pairs. The DBM routines control how users enter and retrieve information from the database. Although it isn't the most powerful mechanism for storing information, using DBM is a faster method of retrieving information than using a flat file. Because most UNIX sites use one of the DBM libraries, the tools you need to store your information in a DBM database are readily available.
    Almost as many flavors of the DBM libraries exist as there are UNIX systems. Although most of these libraries are compatible with each other, they all basically work the same way...
    A list follows of some of the most popular DBM libraries available:
    • DBM - DBM stores the database in two files. The first has the extension .Pag and contains the bitmap. The second, which has the extension .Dir, contains the data.
    • NDBM - NDBM is much like DBM but with a few additional features; it was written to provide better storage and retrieval methods. Also, NDBM enables you to open many databases, unlike DBM, in which you are allowed to have only one database open within your script. Like DBM, NDBM stores its information in two files using the extensions .Pag and .Dir.
    • SDBM - SDBM comes with the Perl archive, which has been ported to many platforms. Therefore, you can use DBM databases as long as a version of Perl exists for your computer. SDBM was written to match the functions provided with NDBM, so portability of code shouldn't be a problem. Perl is available on just about all popular platforms.
    • GDBM - GDBM is the GNU version of the DBM family of database routines. GDBM also enables you to cache data, reducing the time that it takes to write to the database. The database has no size limit; its size depends completely on your system's resources. GDBM database files have the extension .Db. Unlike DBM and NDBM, both of which use two files, GDBM only uses one file.
    • Berkeley db - The Berkeley db expands on the original DBM routines significantly. The Berkeley db uses hashed tables the same as the other DBM databases, but the library also can create databases based on a sorted balanced binary tree (BTREE) and store information with a record line number (RECNO). The method that you use depends completely on how you want to store and retrieve the information from a database. Berkeley db creates only one file, which has no extension."
  4. "दुर्घटना सहनशीलता". GDBM manual. Retrieved 3 October 2021.
  5. "मूल NoSQL की-वैल्यू स्टोर को क्रैशप्रूफ़ करना". Retrieved 3 October 2021.
  6. yigit, ozan. "sdbm.bun". cse.yorku.ca. Retrieved 8 May 2019.
  7. "रूबी एसडीबीएम लाइब्रेरी". SDBM on Github. Note that Ruby used to ship SDBM in the standard distribution up until version 2.7, after which it was made available only as an external library, similarly to the DBM and GDBM libraries, removed from the standard library in Ruby 3.1.
  8. "QDBM: Quick Database Manager". fallabs.com. 2006. Archived from the original on 2020-02-27. Retrieved 2020-02-27.
  9. "tdb: Main Page". tdb.samba.org.
  10. 10.0 10.1 Debroux, Lionel (16 Jun 2018). "ओएसएस-सुरक्षा - डीबीएम-प्रकार के डेटाबेस के साथ मज़ा..." openwall.com.
  11. 11.0 11.1 Surý, Ondřej (19 June 2014). "New project goal: Get rid of Berkeley DB (post jessie)". debian-devel (Mailing list). Debian.

ग्रन्थसूची