Data Persistence এবং Custom Storage Techniques

Serialization এবং Custom Storage - টাইনিডিবি (TinyDB) - Database Tutorials

358

Data Persistence হলো এমন একটি প্রক্রিয়া যার মাধ্যমে ডেটা একটি স্টোরেজে (ফাইল, ডাটাবেস, বা অন্য কোন স্থানে) সংরক্ষণ করা হয়, যাতে সিস্টেম পুনরায় চালু হওয়ার পরেও ডেটা স্থায়ীভাবে মেনে রাখা যায়। TinyDB একটি JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে এবং এটি নিজেই ডেটা পersist করে, কারণ এটি স্টোরেজ হিসেবে ফাইল সিস্টেমে কাজ করে।


Data Persistence in TinyDB

TinyDB একটি Persistent storage প্রদান করে, যা ডেটা ফাইল (সাধারণত JSON) তে সংরক্ষণ করে এবং সিস্টেম রিস্টার্ট হওয়ার পরেও সেই ডেটা ফিরে আসে। যখন TinyDB ব্যবহার করা হয়, তখন সিস্টেম বন্ধ হলেও ডেটা ফিরে পাওয়া যায়।


TinyDB-তে ডেটা পpersist করার প্রক্রিয়া

  1. JSON ফাইল হিসাবে ডেটা সংরক্ষণ: TinyDB স্বয়ংক্রিয়ভাবে ডেটা JSON ফাইলে সংরক্ষণ করে। ডেটা ফাইলটি TinyDB('database.json') নামে তৈরি হয়, এবং ডেটা সেখানে সংরক্ষিত হয়।
from tinydb import TinyDB

# ডাটাবেস তৈরি
db = TinyDB('database.json')

# ডেটা যোগ করা
db.insert({'name': 'Rahim', 'age': 30, 'city': 'Dhaka'})

print("ডেটা সফলভাবে সংরক্ষিত হয়েছে।")

এই ডেটা ফাইল database.json এ সংরক্ষিত হবে এবং সিস্টেম রিস্টার্ট হওয়ার পরেও সেই ডেটা থাকবে।

  1. ডেটার স্থায়ীত্ব (Persistence): TinyDB ফাইল ফরম্যাটে ডেটা সংরক্ষণ করে, অর্থাৎ যখনই ডেটা আপডেট বা যোগ করা হয়, তা ডাটাবেস ফাইলে অবিলম্বে সংরক্ষিত হয়। ডেটার যে কোন পরিবর্তন সরাসরি JSON ফাইলে রিফ্লেক্ট হয়।

Custom Storage Techniques

TinyDB ব্যবহারকারীকে custom storage (অন্য কোনো ফাইল বা ফর্ম্যাটে ডেটা সংরক্ষণ) সিস্টেম তৈরির সুযোগ দেয়। এটি প্রয়োজন অনুসারে বিভিন্ন কাস্টমাইজড স্টোরেজ সলিউশন তৈরি করতে সাহায্য করে।

১. কাস্টম ফাইল স্টোরেজ

TinyDB আপনাকে কাস্টম ফাইল ব্যবহারের সুযোগ দেয়, যেমন, আপনি নিজের পছন্দমত ফাইল নাম বা লোকেশন নির্ধারণ করতে পারেন। ডাটাবেসের জন্য অন্য কোনো ফাইল পাথ ব্যবহার করতে:

# Custom file storage
db = TinyDB('/path/to/custom_storage/database.json')

# ডেটা যোগ করা
db.insert({'name': 'Karim', 'age': 25, 'city': 'Chittagong'})
print("কাস্টম স্টোরেজে ডেটা সংরক্ষিত হয়েছে।")

২. কাস্টম স্টোরেজ ইঞ্জিন

TinyDB এ custom storage engine তৈরি করা যায় যা ডেটা সংরক্ষণের জন্য কোনো বিশেষ ফাইল ফরম্যাট বা টেকনিক ব্যবহার করে। এটি ফাইল ফরম্যাট পরিবর্তন বা সিস্টেম কনফিগারেশনে পরিবর্তন করতে সাহায্য করে।

from tinydb.storages import Storage
import json

class MyCustomStorage(Storage):
    def __init__(self, path):
        self.path = path

    def read(self):
        with open(self.path, 'r') as file:
            return json.load(file)

    def write(self, data):
        with open(self.path, 'w') as file:
            json.dump(data, file)

# Custom storage ব্যবহার করা
db = TinyDB('custom_database.json', storage=MyCustomStorage)
db.insert({'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'})
print("কাস্টম স্টোরেজ ইঞ্জিন ব্যবহার করা হয়েছে।")

এখানে, MyCustomStorage ক্লাসের মাধ্যমে JSON ফাইলের পরিবর্তে ডেটা কাস্টম ফাইল পাথ বা অন্য কোন কাস্টম ডেটা স্টোরেজ ইঞ্জিনে সংরক্ষণ করা হয়েছে।

৩. কাস্টম ইনডেক্সিং

TinyDB-তে আপনি custom indexing কৌশলও তৈরি করতে পারেন, যা ডেটা দ্রুত অনুসন্ধানের জন্য ব্যবহার করা হয়। ইনডেক্সিং কাস্টমাইজ করে আপনি নিজের মতো দ্রুত অনুসন্ধান ব্যবস্থা তৈরি করতে পারেন।

from tinydb import TinyDB, Query

# Custom Indexing
db = TinyDB('custom_indexed_db.json')

# ডেটা যোগ করা
db.insert({'name': 'John', 'age': 40, 'city': 'New York'})
db.insert({'name': 'Jane', 'age': 35, 'city': 'Los Angeles'})

# Query ব্যবহার করে ইনডেক্সিং
User = Query()
result = db.search(User.name == 'John')
print(result)

সারাংশ

TinyDB স্বয়ংক্রিয়ভাবে ডেটা JSON ফাইল-এ সংরক্ষণ করে, যা ডেটা পpersist করার জন্য খুবই কার্যকর। তবে এটি ব্যবহারকারীকে custom storage techniques এবং custom storage engines তৈরি করার সুযোগ দেয়, যার মাধ্যমে আপনি নিজের পছন্দমতো ফাইল ফরম্যাট এবং স্টোরেজ ব্যবস্থা তৈরি করতে পারেন। এটি বিশেষভাবে ছোট প্রকল্প এবং প্রোটোটাইপের জন্য কার্যকর, যেখানে ডেটা পpersist করার এবং কাস্টম স্টোরেজ ব্যবস্থা তৈরির সুবিধা প্রয়োজন।

Content added By
Promotion

Are you sure to start over?

Loading...