पायथन के बिल्ट-इन लाइब्रेरी में dbm पैकेज DBM स्टाइल डेटाबेस के लिए डिक्शनरी जैसा इंटरफेस प्रदान करता है। dbm लाइब्रेरी एक सिंपल डेटाबेस इंजन है, जिसे केन थॉम्पसन द्वारा लिखा गया है। DBM का अर्थ डेटाबेस मैनेजर है, जिसका उपयोग UNIX ऑपरेटिंग सिस्टम द्वारा किया जाता है, लाइब्रेरी एक सिंगल की (प्राइमरी की) के उपयोग द्वारा मनमाने डेटा को फिक्स्ड-साइज बकेट में स्टोर करती है और डेटा को की द्वारा तेजी से पुनर्प्राप्त करने के लिए हैशिंग तकनीकों का उपयोग करती है।
dbm पैकेज में निम्नलिखित मॉड्यूल हैं -
dbm.ndbm मॉड्यूल यूनिक्स "(n)dbm" लाइब्रेरी का इंटरफेस प्रदान करता है। Dbm ऑब्जेक्ट्स डिक्शनरी की तरह व्यवहार करते हैं, जिसमें कीज़ और वैल्यूज़ को बाइट्स के रूप में स्टोर किया जाना चाहिए। मॉड्यूल items() और values() मेथड्स का समर्थन नहीं करता है।
dbm.dumb मॉड्यूल एक स्थायी डिक्शनरी-जैसा इंटरफेस प्रदान करता है जो पूरी तरह से पायथन में लिखा गया है। dbm.gnu जैसे अन्य मॉड्यूल के विपरीत किसी बाहरी लाइब्रेरी की आवश्यकता नहीं है। अन्य स्थायी मैपिंग की तरह, कीज़ और वैल्यूज़ हमेशा बाइट्स के रूप में स्टोर किए जाते हैं।
ये मॉड्यूल पायथन के shelve मॉड्यूल द्वारा आंतरिक रूप से उपयोग किए जाते हैं। शेल्व डेटाबेस के मामले में, उपयोगकर्ता-निर्दिष्ट डेटाबेस नाम में '.dir' पोस्टफिक्स होता है। dbm ऑब्जेक्ट का whichdb() फंक्शन बताता है कि वर्तमान पायथन इंस्टॉलेशन पर dbm का कौन सा कार्यान्वयन उपलब्ध है।
>>> dbm.whichdb('mydbm.db')
'dbm.dumb'
>>> db = dbm.open('mydbm.db','n')
>>> db['name'] = 'Rajani Deshmukh'
>>> db['address'] = 'Shivajinagar Pune'
>>> db['PIN'] = '431001'
>>> db.close()
open() फंक्शन इन फ्लैग्स के साथ मोड की अनुमति देता है -
| मान | अर्थ |
|---|---|
| 'r' | केवल पढ़ने के लिए मौजूदा डेटाबेस खोलें (डिफ़ॉल्ट) |
| 'w' | पढ़ने और लिखने के लिए मौजूदा डेटाबेस खोलें |
| 'c' | पढ़ने और लिखने के लिए डेटाबेस खोलें, यदि यह मौजूद नहीं है तो इसे बनाएं |
| 'n' | हमेशा एक नया, खाली डेटाबेस बनाएं, पढ़ने और लिखने के लिए खोलें |
एक dbm ऑब्जेक्ट एक डिक्शनरी जैसा ऑब्जेक्ट है, ठीक शेल्फ ऑब्जेक्ट की तरह। इसलिए सभी डिक्शनरी ऑपरेशन किए जा सकते हैं। dbm ऑब्जेक्ट get(), pop(), append() और update() मेथड्स को आमंत्रित कर सकता है। निम्नलिखित कोड 'mydbm.db' को 'r' फ्लैग के साथ खोलता है और की-वैल्यू जोड़े के संग्रह पर पुनरावृति करता है।
>>> db = dbm.open('mydbm.db','r')
>>> for k,v in db.items():
print (k,v)
b'name' : Rajani Deshmukh
b'address' : b'Shivajinagar Pune'
b'PIN' : b'431001'
dbm ऑब्जेक्ट्स निम्नलिखित मेथड्स भी प्रदान करते हैं -
sync(): ऑन-डिस्क डायरेक्टरी और डेटा फ़ाइलों को सिंक्रनाइज़ करें। यह मेथड Shelve.sync() मेथड द्वारा बुलाया जाता है।
close(): dbm डेटाबेस बंद करें।
gnu dbm ऑब्जेक्ट्स के निम्नलिखित मेथड्स हैं -
firstkey()
इस मेथड और nextkey() मेथड का उपयोग करके डेटाबेस में हर की पर लूप करना संभव है। यह मेथड प्रारंभिक की लौटाता है।
gdbm.nextkey(key): ट्रैवर्सल में key के बाद आने वाली की को लौटाता है।
gdbm.reorganize(): यह फंक्शन डेटाबेस को पुनर्गठित करेगा। gnu dbm ऑब्जेक्ट्स इस पुनर्गठन का उपयोग किए बिना डेटाबेस फ़ाइल की लंबाई को छोटा नहीं करेंगे; अन्यथा, हटाई गई फ़ाइल स्पेस को रखा जाएगा और नए (की, वैल्यू) जोड़े जोड़े जाने पर पुन: उपयोग किया जाएगा।