পাইথনের অন্তর্নির্মিত লাইব্রেরিতে dbm প্যাকেজ একটি ইন্টারফেস DBM শৈলী ডাটাবেসের মতো একটি অভিধান প্রদান করে। ডিবিএম লাইব্রেরি একটি সাধারণ ডাটাবেস ইঞ্জিন, কেন থম্পসন লিখেছেন। DBM হল ডেটাবেস ম্যানেজার, যা ইউনিক্স অপারেটিং সিস্টেম দ্বারা ব্যবহৃত হয়, লাইব্রেরি নির্দিষ্ট-আকারের বালতিতে একটি একক কী (একটি প্রাথমিক কী) ব্যবহার করে নির্বিচারে ডেটা সঞ্চয় করে এবং কী দ্বারা ডেটা দ্রুত পুনরুদ্ধার সক্ষম করতে হ্যাশিং কৌশল ব্যবহার করে।
dbm প্যাকেজ −
-এ নিম্নলিখিত মডিউল রয়েছেdbm.ndbm মডিউল ইউনিক্স “(n)dbm” লাইব্রেরিতে একটি ইন্টারফেস প্রদান করে। ডিবিএম অবজেক্টগুলি অভিধানের মতো আচরণ করে, কী এবং মানগুলি বাইট হিসাবে সংরক্ষণ করা উচিত। মডিউলটি সমর্থন করে না এবং আইটেম() এবং মান() পদ্ধতি।
dbm.dumb মডিউল একটি স্থায়ী অভিধানের মতো ইন্টারফেস প্রদান করে যা সম্পূর্ণরূপে পাইথনে লেখা। অন্যান্য মডিউল যেমন dbm.gnu থেকে ভিন্ন কোনো বাহ্যিক লাইব্রেরির প্রয়োজন নেই। অন্যান্য ক্রমাগত ম্যাপিংয়ের মতো, কী এবং মানগুলি সর্বদা বাইট হিসাবে সংরক্ষণ করা হয়৷
এই মডিউলগুলি অভ্যন্তরীণভাবে পাইথনের তাক মডিউল দ্বারা ব্যবহৃত হয়। শেল্ভ ডাটাবেসের ক্ষেত্রে, ব্যবহারকারী-নির্দিষ্ট ডাটাবেসের নাম '.dir' পোস্টফিক্স বহন করে। dbm অবজেক্টের whatdb() ফাংশন বলে যে বর্তমান Python ইনস্টলেশনে 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(0 এবং update() পদ্ধতি চালু করতে পারে। নিম্নলিখিত কোডটি 'r' পতাকা সহ 'mydbm.db' খোলে এবং কী-মান জোড়া সংগ্রহের উপর পুনরাবৃত্তি করে।
>>> 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 অবজেক্টগুলি নিম্নলিখিত পদ্ধতিগুলিও প্রদান করে -
সিঙ্ক(): অন-ডিস্ক ডিরেক্টরি এবং ডেটা ফাইল সিঙ্ক্রোনাইজ করুন। এই পদ্ধতিটিকে Shelve.sync() পদ্ধতি বলে।
বন্ধ(): dbm ডাটাবেস বন্ধ করুন।
gnu dbm অবজেক্টের নিম্নলিখিত পদ্ধতি রয়েছে -
প্রথম কী()
এই পদ্ধতি এবং nextkey() পদ্ধতি ব্যবহার করে ডাটাবেসের প্রতিটি কী লুপ করা সম্ভব। এই পদ্ধতিটি প্রারম্ভিক কী ফেরত দেয়।
gdbm .nextkey(কী): ট্রাভার্সালে কী অনুসরণ করে এমন কী ফেরত দেয়।
gdbm .পুনঃসংগঠিত(): এই ফাংশন ডাটাবেস পুনর্গঠন করবে। gnu dbm অবজেক্টগুলি এই পুনর্গঠনটি ব্যবহার করা ছাড়া ডাটাবেস ফাইলের দৈর্ঘ্য ছোট করবে না; অন্যথায়, মুছে ফেলা ফাইলের স্থান রাখা হবে এবং নতুন (কী, মান) জোড়া যোগ করার সাথে সাথে পুনরায় ব্যবহার করা হবে।