ষষ্ঠ অধ্যায় পাঠ-৮: ডেটাবেজ রিলেশন এবং এর প্রকারভেদ
👨🏫 গল্প শুরু
একবার লালমাই কলেজে নতুন ICT শিক্ষক মি. রবি স্যার ক্লাসে ঢুকে বললেন –
“তোমরা জানো, আমাদের কলেজের শিক্ষক আর সাবজেক্টের মধ্যে একটা সুন্দর সম্পর্ক আছে। একে বলে ডেটাবেজ রিলেশন।”
ছাত্ররা অবাক হয়ে তাকাল!
স্যার বললেন –
“যেমন, তোমাদের তথ্য টেবিল আকারে রাখা হয়। আবার সাবজেক্টের তথ্যও আলাদা টেবিলে রাখা হয়। এখন যদি শিক্ষক টেবিলের রেকর্ডের সাথে সাবজেক্ট টেবিলের রেকর্ডকে সম্পর্কিত করি, সেটাই হলো ডেটাবেজ রিলেশন।”
📝 ডেটাবেজ রিলেশনের শর্ত (শিক্ষকের উপদেশ)
মি. রবি স্যার বললেন –
“রিলেশন করতে হলে কয়েকটা নিয়ম মানতেই হবে—
1️⃣ দুই টেবিলে কমন ফিল্ড থাকতে হবে। যেমন: Teacher_ID বা Student_Roll।
2️⃣ অন্তত একটি টেবিলে অবশ্যই Primary Key থাকতে হবে।”
🌿 ডেটাবেজ রিলেশনের প্রকারভেদ (ক্লাসের গল্প)
১️⃣ One to One Relation
📌 এক শিক্ষক = এক সাবজেক্ট
👉 যেমন: Teacher_Info টেবিলের একজন শিক্ষক শুধু একটি Subject_Info টেবিলের সাবজেক্ট পড়াচ্ছেন।
উদাহরণ: স্যার রুবেল কেবলমাত্র Physics পড়ান।
২️⃣ One to Many Relation
📌 এক শিক্ষক = অনেক সাবজেক্ট
👉 একজন শিক্ষক একাধিক সাবজেক্ট পড়াতে পারবেন, কিন্তু একটি সাবজেক্ট একাধিক শিক্ষক নেবেন না।
উদাহরণ: স্যার মিজান Physics + Math দুইটাই পড়ান।
৩️⃣ Many to One Relation
📌 অনেক শিক্ষক = এক সাবজেক্ট
👉 অনেক শিক্ষক একই সাবজেক্ট একসাথে পড়াতে পারেন, কিন্তু একজন শিক্ষক একাধিক সাবজেক্ট নিতে পারবেন না।
উদাহরণ: Physics পড়াচ্ছেন স্যার আরিফ, স্যার মুরাদ, স্যার জসিম – সবাই একই সাবজেক্ট নিচ্ছেন।
৪️⃣ Many to Many Relation
📌 অনেক শিক্ষক ↔ অনেক সাবজেক্ট
👉 একজন শিক্ষক একাধিক সাবজেক্ট পড়াতে পারেন এবং একটি সাবজেক্ট একাধিক শিক্ষক পড়াতে পারেন।
এক্ষেত্রে একটি তৃতীয় Junction Table লাগে, যেখানে দুই টেবিলের Primary Key গুলো Foreign Key হয়ে যায়।
উদাহরণ: স্যার কামাল Physics + Chemistry পড়ান, আবার Chemistry পড়ান স্যার ফরিদও।
🎯 গল্পভিত্তিক উদাহরণ
একদিন কলেজ বোর্ডে নিয়ম হলো:
-
শুরুতে → একজন শিক্ষক = একটি সাবজেক্ট (One to One)
-
কিছুদিন পর → শিক্ষক কমে গেলে, একজন শিক্ষক = অনেক সাবজেক্ট (One to Many)
-
আবার → নতুন শিক্ষক এলো, তখন অনেক শিক্ষক = একটি সাবজেক্ট (Many to One)
-
পরে → সিলেবাস বদলালো, তখন শিক্ষক ↔ সাবজেক্ট দুদিকেই অনেক (Many to Many)।
✨ সারসংক্ষেপ (হ্যান্ড নোট)
ডেটাবেজ রিলেশন হলো বিভিন্ন টেবিলের লজিক্যাল সম্পর্ক।
👉 শর্ত: কমন ফিল্ড + Primary Key
👉 প্রকারভেদ: One to One, One to Many, Many to One, Many to Many
👉 Many to Many তে Junction Table প্রয়োজন।✨ বহুনির্বাচনী প্রশ্ন (MCQ)
১. DBMS এর পূর্ণরূপ কী?
ক) Data Base Manage System
খ) Data Base Management System ✅
গ) Data Binary Management System
ঘ) Data Business Management System
২. RDBMS-এ “R” দ্বারা কী বোঝায়?
ক) Ready
খ) Relational ✅
গ) Real
ঘ) Register
৩. ডেটাবেজে একসাথে একাধিক টেবিল সংরক্ষণের জন্য ব্যবহৃত হয়—
ক) Record
খ) File
গ) Schema ✅
ঘ) Key
৪. ডেটাবেজের সারিকে কী বলে?
ক) Column
খ) Row ✅
গ) Attribute
ঘ) Field
৫. ডেটাবেজের কলামকে কী বলা হয়?
ক) Tuple
খ) Attribute ✅
গ) Schema
ঘ) Domain
৬. Primary Key কাকে বলে?
ক) যেকোনো একটি Key
খ) Table-এর সর্বনিম্ন Key
গ) Table-এর এমন Attribute যা অনন্য ✅
ঘ) যেকোনো Index
৭. Foreign Key ব্যবহার হয়—
ক) নতুন ডেটা প্রবেশ করাতে
খ) দুটি টেবিল যুক্ত করতে ✅
গ) টেবিল মুছে ফেলতে
ঘ) ডেটা সাজাতে
৮. SQL-এর পূর্ণরূপ কী?
ক) Standard Question Language
খ) Structured Query Language ✅
গ) Sequential Query Language
ঘ) System Question Language
৯. টেবিল তৈরির জন্য SQL কমান্ড কোনটি?
ক) CREATE TABLE ✅
খ) MAKE TABLE
গ) NEW TABLE
ঘ) FORM TABLE
১০. টেবিল থেকে ডেটা মুছে ফেলার জন্য কোন SQL কমান্ড ব্যবহার করা হয়?
ক) REMOVE
খ) DELETE ✅
গ) DROP TABLE
ঘ) ERASE
১১. SELECT কমান্ড ব্যবহার করা হয়—
ক) ডেটা আপডেট করতে
খ) ডেটা নির্বাচন করতে ✅
গ) টেবিল মুছতে
ঘ) নতুন টেবিল বানাতে
১২. WHERE ক্লজ ব্যবহৃত হয়—
ক) নির্দিষ্ট শর্ত দিয়ে ডেটা খুঁজতে ✅
খ) ডেটা সাজাতে
গ) টেবিল তৈরি করতে
ঘ) ডেটা প্রবেশ করাতে
১৩. ORDER BY ব্যবহার করা হয়—
ক) টেবিল তৈরি করতে
খ) ডেটা ক্রমানুসারে সাজাতে ✅
গ) টেবিল ডিলিট করতে
ঘ) ডেটা আপডেট করতে
১৪. ডেটাবেজে Null মান বোঝায়—
ক) ০ (শূন্য)
খ) ফাঁকা / অজানা মান ✅
গ) ভুল ডেটা
ঘ) অসীম
১৫. GROUP BY ব্যবহৃত হয়—
ক) একাধিক টেবিল ডিলিট করতে
খ) ডেটা গ্রুপভিত্তিক ভাগ করতে ✅
গ) নতুন টেবিল বানাতে
ঘ) ইনডেক্স তৈরি করতে
১৬. SQL-এ UPDATE কমান্ড ব্যবহৃত হয়—
ক) টেবিল আপডেট করতে ✅
খ) নতুন ডেটা Insert করতে
গ) টেবিল Drop করতে
ঘ) রেকর্ড Delete করতে
১৭. JOIN ব্যবহৃত হয়—
ক) ডেটা সাজাতে
খ) দুটি বা ততোধিক টেবিল যুক্ত করতে ✅
গ) টেবিল মুছতে
ঘ) ডেটা আপডেট করতে
১৮. COUNT ফাংশন ব্যবহার হয়—
ক) রেকর্ড সংখ্যা গণনা করতে ✅
খ) টেবিল তৈরি করতে
গ) টেবিল মুছতে
ঘ) Index তৈরি করতে
১৯. ডেটাবেজে ডুপ্লিকেট বাদ দিতে কোন কীওয়ার্ড ব্যবহৃত হয়?
ক) UNIQUE
খ) DISTINCT ✅
গ) CLEAR
ঘ) ONLY
২০. DROP TABLE কমান্ডের কাজ কী?
ক) টেবিল থেকে রেকর্ড মুছবে
খ) টেবিল সম্পূর্ণ মুছে দেবে ✅
গ) টেবিল সাজাবে
ঘ) টেবিল আপডেট করবেপ্রশ্ন ২১:
রিলেশনাল ডেটাবেজে “Relation” দ্বারা কী বোঝায়?
ক) ফাইল
খ) টেবিল ✅
গ) কী
ঘ) রেকর্ড
প্রশ্ন ২২:
রিলেশন একটি ডেটাবেজে সাধারণত কোন আকারে প্রকাশ পায়?
ক) রো
খ) কলাম
গ) টেবিল ✅
ঘ) স্কিমা
প্রশ্ন ২৩:
রিলেশনের প্রতিটি সারিকে কী বলা হয়?
ক) অ্যাট্রিবিউট
খ) টুপল ✅
গ) ফিল্ড
ঘ) কী
প্রশ্ন ২৪:
রিলেশনের প্রতিটি কলামকে কী বলা হয়?
ক) টুপল
খ) অ্যাট্রিবিউট ✅
গ) রেকর্ড
ঘ) রিলেশন
প্রশ্ন ২৫:
একটি রিলেশনের অ্যাট্রিবিউট বা ফিল্ড এর ডোমেইন কী নির্দেশ করে?
ক) ডেটাবেজের নাম
খ) ফিল্ডের মানের সেট ✅
গ) টেবিলের সংখ্যা
ঘ) প্রাইমারি কী
প্রশ্ন ২৬:
রিলেশনাল ডেটাবেজে প্রতিটি টেবিলের সারি কী নির্দেশ করে?
ক) একটি অবজেক্টের ইনস্ট্যান্স ✅
খ) একটি ফিল্ড
গ) একটি ডোমেইন
ঘ) একটি ডেটাটাইপ
প্রশ্ন ২৭:
কোনটি রিলেশনের প্রকার নয়?
ক) One-to-One
খ) One-to-Many
গ) Many-to-Many
ঘ) One-to-All ✅
প্রশ্ন ২৮:
“একজন ছাত্রের একটি আইডি, এবং প্রতিটি আইডির জন্য একজন ছাত্র” — এটি কোন ধরনের Relation?
ক) One-to-One ✅
খ) One-to-Many
গ) Many-to-Many
ঘ) None
প্রশ্ন ২৯:
“একজন শিক্ষক অনেক শিক্ষার্থীকে পড়ান” — এটি কোন Relation?
ক) One-to-One
খ) One-to-Many ✅
গ) Many-to-Many
ঘ) Recursive
প্রশ্ন ৩০:
“একজন শিক্ষার্থী একাধিক কোর্সে ভর্তি হতে পারে এবং প্রতিটি কোর্সে অনেক শিক্ষার্থী থাকতে পারে” — এটি কোন Relation?
ক) One-to-One
খ) One-to-Many
গ) Many-to-Many ✅
ঘ) None
প্রশ্ন ৩১:
One-to-One Relation এ সাধারণত কোন Key ব্যবহার করা হয়?
ক) Foreign Key
খ) Primary Key ✅
গ) Super Key
ঘ) Candidate Key
প্রশ্ন ৩২:
রিলেশনে Foreign Key কী নির্দেশ করে?
ক) অন্য টেবিলের Primary Key ✅
খ) নিজের Primary Key
গ) একটি Unique Key
ঘ) একটি Super Key
প্রশ্ন ৩৩:
Many-to-Many Relation বাস্তবায়নে কী প্রয়োজন হয়?
ক) Linking Table ✅
খ) Single Table
গ) Primary Key
ঘ) Schema
প্রশ্ন ৩৪:
Recursive Relation দ্বারা কী বোঝানো হয়?
ক) একই টেবিলের সাথে নিজস্ব সম্পর্ক ✅
খ) অন্য টেবিলের সাথে সম্পর্ক
গ) Many-to-Many সম্পর্ক
ঘ) Relation Schema
প্রশ্ন ৩৫:
রিলেশনাল ডেটাবেজে Entity গুলোর মধ্যে সম্পর্ক কীভাবে প্রকাশ করা হয়?
ক) Schema Diagram ✅
খ) Flowchart
গ) ERD
ঘ) UML
প্রশ্ন ৩৬:
রিলেশনে প্রতিটি সারির মান আলাদা হওয়া আবশ্যক কেন?
ক) পুনরাবৃত্তি ঠেকাতে ✅
খ) ডোমেইন বৃদ্ধি করতে
গ) টেবিল বড় করতে
ঘ) কী তৈরি করতে
প্রশ্ন ৩৭:
“একটি পাসপোর্ট কেবল একজন ব্যক্তির নামে হয়” — এটি কোন Relation?
ক) One-to-One ✅
খ) One-to-Many
গ) Many-to-Many
ঘ) Recursive
প্রশ্ন ৩৮:
“একজন লেখক অনেক বই লিখতে পারেন, তবে একটি বই একজন লেখকের হতে পারে” — Relation এর ধরণ কী?
ক) One-to-One
খ) One-to-Many ✅
গ) Many-to-Many
ঘ) Recursive
প্রশ্ন ৩৯:
Relation Schema কী?
ক) Relation এর গঠন ✅
খ) Relation এর মান
গ) Relation এর রেকর্ড সংখ্যা
ঘ) Relation এর টুপল
প্রশ্ন ৪০:
একটি Relation এ কয়টি প্রকার সম্পর্ক পাওয়া যায়?
ক) ২
খ) ৩ ✅
গ) ৪
ঘ) ৫🔹 জ্ঞানমূলক প্রশ্ন (Knowledge-based)
প্রশ্ন–১: রিলেশন (Relation) বলতে কী বোঝায়?
উত্তর: রিলেশন হলো একটি দ্বিমাত্রিক টেবিল যেখানে সারি (Row) ও কলাম (Column)-এর মাধ্যমে তথ্য সঞ্চিত থাকে।প্রশ্ন–২: রিলেশনের সারিকে কী বলা হয়?
উত্তর: রিলেশনের সারিকে Tuple বা Record বলা হয়।প্রশ্ন–৩: রিলেশনের কলামকে কী বলা হয়?
উত্তর: রিলেশনের কলামকে Attribute বা Field বলা হয়।প্রশ্ন–৪: এক-এক (One-to-One) রিলেশনের উদাহরণ দাও।
উত্তর: একজন জাতীয় পরিচয়পত্র নম্বরের সাথে একজন নাগরিক সম্পর্কযুক্ত।প্রশ্ন–৫: অনেক-অনেক (Many-to-Many) রিলেশনের উদাহরণ দাও।
উত্তর: একজন শিক্ষার্থী অনেকগুলো কোর্স করতে পারে এবং একটি কোর্সে অনেক শিক্ষার্থী থাকতে পারে।
🔹 অনুধাবনমূলক প্রশ্ন (Comprehension-based)
প্রশ্ন–১: কেন বলা হয় যে রিলেশনাল ডেটাবেজ টেবিল আকারে তথ্য সংরক্ষণ করে?
উত্তর: কারণ প্রতিটি Relation আসলে একটি টেবিল, যেখানে সারি (Tuple) হলো তথ্যের রেকর্ড এবং কলাম (Attribute) হলো তথ্যের বৈশিষ্ট্য।প্রশ্ন–২: এক-অনেক (One-to-Many) সম্পর্ক শিক্ষাক্ষেত্রে কীভাবে দেখা যায়?
উত্তর: একজন শিক্ষক অনেক শিক্ষার্থীকে পড়াতে পারেন, কিন্তু একজন শিক্ষার্থীর প্রধান শিক্ষক একজনই হয়।প্রশ্ন–৩: Many-to-Many সম্পর্ক ব্যবহারে কেন অতিরিক্ত টেবিলের প্রয়োজন হয়?
উত্তর: কারণ সরাসরি Many-to-Many সম্পর্ক ডেটাবেজে অসুবিধা তৈরি করে, তাই Junction Table বা Associative Table ব্যবহার করে সম্পর্কটি সঠিকভাবে প্রকাশ করা হয়।প্রশ্ন–৪: ডেটাবেজে Relation ব্যবহার করলে তথ্য অনুসন্ধান সহজ হয় কেন?
উত্তর: কারণ Relation টেবিল আকারে সাজানো থাকায় Query ব্যবহার করে সহজে তথ্য খুঁজে বের করা যায়।প্রশ্ন–৫: যদি একজন কর্মচারীর একাধিক ফোন নম্বর থাকে, তাহলে এটি কোন ধরনের Relation? উদাহরণসহ ব্যাখ্যা করো।
উত্তর: এটি One-to-Many Relation। একজন কর্মচারীর সাথে একাধিক ফোন নম্বর যুক্ত হতে পারে, কিন্তু একটি ফোন নম্বর শুধুমাত্র একজন কর্মচারীর সাথেই যুক্ত থাকবে।