ষষ্ঠ অধ্যায়: ডেটাবেজ সর্টিং ও ইনডেক্সিং
লেখক ও শিক্ষক পরিচয়:
MD BELAL HOSSAIN NEEL
ICT Lecturer
Lakshmipur Victory College
18th NTRCA Qualified ICT Teacher
📞 01628 409930
🌟 পাঠ শেষে যা শিখবে:
-
ডেটাবেজ সর্টিং কী এবং কিভাবে কাজ করে।
-
ডেটাবেজ ইনডেক্সিং কী এবং সুবিধা-অসুবিধা।
-
সর্টিং এবং ইনডেক্সিং এর মধ্যে পার্থক্য।
📖 গল্পের মাধ্যমে ব্যাখ্যা:
একদিন নীল, একজন কলেজ শিক্ষার্থী, student_info ডেটাবেজের মধ্যে তার বন্ধুদের GPA খুঁজতে চায়। সে তিনটি পদ্ধতি ব্যবহার করে:
১. সর্টিং:
নীল প্রথমে সব রেকর্ড একে একে দেখল। তারপর সে GPA ফিল্ড অনুযায়ী রেকর্ডগুলো উর্ধ্বক্রম (ASC) এবং অধঃক্রম (DESC) অনুসারে সাজাল।
কী শিখল নীল?
-
সর্টিং মানে হলো ডেটাকে উর্ধ্বক্রম বা অধঃক্রমে সাজানো।
-
সর্টিং করার পর টেবিলের মূল ডেটা পরিবর্তিত হয় না, নতুন একটি কপি তৈরি হয়।
-
নতুন ডেটা এলে পুনরায় সর্ট করতে হয়।
-
সর্টিং মেমোরি বেশি ব্যবহার করে।
SQL উদাহরণ:
-
উর্ধ্বক্রমে সাজানো:
-
অধঃক্রমে সাজানো:
২. ইনডেক্সিং:
নীল দ্বিতীয়ভাবে ইনডেক্সিং করল। সে জানল যে, যদি টেবিলের রোল ফিল্ড অনুযায়ী একটি সূচি (Index) তৈরি করা হয়, তাহলে নির্দিষ্ট রোলের GPA খুঁজতে অনেক দ্রুত সময় লাগে।
কী শিখল নীল?
-
ইনডেক্সিং হলো ডেটার একটি সূচি তৈরি করা, যাতে তথ্য দ্রুত খুঁজে পাওয়া যায়।
-
মূল টেবিল পরিবর্তিত হয় না।
-
এক বা একাধিক ফিল্ডের উপর ইনডেক্স করা যায়।
-
ইনডেক্স স্বয়ংক্রিয়ভাবে আপডেট হয় যখন নতুন ডেটা যোগ হয়।
সুবিধা:
-
ডেটা দ্রুত খুঁজে পাওয়া যায়।
-
পারফরম্যান্স উন্নত হয়।
-
মূল ডেটাবেস পরিবর্তন হয় না।
অসুবিধা:
-
একাধিক ফিল্ডে ইনডেক্স করলে আপডেট ধীর হয়।
-
বেশি রেকর্ডের জন্য বেশি মেমোরি লাগে।
SQL উদাহরণ:
-
সাধারণ ইনডেক্স:
-
ইউনিক ইনডেক্স:
-
ইনডেক্স ডিলিট করা:
৩. সর্টিং বনাম ইনডেক্সিং:
| বিষয় | সর্টিং | ইনডেক্সিং |
|---|---|---|
| প্রক্রিয়া | টেবিলের নতুন কপি তৈরি | ইনডেক্স ফাইল তৈরি |
| মূল ডেটা | মূল ক্রম পরিবর্তিত হয় | মূল ক্রম অপরিবর্তিত থাকে |
| মেমোরি প্রয়োজন | বেশি | কম |
| ব্যবহারের উদাহরণ | ছোট টেবিলের জন্য | বড় ডেটাবেসের জন্য |
✨ গল্পের উদাহরণ:
এক কলেজে ফলাফল খুঁজতে তিনজন ছাত্র:
-
১ম ছাত্র: কুয়েরি ব্যবহার করে ডেটা সিলেক্ট করল।
-
২য় ছাত্র: টেবিলকে সাজিয়ে (Sort) দেখল।
-
৩য় ছাত্র: ইনডেক্সিং ব্যবহার করে দ্রুত খুঁজে পেল।
বিশ্লেষণ:
-
২য় ছাত্র সর্টিং ব্যবহার করেছে, কিন্তু এটা ধীর।
-
৩য় ছাত্রের ইনডেক্সিং দ্রুত এবং কার্যকর।
-
সুতরাং বড় ডেটাবেসের জন্য ইনডেক্সিং সবচেয়ে উত্তম।
📝 বহুনির্বাচনি উদাহরণ:
১। যদি ডেটাবেসে প্রচুর তথ্য থাকে:
-
ডেটা দ্রুত খুঁজে পেতে ইনডেক্সিং দরকার ✅
২। সম্পর্ক:
-
ইনডেক্সিং → সাজানো ✅
৩। সর্টিং হলো:
-
উর্ধ্বক্রম ও অধঃক্রমে সাজানো ✅
৪। ইন্ডেক্স করা যায়:
-
এক বা একাধিক ফিল্ডের উপর ✅
৫। উদাহরণ টেবিল অনুযায়ী Dist ফিল্ড A→Z:
-
Roll ক্রম হবে: ৪, ২, ১, ৩ ✅
৬। ডেটাবেস সাজানো প্রক্রিয়া হলো:
-
সর্টিং ও ইনডেক্সিং ✅
✅ সারসংক্ষেপ গল্পের মাধ্যমে:
নীল শিখল:
-
ছোট ডেটার জন্য Sort, বড় ডেটার জন্য Index।
-
সর্টিং মূল টেবিলের কপি তৈরি করে, ইনডেক্স মূল টেবিল অপরিবর্তিত রাখে।
-
ইনডেক্সিং দ্রুত, কিন্তু মেমোরি লাগে।
গল্প মনে রাখো: “নীল বড় ডেটা খুঁজতে Index ব্যবহার করে, ছোট ডেটা সাজাতে Sort।”
২০টি MCQ: ডেটাবেজ সর্টিং ও ইনডেক্সিং
১। ডেটাবেজে একটি টেবিলকে উর্ধ্বক্রমে সাজানো হলে কী হয়?
ক) নতুন টেবিল তৈরি হয় এবং রেকর্ডগুলো উর্ধ্বক্রমে থাকে ✅
খ) মূল টেবিল পরিবর্তিত হয়
গ) টেবিলের সমস্ত ডেটা মুছে যায়
ঘ) কোন প্রভাব নেই২। নিম্নক্রমে সাজানো SQL কমান্ডের উদাহরণ কোনটি?
ক)SELECT * FROM student_info ORDER BY Id ASC;
খ)SELECT * FROM student_info ORDER BY Id DESC;✅
গ)SELECT * FROM student_info;
ঘ)INSERT INTO student_info VALUES(...);৩। কোনটি ডেটাবেস সর্টিং এর উদ্দেশ্য?
ক) টেবিলের ডেটা মুছে ফেলা
খ) কুয়েরি আউটপুট সাজানো ✅
গ) ডেটা ইনপুট বন্ধ করা
ঘ) মেমোরি সংরক্ষণ৪। সর্টিং এবং ইনডেক্সিং এর মধ্যে পার্থক্য কী?
ক) সর্টিং মূল ক্রম পরিবর্তন করে, ইনডেক্সিং করে না ✅
খ) ইনডেক্সিং মূল ক্রম পরিবর্তন করে
গ) উভয়ই মূল ক্রম পরিবর্তন করে
ঘ) উভয়ই মূল ক্রম পরিবর্তন করে না৫। ইনডেক্সিং কি?
ক) ডেটা মুছে ফেলার প্রক্রিয়া
খ) ডেটার সুসজ্জিত সূচি তৈরি করা ✅
গ) কুয়েরি লেখা
ঘ) টেবিল তৈরি করা৬। কোনটি ইনডেক্সিং এর সুবিধা নয়?
ক) ডেটা দ্রুত খুঁজে পাওয়া
খ) পারফরম্যান্স উন্নত করা
গ) ইনডেক্স তৈরি করলে মূল ফাইল পরিবর্তিত হয় ✅
ঘ) নতুন ডেটা স্বয়ংক্রিয়ভাবে আপডেট হয়৭। একাধিক ফিল্ডের উপর ইনডেক্স করা গেলে কী ঘটে?
ক) আপডেট করতে বেশি সময় লাগে ✅
খ) ডেটা দ্রুত খুঁজে পাওয়া যায় না
গ) ইনডেক্স কার্যকর হয় না
ঘ) মেমোরি লাগে না৮। নিম্নলিখিত কোন ফিল্ডের উপর সর্টিং করা সম্ভব নয়?
ক) Text
খ) Number
গ) OLE Object ✅
ঘ) Date৯। SQL দিয়ে ইউনিক ইনডেক্স তৈরি করতে কোন কমান্ড ব্যবহার হয়?
ক)CREATE INDEX index_name ON table_name(column1);
খ)CREATE UNIQUE INDEX index_name ON table_name(column1);✅
গ)DROP INDEX index_name ON table_name;
ঘ)SELECT * FROM table_name;১০। কোনটি ইনডেক্স ডিলিট করার কমান্ড?
ক)DROP INDEX index_name ON table_name;✅
খ)CREATE INDEX index_name;
গ)ALTER INDEX index_name;
ঘ)DELETE INDEX index_name;১১। সর্টিং দুই প্রকার হয়, সেগুলো হলো:
ক) Text & Number
খ) ASC & DESC ✅
গ) Unique & Non-unique
ঘ) Primary & Secondary১২। যদি টেবিলে নতুন রেকর্ড যোগ করা হয়, কোনটি স্বয়ংক্রিয়ভাবে আপডেট হয়?
ক) মূল টেবিল
খ) সর্টেড টেবিল
গ) ইনডেক্স ফাইল ✅
ঘ) SQL কুয়েরি১৩। ডেটা দ্রুত খুঁজে পেতে কোনটি ব্যবহার করা হয়?
ক) কুয়েরি
খ) সর্টিং
গ) ইনডেক্সিং ✅
ঘ) ফিল্টার১৪। কোনটি ইনডেক্সের অসুবিধা নয়?
ক) অনেক রেকর্ডে বেশি মেমোরি লাগে
খ) ইনডেক্স আপডেট সময়সাপেক্ষ
গ) মূল টেবিলের ডেটা পরিবর্তিত হয় না ✅
ঘ) ইনডেক্স সংরক্ষণ জায়গা নেয়১৫। নিম্নলিখিত কোনটি SQL সর্টিং এর সিনট্যাক্সের অংশ?
ক)WHERE condition
খ)ORDER BY column_name ASC/DESC✅
গ)CREATE INDEX
ঘ)DROP INDEX১৬। সর্টিং মূলত কোন প্রক্রিয়া?
ক) রেকর্ডগুলোকে মান অনুযায়ী ক্রমানুসারে সাজানো ✅
খ) রেকর্ড মুছে ফেলা
গ) টেবিল তৈরি করা
ঘ) ইনডেক্স তৈরি করা১৭। নিম্নলিখিত কোনটি ইনডেক্স করা যায়?
ক) একটি ফিল্ড
খ) দুইটি ফিল্ড
গ) একাধিক ফিল্ড
ঘ) সবগুলো ✅১৮। উদাহরণ টেবিলের Dist ফিল্ড A→Z সর্ট করলে Roll এর ক্রম হবে:
|Roll|Name|Dist|
|1|Zafar|Dhaka|
|2|Rana|Comilla|
|3|Kamal|Rangpur|
|4|Baki|Chittagong|
ক) ২,৩,৪,১
খ) ৪,২,১,৩ ✅
গ) ৩,১,২,৪
ঘ) ৪,৩,২,১১৯। ডেটাবেজ সাজানো প্রক্রিয়া হলো:
ক) i. সর্টিং & ii. ইনডেক্সিং ✅
খ) i. সর্টিং & iii. কুয়েরি
গ) ii. ইনডেক্সিং & iii. কুয়েরি
ঘ) সবগুলো নয়২০। যদি ডেটাবেসে প্রচুর তথ্য থাকে, সঠিক বিবৃতি হলো:
i. ডেটা দ্রুত খুঁজে পেতে ইন্ডেক্সিং প্রয়োজন
ii. এমনিতেই ডেটা দ্রুত খুঁজে পাওয়া যায়
iii. ডেটা খুঁজে বের করা সময়সাপেক্ষ
সঠিক উত্তর: খ) i ও iii ✅জ্ঞানমূলক প্রশ্ন (Knowledge-based Questions)
১। ডেটাবেজ সর্টিং কী?
উত্তর: এক বা একাধিক ফিল্ডের মানের উপর ভিত্তি করে টেবিলের রেকর্ডগুলোকে উর্ধ্বক্রম বা নিম্নক্রমে সাজানোর প্রক্রিয়াকে ডেটাবেজ সর্টিং বলা হয়।২। ইনডেক্সিং কী?
উত্তর: ডেটাবেজ থেকে দ্রুত তথ্য খুঁজে বের করার জন্য টেবিলের ডেটাকে একটি বিশেষ অর্ডারে সাজিয়ে সূচি (index) তৈরি করাকে ইনডেক্সিং বলা হয়।৩। SQL-এ উর্ধ্বক্রমে সাজানোর কমান্ডের সিনট্যাক্স কী?
উত্তর:৪। SQL-এ ইনডেক্স তৈরি করার কমান্ডের উদাহরণ কী?
উত্তর:৫। সর্টিং দুই প্রকার কী কী?
উত্তর:
১। উর্ধ্বক্রম/Ascending order (ASC)
২। অধঃক্রম/Descending order (DESC)
অনুধাবনমূলক প্রশ্ন (Understanding-based Questions)
১। সর্টিং ও ইনডেক্সিং এক নয়-ব্যাখ্যা কর।
উত্তর:
সর্টিং করলে টেবিলের একটি নতুন সর্টেড কপি তৈরি হয় এবং মূল ক্রম পরিবর্তন হয়।
ইনডেক্সিং মূল টেবিলকে পরিবর্তন না করে একটি ইনডেক্স ফাইল তৈরি করে, যা দ্রুত তথ্য খুঁজে পাওয়া সম্ভব করে।
২। OLE Object এর উপর সর্টিং সম্ভব নয় কেন?
উত্তর: OLE Object হলো বড় অবজেক্ট ডেটা (যেমন ছবি, ভিডিও, ফাইল) যা মান অনুযায়ী সর্ট করা সম্ভব নয়।৩। ইনডেক্স করা ফাইলে ডেটা এন্ট্রি করলে স্বয়ংক্রিয়ভাবে আপডেট হয় – ব্যাখ্যা কর।
উত্তর: ইনডেক্স ফাইল মূল ডেটার সাথে সংযুক্ত থাকে। নতুন রেকর্ড যোগ করলে ইনডেক্স ফাইলও স্বয়ংক্রিয়ভাবে আপডেট হয়ে যায়, যাতে তথ্য দ্রুত খুঁজে পাওয়া যায়।৪। ইনডেক্সিং ডেটাবেস সিস্টেমের কাজের গতি বৃদ্ধি করে কীভাবে?
উত্তর: ইনডেক্সিং ডেটাকে একটি সুসজ্জিত ক্রমে রাখে, ফলে কুয়েরি চলাকালে সার্চ টাইম কমে এবং ডেটা দ্রুত খুঁজে পাওয়া যায়।৫। সর্টিং এর তুলনায় ইনডেক্সিং-এ কম মেমোরি লাগে কেন?
উত্তর: সর্টিং করলে টেবিলের একটি নতুন কপি তৈরি হয় যা বেশি মেমোরি নেয়, কিন্তু ইনডেক্সিং শুধুমাত্র সূচি তৈরি করে, মূল টেবিল পরিবর্তন করে না।