SQLite এর ডেটা স্টোরেজ আর্কিটেকচার

SQLite এর বেসিক ধারণা - এসকিউলাইট (SQLite) - Database Tutorials

360

SQLite একটি সার্ভারলেস, ফাইলভিত্তিক ডাটাবেস সিস্টেম যা একটি সিঙ্গেল ফাইলের মধ্যে সমস্ত ডেটা সংরক্ষণ করে। এর ডেটা স্টোরেজ আর্কিটেকচার এর কার্যকারিতা এবং পারফরম্যান্সের মূল অংশ, এবং এটি SQLite এর সহজ ও পোর্টেবল প্রকৃতির অন্যতম কারণ। SQLite এর ডেটা স্টোরেজ আর্কিটেকচার নির্ভর করে ডাটাবেস ফাইলের কাঠামো এবং যেভাবে তথ্যগুলি সংরক্ষিত হয়, তার উপর।

SQLite ডেটাবেস ফাইলের মধ্যে সমস্ত তথ্য, যেমন টেবিল, ইনডেক্স, ডাটা, স্কিমা ইত্যাদি সংরক্ষিত হয়। এটি শুধুমাত্র একটি সিঙ্গেল ফাইলে ডেটা রাখে এবং পুরো ডাটাবেসকে সার্ভার বা কোনো আলাদা পরিবেশ ছাড়া ব্যবহার করা যায়।


SQLite ডেটাবেস ফাইলের কাঠামো

SQLite ডেটাবেস ফাইলের কাঠামো কিছু গুরুত্বপূর্ণ উপাদানে ভাগ করা যেতে পারে:

  1. ডেটাবেস Header:
    • SQLite ডেটাবেস ফাইলের প্রথম 100 বাইটের মধ্যে একটি হেডার থাকে। এই হেডারটি ডেটাবেসের ধরণ, সংস্করণ, টেবিলের সংখ্যা এবং অন্যান্য মেটাডেটা ধারণ করে। এটি SQLite এর ফাইল ফর্ম্যাটের ধরন ও কাঠামো নির্ধারণ করে।
  2. Page Structure:
    • SQLite ডেটাবেসে ডেটা পেজ নামক ইউনিটে সংরক্ষিত হয়। প্রতিটি পেজ সাধারণত 1024 বাইট থেকে 65536 বাইটের মধ্যে হয়ে থাকে (যা কনফিগারেশন অনুযায়ী পরিবর্তনযোগ্য)।
    • একটি পেজ একটি ব্লক হিসেবে কাজ করে এবং ডেটাবেসের সকল তথ্য, যেমন টেবিলের ডাটা, ইনডেক্স এবং অন্যান্য স্ট্রাকচার পেজগুলোর মধ্যে ভাগ হয়ে থাকে।
  3. Pages Types: SQLite পেজগুলো বিভিন্ন ধরনের হতে পারে, যেমন:
    • Data Pages: এই পেজে টেবিলের রেকর্ড সংরক্ষিত হয়। প্রতিটি রেকর্ড একটি বা একাধিক পেজে রাখা হয়।
    • Index Pages: ইনডেক্স পেজে টেবিলের ইনডেক্সের তথ্য সংরক্ষিত থাকে।
    • Overflow Pages: যখন একটি পেজে জায়গা শেষ হয়ে যায়, তখন অতিরিক্ত ডেটা অন্য পেজে স্থানান্তরিত হয়।
    • Free Pages: যে পেজগুলো এখনও ব্যবহৃত হয়নি বা সেগুলোর মধ্যে কোন তথ্য নেই।
  4. B-Tree Structure:
    • SQLite টেবিল এবং ইনডেক্সের ডেটা সংরক্ষণ করার জন্য B-Tree (Balanced Tree) ব্যবহার করে। B-Tree একটি ফাইলভিত্তিক ডেটাবেসে তথ্য অনুসন্ধান এবং অ্যাক্সেসের জন্য খুবই কার্যকরী।
    • টেবিলের ডেটা এবং ইনডেক্সের পেজ গুলি B-Tree আর্কিটেকচার অনুসরণ করে, যার মাধ্যমে দ্রুত অনুসন্ধান এবং সন্নিবেশ (insertion) সম্ভব হয়।
  5. Transaction Log (WAL):
    • SQLite ট্রানজেকশন ম্যানেজমেন্টের জন্য Write-Ahead Logging (WAL) ব্যবহার করে। এই পদ্ধতিতে, সকল পরিবর্তন প্রথমে লগ ফাইলে লেখা হয় এবং তারপর মূল ডাটাবেসে প্রতিফলিত হয়। এই পদ্ধতির সুবিধা হল ডেটা নিরাপত্তা এবং পারফরম্যান্স বৃদ্ধি।
    • যখন একটি ট্রানজেকশন সম্পন্ন হয়, তখন এটি ডাটাবেসে কমিট করা হয়। WAL ফাইলটি ডাটাবেসের পুনরুদ্ধারের জন্যও ব্যবহৃত হয়।

SQLite ডেটাবেসের ডেটা সংরক্ষণ প্রক্রিয়া

  1. ডাটা ইনসার্ট করা:
    • যখন একটি নতুন রেকর্ড ইনসার্ট করা হয়, SQLite নতুন পেজ তৈরি করে যদি পূর্বের পেজে যথেষ্ট জায়গা না থাকে। ইনসার্টের সময় প্রথমে ডাটা WAL (Write-Ahead Log) এ লেখা হয়, তারপর মূল ডাটাবেস ফাইলে সেটি কমিট করা হয়।
  2. ডাটা আপডেট করা:
    • আপডেটের সময়, যদি পুরনো পেজে জায়গা না থাকে, তবে একটি নতুন পেজ তৈরি হয় এবং আগের ডেটা পুরনো পেজে মুছে দেওয়া হয়। এই ক্ষেত্রে, পুরনো ডেটা আবারও WAL এ লেখা হয়।
  3. ডাটা মুছা:
    • ডাটা মুছার সময়, সংশ্লিষ্ট পেজগুলি free pages হিসেবে চিহ্নিত করা হয়, তবে তা ডাটাবেস ফাইল থেকে মুছে ফেলা হয় না। পরবর্তী ডাটা সংরক্ষণের জন্য সেই ফ্রি পেজগুলো পুনরায় ব্যবহার করা যায়।
  4. ডেটাবেসের রিড-রাইট অপারেশন:
    • ডাটাবেসের
Content added By
Promotion

Are you sure to start over?

Loading...