Database Inspector: এটি কী, SQLite নিয়ে কীভাবে কাজ করবেন এবং Room ডিবাগ করবেন

লেখক: IT Sectr প্রকাশিত: 2026-05-07 পড়ার সময়: 8 মিনিট

Android Studio-তে Database Inspector হল একটি অন্তর্নির্মিত টুল যা মোবাইল অ্যাপ্লিকেশনের SQLite ডাটাবেস রিয়েল টাইমে দেখার এবং ডিবাগ করার জন্য। অফিসিয়াল Android Developers ডকুমেন্টেশন (2025) অনুযায়ী, টুলটি সক্রিয় ডাটাবেসে SQL কোয়েরি নির্বাহ করতে, টেবিল স্ট্রাকচার দেখতে এবং অ্যাপ্লিকেশন বন্ধ না করেই রেকর্ড সম্পাদনা করতে দেয়। টুলটি Room, SQLiteOpenHelper এবং যেকোনো in-app ডাটাবেস সমর্থন করে, প্রোফাইলিং শুরু হলে স্বয়ংক্রিয়ভাবে সেগুলি শনাক্ত করে।

মূল পয়েন্ট

  • Database Inspector হল Android Studio-র একটি উপাদান যা কোয়েরি নির্বাহের ক্ষমতা সহ রিয়েল টাইমে অ্যাপ্লিকেশনের SQLite ডাটাবেস দেখার জন্য
  • Room সমর্থন — Room-এর সাথে সম্পূর্ণ ইন্টিগ্রেশন, যার মধ্যে DAO কোয়েরি দেখা এবং ডাটাবেসে পরিবর্তন ট্র্যাক করা অন্তর্ভুক্ত
  • ডাটা সম্পাদনা — ইন্সপেক্টর ইন্টারফেস থেকে সরাসরি টেবিল সেল মান পরিবর্তন করা এবং অ্যাপ্লিকেশনে তাৎক্ষণিক প্রতিফলন
  • SQL নির্বাহ — JOIN, GROUP BY এবং সাবকোয়েরি সহ ইচ্ছামত SQL কোয়েরি লেখা এবং নির্বাহ করার ক্ষমতা
  • ডাটাবেস এক্সপোর্ট — বিশ্লেষণ বা সহকর্মীদের সাথে শেয়ার করার জন্য কম্পিউটারে ডাটাবেস ডাম্প সংরক্ষণ

Database Inspector কী?

Database Inspector হল Android Studio-র একটি টুল যা মোবাইল অ্যাপ্লিকেশনে স্থানীয় ডাটাবেস পরিদর্শন এবং ডিবাগ করার জন্য। এটি অ্যাপ্লিকেশন দ্বারা তৈরি সমস্ত SQLite ডাটাবেস দেখার অনুমতি দেয়, যার মধ্যে Room ডাটাবেস, SQLiteOpenHelper এবং থার্ড-পার্টি লাইব্রেরি অন্তর্ভুক্ত। টুলটি Android Studio 4.1 থেকে উপলব্ধ এবং Android Profiler-এর মাধ্যমে বা সরাসরি View মেনু থেকে চালু করা যেতে পারে।

উদ্দেশ্য এবং ক্ষমতা

Database Inspector-এর প্রধান উদ্দেশ্য হল উন্নয়নের সময় ডাটা ভিজুয়ালাইজেশন। ডাটাবেস বিষয়বস্তু লগে আউটপুট করা বা ডাটা দেখার জন্য আলাদা স্ক্রিন লেখার পরিবর্তে, ডেভেলপার Database Inspector খুলতে পারেন এবং সঙ্গে সঙ্গেই সমস্ত টেবিল, তাদের স্কিমা এবং বিষয়বস্তু দেখতে পারেন। টুলটি রিলেশনাল SQLite ডাটাবেস এবং Auto-মাইগ্রেশন সহ Room উভয়ই সমর্থন করে।

কখন Database Inspector ব্যবহার করবেন

