ডেটাবেজ রিলেশন এবং এর প্রকারভেদ

ষষ্ঠ অধ্যায় পাঠ-৮: ডেটাবেজ রিলেশন এবং এর প্রকারভেদ


👨‍🏫 গল্প শুরু
একবার লালমাই কলেজে নতুন 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। একজন কর্মচারীর সাথে একাধিক ফোন নম্বর যুক্ত হতে পারে, কিন্তু একটি ফোন নম্বর শুধুমাত্র একজন কর্মচারীর সাথেই যুক্ত থাকবে।

Facebook
Twitter
Email
Print

Leave a Reply

Your email address will not be published. Required fields are marked *