TinyDB একটি NoSQL ডাটাবেস, যা ডেটা সংরক্ষণের জন্য JSON ফাইল ব্যবহার করে। এর Data Model সাধারণত সরল এবং ফ্লেক্সিবল, যা ছোট স্কেল অ্যাপ্লিকেশনের জন্য উপযুক্ত। TinyDB তে ডেটা ডকুমেন্ট আকারে সংরক্ষিত হয়, যেখানে প্রতিটি ডকুমেন্ট একটি ডিকশনারি (Dictionary) বা Key-Value Pair হিসেবে গঠিত।
TinyDB Data Model এর মূল ধারণা
১. ডকুমেন্ট (Document)
TinyDB-তে ডেটা ডকুমেন্ট আকারে সংরক্ষণ করা হয়। প্রতিটি ডকুমেন্ট আসলে একটি Python ডিকশনারি, যেখানে ডেটা Key-Value Pair আকারে থাকে।
উদাহরণ:
{
'name': 'Rahim',
'age': 30,
'city': 'Dhaka'
}
২. টেবিল (Table)
TinyDB-তে ডেটা বিভিন্ন টেবিল এ বিভক্ত থাকে। ডিফল্টভাবে, একটি টেবিলের নাম থাকে 'default', তবে আপনি নিজের টেবিল নাম নির্ধারণ করতে পারেন।
উদাহরণ:
from tinydb import TinyDB
db = TinyDB('data.json')
table = db.table('users') # 'users' নামে একটি টেবিল তৈরি
৩. ইনডেক্স (Index)
TinyDB ডেটা দ্রুত অনুসন্ধান করার জন্য ইনডেক্স ব্যবহার করে। এটি স্বয়ংক্রিয়ভাবে ইনডেক্স তৈরি করে ডেটা অ্যাক্সেসকে দ্রুততর করে।
৪. ডেটার গঠন
TinyDB-তে প্রতিটি ডকুমেন্ট একটি ইউনিক আইডি (ID) পায়, যা ডকুমেন্ট সংরক্ষণের সময় স্বয়ংক্রিয়ভাবে তৈরি হয়।
উদাহরণ:
{
"1": {"name": "Rahim", "age": 30},
"2": {"name": "Karim", "age": 25}
}
TinyDB Data Model এর মূল উপাদান
| উপাদান | বিবরণ |
|---|---|
| ডকুমেন্ট | Key-Value Pair ভিত্তিক ডেটা, যা একটি JSON ফর্ম্যাটে থাকে। |
| টেবিল | ডেটা বিভক্ত করার জন্য ব্যবহার করা হয়। |
| ইনডেক্স | ডেটার দ্রুত অনুসন্ধান নিশ্চিত করে। |
| ডেটার স্ট্রাকচার | ফ্লেক্সিবল এবং স্কিমা-লেস (Schema-less)। |
উদাহরণ: TinyDB Data Model প্রয়োগ
from tinydb import TinyDB, Query
# ডাটাবেস তৈরি
db = TinyDB('data.json')
# ডিফল্ট টেবিল এ ডেটা যোগ
db.insert({'name': 'Rahim', 'age': 30, 'city': 'Dhaka'})
db.insert({'name': 'Karim', 'age': 25, 'city': 'Chittagong'})
# একটি নির্দিষ্ট টেবিলে ডেটা যোগ
users_table = db.table('users')
users_table.insert({'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'})
# ডেটা অনুসন্ধান
User = Query()
result = users_table.search(User.name == 'Mehedi')
print(result)
উৎপাদন:
[
{"name": "Mehedi", "age": 22, "city": "Sylhet"}
]
TinyDB Data Model এর সুবিধা
- ফ্লেক্সিবল স্ট্রাকচার: কোনো নির্দিষ্ট স্কিমার প্রয়োজন নেই; ডেটা প্রয়োজন অনুসারে সংরক্ষণ করা যায়।
- সহজ টেবিল ম্যানেজমেন্ট: একই ডাটাবেস ফাইলে একাধিক টেবিল পরিচালনা করা যায়।
- ইনডেক্সিং সুবিধা: ডেটা দ্রুত অ্যাক্সেস করার জন্য ইনডেক্সিং।
- পাইথনের সাথে সহজ ইন্টিগ্রেশন: Python ডিকশনারি ফর্ম্যাটে ডেটা ব্যবহার করা যায়।
সারাংশ
TinyDB এর Data Model সরল, ফ্লেক্সিবল এবং JSON ফাইল-ভিত্তিক, যা ছোট এবং মাঝারি আকারের ডেটাবেস পরিচালনার জন্য কার্যকর। এর মাধ্যমে ডেটা স্টোরেজ, টেবিল পরিচালনা, এবং দ্রুত অনুসন্ধান সহজে সম্পন্ন করা যায়।
Read more