টুলটি সেই পরিস্থিতিতে অপরিহার্য যখন একটি অপারেশন করার পরে আপনাকে ডাটা স্টোরেজের সঠিকতা যাচাই করতে হয়: ব্যবহারকারী নিবন্ধন, সার্ভার সিঙ্ক্রোনাইজেশন, তালিকা ক্যাশিং। একটি পরীক্ষা UI লেখার পরিবর্তে, ডাটাবেস ডাম্প Database Inspector-এর মাধ্যমে দেখা হয়। টুলটি Room মাইগ্রেশন ডিবাগ করার জন্যও সক্রিয়ভাবে ব্যবহৃত হয় — আপনি প্রতিটি স্কিমা আপডেটের পরে প্রকৃত টেবিল স্কিমা দেখতে পারেন।

Database Inspector কীভাবে কাজ করে

Database Inspector Android Profiler Service-এর মাধ্যমে Android অ্যাপ্লিকেশনের প্রক্রিয়ার সাথে সংযুক্ত হয়। এটি অ্যাপ্লিকেশনের সমস্ত খোলা SQLite সংযোগ সনাক্ত করে এবং সাইড প্যানেলে প্রদর্শন করে। API Level 26 (Android 8.0) এবং তার উপরে সহ অ্যাপ্লিকেশনের Debug বিল্ড প্রয়োজন।

আর্কিটেকচার এবং কার্যপ্রণালী

চালু হলে, Database Inspector ডিভাইসের অ্যাপ্লিকেশন এবং কম্পিউটারের IDE-র মধ্যে একটি ADB টানেল তৈরি করে। বিষয়বস্তু প্রদর্শনের জন্য SQLite WAL (Write-Ahead Logging) ডাটাবেস ফাইলগুলি এই টানেলের মাধ্যমে স্ট্রিম করা হয়। SQL কমান্ড Room এবং SQLiteDatabase-এ Database Inspector-এর সমর্থনের মাধ্যমে সরাসরি অ্যাপ্লিকেশনের SQLite Engine-এ পাঠানো হয়। টুলটি স্বয়ংক্রিয়ভাবে সনাক্ত করে কখন অ্যাপ্লিকেশন একটি ডাটাবেস খোলে এবং এটি পরিদর্শিত তালিকায় যুক্ত করে।

পরিবেশের প্রয়োজনীয়তা

Database Inspector সঠিকভাবে কাজ করার জন্য, আপনার প্রয়োজন: Android Studio 4.1+, API Level 26+ সহ একটি ডিভাইস বা এমুলেটর এবং অ্যাপ্লিকেশনের Debug বিল্ড। Room-এর জন্য, অতিরিক্তভাবে room-runtime লাইব্রেরি সংস্করণ 2.2+ প্রয়োজন। যদি ডাটাবেস WAL মোডে তৈরি করা হয়, যা Room 2.2+-এর জন্য মানক, টুলটি মূল অ্যাপ্লিকেশন ব্লক না করেই ডাটা পড়তে পারে।

kotlin
// Database Inspector দ্বারা সমর্থিত Room ডাটাবেসের উদাহরণ
@Database(
    entities = [User::class, Order::class],
    version = 2,
    autoMigrations = [AutoMigration(from = 1, to = 2)]
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
    abstract fun orderDao(): OrderDao
}

Database Inspector-এর মূল বৈশিষ্ট্য

Database Inspector স্থানীয় ডাটা নিয়ে কাজ করার জন্য ফাংশনের একটি সম্পূর্ণ সেট প্রদান করে: টেবিল স্কিমা দেখা থেকে জটিল SQL কোয়েরি নির্বাহ এবং রেকর্ড সম্পাদনা পর্যন্ত।

টেবিল এবং স্কিমা দেখা

বাম প্যানেলে সমস্ত ডাটাবেস এবং টেবিল প্রদর্শিত হয়। যখন একটি টেবিল নির্বাচন করা হয়, তার বিষয়বস্তু কলাম সহ একটি টেবিলে প্রদর্শিত হয়: সমস্ত রেকর্ড ফিল্ড কলাম হিসাবে দেখানো হয়, প্রতিটি সারি একটি পৃথক রেকর্ড। টেবিল স্কিমা (নাম, ধরন, সীমাবদ্ধতা) শীর্ষে প্রদর্শিত হয়। ফরেন কী-র জন্য, টেবিলের মধ্যে সম্পর্ক দেখানো হয়।

ডাটার ধরনSQLite ধরনRoom ধরনউদাহরণ
পূর্ণসংখ্যাINTEGERInt, Long42
স্ট্রিংTEXTString"John"
দশমিক সংখ্যাREALDouble, Float3.14
বাইনারি ডাটাBLOBByteArray[0x00, 0x01]
তারিখ/সময়INTEGER (Unix epoch)Long, Date1720000000

