পাইথনের স্ট্যান্ডার্ড লাইব্রেরির শেল্ভ মডিউলটি একটি রিলেশনাল ডাটাবেস সমাধান ব্যবহার করার সময় স্থায়ী ডেটা স্টোরেজের জন্য একটি সহজ কিন্তু কার্যকর টুল। এই মডিউলে সংজ্ঞায়িত শেল্ফ অবজেক্টটি অভিধানের মতো বস্তু যা ক্রমাগতভাবে একটি ডিস্ক ফাইলে সংরক্ষণ করা হয়। এটি UNIX-এর মতো সিস্টেমে dbm ডাটাবেসের অনুরূপ afile তৈরি করে। এই বিশেষ অভিধান অবজেক্টে শুধুমাত্র স্ট্রিং ডেটা টাইপ কী হিসাবে ব্যবহার করা যেতে পারে, যেখানে যেকোন পিকলেবল বস্তু মান হিসাবে পরিবেশন করতে পারে।
তাক মডিউল তিনটি শ্রেণিকে নিম্নরূপ সংজ্ঞায়িত করে −
Sr.No. | মডিউল এবং বর্ণনা |
---|---|
1 | শেল্ফ এটি শেল্ফ বাস্তবায়নের জন্য বেস ক্লাস। এটি dict-এর মতো বস্তু দিয়ে শুরু করা হয়। |
2 | BsdDbShelf এটি Shelf ক্লাসের একটি সাবক্লাস। ডিক্ট অবজেক্টটি তার কনস্ট্রাক্টরের কাছে পাস করা অবশ্যই first(), পরবর্তী(), আগের(), লাস্ট() এবং set_location() পদ্ধতি সমর্থন করে। |
3 | DbfilenameShelf এটিও শেল্ফের একটি সাবক্লাস কিন্তু ডিক্ট অবজেক্টের পরিবর্তে তার কনস্ট্রাক্টরের কাছে একটি ফাইলের নাম প্যারামিটার হিসাবে গ্রহণ করে। |
একটি শেল্ফ অবজেক্ট তৈরি করার সবচেয়ে সহজ উপায় হল শেলভ মডিউলে সংজ্ঞায়িত open() ফাংশন ব্যবহার করা যা একটি DbfilenameShelf অবজেক্ট প্রদান করে।
খুলুন(ফাইলের নাম, পতাকা ='c', প্রোটোকল=কোনও নয়, রাইটব্যাক =মিথ্যা)
ফাইলের নাম প্যারামিটারটি তৈরি করা ডাটাবেসে বরাদ্দ করা হয়।
পতাকা প্যারামিটারের জন্য ডিফল্ট মান হল 'c' পঠন/লেখা অ্যাক্সেসের জন্য। অন্যান্য পতাকাগুলি হল 'w' (শুধুমাত্র লিখুন) 'r' (শুধুমাত্র পঠনযোগ্য) এবং 'n' (পঠন/লেখা সহ নতুন)
প্রোটোকল প্যারামিটার বোঝায় পিকল প্রোটোকল রাইটব্যাক প্যারামিটার ডিফল্টভাবে মিথ্যা। সত্য হিসাবে সেট করা হলে, অ্যাক্সেস করা এন্ট্রিগুলি ক্যাশে করা হয়। প্রতিটি অ্যাক্সেস কল সিঙ্ক() এবং ক্লোজ() অপারেশনগুলি তাই প্রক্রিয়া ধীর হতে পারে৷
নিম্নলিখিত কোড একটি ডাটাবেস তৈরি করে এবং এতে অভিধান এন্ট্রি সংরক্ষণ করে।
আমদানি তাক =shelve.open("test")s['name'] ="Ajay"s['age'] =23s['marks'] =75s.close()
এটি বর্তমান ডিরেক্টরিতে test.dir ফাইল তৈরি করবে এবং হ্যাশ আকারে কী-মানের ডেটা সংরক্ষণ করবে। শেল্ফ অবজেক্টে নিম্নলিখিত পদ্ধতি উপলব্ধ রয়েছে -
Sr.No. | পদ্ধতি এবং বর্ণনা |
---|---|
1 | close() সিঙ্ক্রোনাইজ করুন এবং ক্রমাগত ডিক্ট অবজেক্ট বন্ধ করুন। |
2 | সিঙ্ক() ক্যাশে সমস্ত এন্ট্রি লিখুন যদি শেল্ফটি ট্রুতে সেট করে রাইটব্যাক দিয়ে খোলা হয়। |
3 | পান() কী এর সাথে যুক্ত মান প্রদান করে |
4 | আইটেম() টিপলের তালিকা - প্রতিটি টিপল হল মূল মান জোড়া |
5 | কী() শেলফ কীগুলির তালিকা |
6 | পপ() নির্দিষ্ট কী সরান এবং সংশ্লিষ্ট মান ফেরত দিন। |
7 | আপডেট() অন্য ডিক্ট/রিটারেবল থেকে শেল্ফ আপডেট করুন |
8 | মান() তাক মান তালিকা |
শেলফে একটি নির্দিষ্ট কী-এর মান অ্যাক্সেস করতে।
>>> s=shelve.open('test')>>> s['age']23>>> s['age']=25>>> s.get('age')25প্রে>আইটেম(), কী() এবং মান() পদ্ধতিগুলি ভিউ অবজেক্ট ফেরত দেয়।
>>> তালিকা(s.items())[('নাম', 'অজয়'), ('বয়স', 25), ('মার্কস', 75)]>>> তালিকা(s.keys) ))['নাম', 'বয়স', 'মার্কস']>>> তালিকা(s.values())['Ajay', 25, 75]শেল্ফ থেকে একটি মূল-মান জোড়া সরাতে
>>> s.pop('marks')75>>> তালিকা(s.items())[('নাম', 'অজয়'), ('বয়স', 25)]লক্ষ্য করুন যে মার্ক-75 এর মূল-মান জোড়া সরানো হয়েছে।
শেল্ফের সাথে অন্য অভিধানের আইটেমগুলিকে একত্রিত করতে আপডেট() পদ্ধতি
ব্যবহার করুন>>> d={'salary':10000, 'designation':'manager'}>>> s.update(d)>>> list(s.items())[('name', ' অজয়'), ('বয়স', 25), ('বেতন', 10000), ('পদবী', 'ম্যানেজার')]এই নিবন্ধে আমরা শেল্ভ মডিউল সম্পর্কে শিখেছি যা স্থায়ী অভিধান বস্তু সংরক্ষণের জন্য সুবিধাজনক প্রক্রিয়া প্রদান করে।