SQL কোয়েরি নির্বাহ করা

Query ট্যাব আপনাকে নির্বাচিত ডাটাবেসের বিরুদ্ধে সরাসরি ইচ্ছামত SQL কমান্ড নির্বাহ করতে দেয়। SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN এবং অন্য যেকোনো SQLite অপারেটর সমর্থিত। ফলাফল কোয়েরি এডিটরের নীচে সারণি বিন্যাসে প্রদর্শিত হয়। কোয়েরি ইতিহাস সেশনের সময় সংরক্ষিত থাকে।

রেকর্ড সম্পাদনা

টেবিল সেল সরাসরি সম্পাদনা করা যেতে পারে — একটি মান ক্লিক করুন এবং একটি নতুন মান প্রবেশ করান। পরিবর্তনগুলি চলমান অ্যাপ্লিকেশনে অবিলম্বে প্রয়োগ করা হয়। এটি সীমান্ত ক্ষেত্রগুলি পরীক্ষা করার জন্য বিশেষভাবে উপযোগী: প্রয়োজনীয় ফিল্ডে null সেট করা, ID অস্তিত্বহীন দিয়ে প্রতিস্থাপন করা, লম্বা স্ট্রিং হ্যান্ডলিং পরীক্ষা করা। সমস্ত পরিবর্তন রিয়েল টাইমে প্রতিশ্রুতিবদ্ধ হয়।

Database Inspector-এর সাথে Room ডিবাগিং

Database Inspector-এর Room-এর সাথে গভীর ইন্টিগ্রেশন রয়েছে, যা এই লাইব্রেরির সাথে অ্যাপ্লিকেশন বিকাশ করার সময় এটিকে অপরিহার্য করে তোলে। মানক কার্যকারিতা ছাড়াও, ইন্সপেক্টর Room-নির্দিষ্ট ক্ষমতা প্রদান করে।

DAO কোয়েরি দেখা

Room ডাটাবেসের জন্য, Database Inspector প্রতিটি DAO পদ্ধতির জন্য উৎপন্ন SQL কোয়েরি দেখায়। এটি যাচাই করতে দেয় যে Room সঠিক SQL উৎপন্ন করে, বিশেষ করে JOIN, @Relation এবং @Transaction-এর সাথে জটিল কোয়েরির জন্য। যদি Room একটি অদক্ষ কোয়েরি নির্বাহ করে (যেমন, একটি JOIN-এর পরিবর্তে N+1 কোয়েরি), এটি Database Inspector কোয়েরি লগে অবিলম্বে দৃশ্যমান হয়।

মাইগ্রেশন ডিবাগ করা

AutoMigration বা ম্যানুয়াল মাইগ্রেশনের সাথে Room স্কিমা আপডেট করার সময়, Database Inspector মাইগ্রেশনের পরে প্রকৃত টেবিল কাঠামো দেখায়। অ্যাপ্লিকেশন চালু করার পরে ইন্সপেক্টর খুলুন এবং পরীক্ষা করুন যে সমস্ত কলাম, ইনডেক্স এবং ফরেন কী সঠিকভাবে তৈরি হয়েছে। যদি মাইগ্রেশন ত্রুটির সাথে ব্যর্থ হয়, ডাটাবেস খুলবে না — টুলটি শেষ উপলব্ধ সংস্করণ দেখাবে।

Relations এবং Embedded পরীক্ষা করা

Room @Relation এবং @Embedded-এর মাধ্যমে একাধিক টেবিল থেকে ডাটা একত্রিত করার অনুমতি দেয়। Database Inspector সম্পর্কিত টেবিলের ডাটা পাশাপাশি প্রদর্শন করে সম্পর্কের সঠিকতা দৃশ্যমানভাবে যাচাই করতে সাহায্য করে। প্রতিটি ফরেন কী-র জন্য, আপনি এক ক্লিকে সম্পর্কিত টেবিলে যেতে পারেন।

kotlin
// Database Inspector-এর মাধ্যমে পরীক্ষার জন্য Relation সহ Entity
@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

data class UserWithOrders(
    @Embedded val user: User,
    @Relation(parentColumn = "id", entityColumn = "user_id")
    val orders: List<Order>
)

Database Inspector-এর ব্যবহারিক প্রয়োগের পরিস্থিতি

Database Inspector নির্দিষ্ট উন্নয়ন কার্যগুলি সমাধান করে যা স্থানীয় ডাটা স্টোরেজ নিয়ে কাজ করার সময় উদ্ভূত হয়। দৈনন্দিন কাজে টুলটির সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রগুলি দেখি।

ডাটা ক্যাশিং পরীক্ষা করা

প্রায়শই, একটি অ্যাপ্লিকেশন API প্রতিক্রিয়াগুলি স্থানীয় ডাটাবেসে ক্যাশ করে। Database Inspector আপনাকে ক্যাশিংয়ের সঠিকতা যাচাই করতে দেয়: সিঙ্ক্রোনাইজেশনের পরে, আপনি ক্যাশ টেবিলে প্রকৃত রেকর্ড দেখতে পারেন। যদি ডাটা উপস্থিত না হয় — সমস্যা সেভ কোডে। যদি ডুপ্লিকেট উপস্থিত হয় — সমস্যা upsert লজিকে।

ডাটা সন্নিবেশ ত্রুটি ডিবাগ করা

যখন একটি DAO পদ্ধতি ডাটা সংরক্ষণ করে না কিন্তু ব্যতিক্রম নিক্ষেপ করে না, Database Inspector টেবিলের প্রকৃত অবস্থা দেখায়। সাধারণ কারণ: Primary Key দ্বন্দ্ব (OnConflictStrategy সেটিং), কলামে ভুল ডাটা ধরন, NOT NULL সীমাবদ্ধতা লঙ্ঘন বা Foreign Key লঙ্ঘন। ইন্সপেক্টর আপনাকে অপারেশনের আগে এবং পরে ডাটাবেস পরিবর্তন সেট দেখতে দেয়। DAO কলের আগে এবং পরে ডাটা স্ন্যাপশট তুলনা করা লেনদেন সংক্রান্ত ত্রুটি ডিবাগ করার এবং জটিল লেখার অপারেশনের সময় অ্যাপ্লিকেশন বিজনেস লজিকের সঠিকতা যাচাই করার সবচেয়ে কার্যকর উপায়গুলির মধ্যে একটি।

ডাটাবেস স্কিমা পুনর্গঠন

টেবিল স্কিমা পরিবর্তন করার সময় — কলাম যোগ করা, ফিল্ডের নাম পরিবর্তন করা, টেবিল বিভক্ত করা — Database Inspector মাইগ্রেশন ফলাফল যাচাই করতে সাহায্য করে। নতুন ডাটাবেস সংস্করণ সহ অ্যাপ্লিকেশন চালু করুন এবং যাচাই করুন যে সমস্ত ডাটা নতুন কাঠামোতে সঠিকভাবে স্থানান্তরিত হয়েছে। যদি মাইগ্রেশনের পরে ডাটা অনুপস্থিত থাকে, আপনি পুনর্গঠনের আগে সংরক্ষিত ডাম্প থেকে এটি পুনরুদ্ধার করতে পারেন। এই পরিস্থিতি SQLiteOpenHelper থেকে Room-এ মাইগ্রেট করার সময় বা অ্যাপ্লিকেশনের নতুন সংস্করণে বিদ্যমান টেবিলের কাঠামো পরিবর্তন করার সময় বিশেষভাবে প্রাসঙ্গিক।

কোয়েরি পারফরম্যান্স মনিটরিং

Database Inspector SQL কোয়েরি পারফরম্যান্স মূল্যায়ন করতেও ব্যবহার করা যেতে পারে। Query ট্যাবের মাধ্যমে SELECT নির্বাহ করে এবং প্রতিক্রিয়া সময় মেপে, আপনি সূচকের অভাব রয়েছে এমন কোয়েরি সনাক্ত করতে পারেন। Room স্বয়ংক্রিয়ভাবে Logcat-এ SLOW SQL ট্যাগ দিয়ে ধীর কোয়েরি লগ করে, এবং Database Inspector আপনাকে নির্বাহ পরিকল্পনা বিশ্লেষণের জন্য অবিলম্বে EXPLAIN QUERY PLAN নির্বাহ করতে দেয়।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

কেন Database Inspector আমার ডাটাবেস দেখতে পায় না?

নিশ্চিত করুন যে অ্যাপ্লিকেশনটি Debug মোডে চলছে এবং ডিভাইসের API Level 26 বা তার বেশি। যদি ডাটাবেস একটি পৃথক প্রক্রিয়ায় বা SQLCipher (এনক্রিপশন) ব্যবহার করে তৈরি করা হয়, Database Inspector এটি সনাক্ত নাও করতে পারে। SQLCipher-এর জন্য, এনক্রিপশন ছাড়া একটি সহায়ক ডিবাগ ডাটাবেস ব্যবহার করুন।

Database Inspector-এর মাধ্যমে কি ডাটা সম্পাদনা করা যায়?

হ্যাঁ, ডাটা সম্পাদনা সরাসরি টেবিল কোষে সম্ভব। একটি মান ডাবল-ক্লিক করলে তা পরিবর্তন করা যায়। পরিবর্তনগুলি অবিলম্বে চলমান অ্যাপ্লিকেশনের ডাটাবেসে প্রয়োগ করা হয়। নতুন রেকর্ড যোগ করতে, Query ট্যাবের মাধ্যমে INSERT SQL কোয়েরি ব্যবহার করুন।

Database Inspector কি Realm ডাটাবেস সমর্থন করে?

না, Database Inspector Realm সমর্থন করে না কারণ Realm SQLite ব্যবহার করে না। Realm ডিবাগ করতে, Realm Object Server, Realm Studio বা ইন-অ্যাপ লগিং ব্যবহার করুন। MongoDB Realm SDK-এর জন্য, Realm Studio টুল macOS, Windows এবং Linux-এর জন্য উপলব্ধ।

Database Inspector থেকে কীভাবে ডাটাবেস এক্সপোর্ট করবেন?

Database Inspector আপনাকে সম্পূর্ণ ডাটাবেস এক্সপোর্ট করতে দেয়। তালিকায় ডাটাবেস নামে ডান-ক্লিক করুন এবং Export Database নির্বাচন করুন। .db ফাইলটি আপনার কম্পিউটারে সংরক্ষিত হবে। এটি দেখতে, যেকোনো SQLite ব্রাউজার ব্যবহার করুন, যেমন DB Browser for SQLite।

Database Inspector কি অ্যাপ্লিকেশন পারফরম্যান্সকে প্রভাবিত করে?

Google-এর মতে, ওভারহেড সর্বনিম্ন — Database Inspector লেখা আটকানো ছাড়াই WAL ডাটাবেস ফাইল পড়ে। কাস্টম SQL কোয়েরি নির্বাহ অস্থায়ীভাবে ডাটাবেস লোড করতে পারে, কিন্তু এটি ডেভেলপার দ্বারা নিয়ন্ত্রিত। প্রোডাকশন বিল্ডের জন্য টুলটি স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় হয়।

সারাংশ

  • Database Inspector রিয়েল টাইমে অ্যাপ্লিকেশনের SQLite ডাটাবেস দেখতে এবং সম্পাদনা করার জন্য Android Studio-তে নির্মিত একটি টুল
  • Room সমর্থন DAO কোয়েরি দেখা, মাইগ্রেশন ডিবাগ করা এবং @Relation এবং @Embedded পরীক্ষা করা অন্তর্ভুক্ত
  • SQL কোয়েরি নির্বাহ Query ট্যাবের মাধ্যমে সমস্ত SQLite অপারেটরের সমর্থন এবং ইতিহাস সংরক্ষণ সহ
  • রিয়েল-টাইম সম্পাদনা আপনাকে সেল মান পরিবর্তন করতে এবং চলমান অ্যাপ্লিকেশনে অবিলম্বে ফলাফল দেখতে দেয়
  • ডাটাবেস এক্সপোর্ট থার্ড-পার্টি টুলে বিশ্লেষণ বা সহকর্মীদের সাথে শেয়ার করার জন্য .db ফাইলে
  • প্রয়োজন Android Studio 4.1+, Debug বিল্ড এবং API Level 26+ — টুলটি ডাটাবেস প্রদর্শন না করলে এই প্রয়োজনীয়তাগুলি পরীক্ষা করুন
  • স্থানীয় ডাটা স্টোরেজ সম্পর্কিত বৈশিষ্ট্য বিকাশ করার সময় নিয়মিত ভিত্তিতে Database Inspector ব্যবহার করুন — এটি ডিবাগিং অনেক দ্রুত করে

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন