✏️ Explanatory Question

ক্যান্ডিডেট কী বলতে কী বোঝো? উদাহরণ দাও। (Candidate Key)

👁 0 Views
📘 Detailed Answer
🟢 Easy
💡

Answer with Explanation

  উত্তর: DBMS বা Database Management System-এর Relational Model-এ Candidate Key বা ক্যান্ডিডেট কী বলতে এমন একটি attribute বা attributes-এর সমষ্টিকে বোঝায়, যার সাহায্যে একটি table বা relation-এর প্রতিটি tuple বা row-কে uniquely identify করা যায় এবং যার মধ্যে কোনো অতিরিক্ত বা অপ্রয়োজনীয় attribute থাকে না।

Candidate Key হলো একটি minimal super key। অর্থাৎ, Candidate Key এমন একটি super key, যেখান থেকে কোনো attribute বাদ দিলে সেটি আর row-কে uniquely identify করতে পারবে না।

  সহজ ভাষায়: যে key table-এর প্রতিটি row-কে আলাদাভাবে চিহ্নিত করতে পারে এবং যার মধ্যে কোনো extra attribute নেই, তাকে Candidate Key বলা হয়।


  পরীক্ষার জন্য সংক্ষিপ্ত উত্তর

Candidate Key হলো এমন একটি minimal attribute বা attribute set, যার সাহায্যে table-এর প্রতিটি tuple বা row-কে uniquely identify করা যায়। Candidate Key-তে কোনো unnecessary বা extra attribute থাকে না। একটি table-এ একাধিক Candidate Key থাকতে পারে, কিন্তু তাদের মধ্যে একটি key-কে Primary Key হিসেবে নির্বাচন করা হয়। উদাহরণস্বরূপ, Student table-এ যদি Roll এবং Phone দুটোই unique হয়, তাহলে {Roll} এবং {Phone} দুটোই Candidate Key হতে পারে।


  সহজভাবে ব্যাখ্যা

ধরা যাক, একটি Student table আছে। সেখানে প্রত্যেক ছাত্রের Roll number আলাদা এবং প্রত্যেক ছাত্রের Phone number-ও আলাদা। তাহলে Roll number ব্যবহার করে যেমন একজন ছাত্রকে আলাদাভাবে identify করা যায়, Phone number ব্যবহার করেও তাকে identify করা যায়।

এই অবস্থায় Roll এবং Phone—দুটিই Candidate Key হতে পারে, কারণ দুটিই আলাদা আলাদা ভাবে প্রতিটি row uniquely identify করতে পারে।

কিন্তু {Roll, Name} Candidate Key নয়, কারণ Roll একাই যথেষ্ট। এখানে Name extra attribute। তাই {Roll, Name} Super Key হতে পারে, কিন্তু Candidate Key নয়।

  সহজ উদাহরণ: একজন ছাত্রকে Roll Number দিয়েও চেনা যায়, আবার Phone Number দিয়েও চেনা যায়। যদি দুইটি value-ই unique হয়, তাহলে Roll এবং Phone—দুটিই Candidate Key হতে পারে।


  উদাহরণ: Student Table

ধরা যাক, একটি Student table আছে:

Roll Name Class Phone Email
1 Rahul 10 9876543210 rahul@gmail.com
2 Sima 10 9876543211 sima@gmail.com
3 Amit 10 9876543212 amit@gmail.com

উপরের table-এ Roll, Phone এবং Email প্রত্যেক student-এর জন্য আলাদা। তাই এই তিনটি attribute আলাদা আলাদা ভাবে প্রতিটি row uniquely identify করতে পারে।


  এই table-এর Candidate Key-এর উদাহরণ

  উপরের Student table অনুযায়ী Candidate Key হতে পারে:

  •   {Roll}
  •   {Phone}
  •   {Email}

কারণ Roll, Phone এবং Email—প্রত্যেকটি attribute আলাদা আলাদা ভাবে প্রতিটি student-কে uniquely identify করতে পারে।


  কোনগুলো Candidate Key নয়?

যে attribute বা attribute set row uniquely identify করতে পারে না অথবা যার মধ্যে extra attribute থাকে, সেটি Candidate Key নয়।

  •   {Name} Candidate Key নয়, কারণ একই নামের একাধিক student থাকতে পারে।
  •   {Class} Candidate Key নয়, কারণ একই class-এ অনেক student থাকতে পারে।
  •   {Roll, Name} Candidate Key নয়, কারণ Roll একাই student-কে identify করতে পারে। এখানে Name extra attribute।

  Candidate Key-এর প্রধান বৈশিষ্ট্য

  •   Uniqueness: Candidate Key table-এর প্রতিটি tuple বা row-কে uniquely identify করে।
  •   Minimality: Candidate Key-তে কোনো extra বা unnecessary attribute থাকে না।
  •   Super Key-এর subset: Candidate Key হলো minimal super key।
  •   Multiple Candidate Keys: একটি table-এ একাধিক Candidate Key থাকতে পারে।
  •   Primary Key নির্বাচন: Candidate Key-গুলোর মধ্যে একটি key-কে Primary Key হিসেবে নির্বাচন করা হয়।

  Candidate Key কীভাবে identify করব?

Candidate Key identify করার জন্য নিচের ধাপগুলো অনুসরণ করা যায়:

  •   প্রথমে table-এর সব attributes দেখবে।
  •   যে attribute বা attribute set প্রতিটি row uniquely identify করতে পারে, তা খুঁজবে।
  •   তারপর দেখবে attribute set-এর মধ্যে কোনো extra attribute আছে কি না।
  •   যদি কোনো extra attribute না থাকে এবং row uniquely identify করা যায়, তাহলে সেটি Candidate Key।

  উদাহরণ: Student table-এ Roll unique হলে {Roll} Candidate Key। কিন্তু {Roll, Name} Candidate Key নয়, কারণ Roll একাই যথেষ্ট।


  Super Key এবং Candidate Key-এর পার্থক্য

বিষয় Super Key Candidate Key
অর্থ যে key row uniquely identify করে Minimal Super Key
Extra Attribute থাকতে পারে থাকে না
Minimal কিনা সব সময় minimal নয় সব সময় minimal
উদাহরণ {Roll}, {Roll, Name}, {Roll, Class} {Roll}
ব্যবহার সব possible unique identifying set বোঝায় Primary Key নির্বাচনের জন্য ব্যবহার করা হয়

  Candidate Key এবং Primary Key-এর সম্পর্ক

একটি table-এ একাধিক Candidate Key থাকতে পারে। কিন্তু database designer সাধারণত Candidate Key-গুলোর মধ্যে একটি key নির্বাচন করে Primary Key হিসেবে ব্যবহার করেন।

ধরা যাক, Student table-এ Roll, Phone এবং Email—তিনটি attribute-ই unique।

  •   {Roll} = Candidate Key
  •   {Phone} = Candidate Key
  •   {Email} = Candidate Key

এখন এই Candidate Key-গুলোর মধ্যে {Roll} কে Primary Key হিসেবে নির্বাচন করা যেতে পারে।


  Candidate Key, Primary Key এবং Alternate Key

Key অর্থ উদাহরণ
Candidate Key যে minimal key row uniquely identify করতে পারে {Roll}, {Phone}, {Email}
Primary Key Candidate Key-গুলোর মধ্যে নির্বাচিত main key {Roll}
Alternate Key যে Candidate Key primary key হিসেবে নির্বাচিত হয়নি {Phone}, {Email}

  বাস্তব উদাহরণ: School Database

ধরা যাক, একটি school database-এ Student table আছে:

Student (Roll, Name, Class, Phone, Email)
  •   Roll প্রতিটি student-এর জন্য unique হলে {Roll} Candidate Key।
  •   Phone প্রতিটি student-এর জন্য unique হলে {Phone} Candidate Key।
  •   Email প্রতিটি student-এর জন্য unique হলে {Email} Candidate Key।
  •   Name Candidate Key নয়, কারণ একই নামের একাধিক student থাকতে পারে।
  •   Class Candidate Key নয়, কারণ একই class-এ অনেক student থাকতে পারে।

  শ্রেণিকক্ষে বোঝানোর সহজ পদ্ধতি

শিক্ষক ছাত্রদের এভাবে বোঝাতে পারেন:

ধরা যাক, একটি class register আছে। সেখানে ছাত্রদের Roll Number, Phone Number এবং Email লেখা আছে। যদি প্রত্যেক ছাত্রের Roll Number আলাদা হয়, তাহলে Roll Number দিয়ে ছাত্রকে চেনা যায়। যদি Phone Number-ও প্রত্যেকের আলাদা হয়, তাহলে Phone Number দিয়েও ছাত্রকে চেনা যায়। আবার Email আলাদা হলে Email দিয়েও ছাত্রকে চেনা যায়।

তাই Roll, Phone এবং Email—এই তিনটি attribute আলাদা আলাদা ভাবে ছাত্রকে identify করতে পারে। তাই এগুলো Candidate Key হতে পারে।

কিন্তু Roll Number-এর সাথে Name যোগ করলে সেটি আর Candidate Key থাকবে না, কারণ Roll Number একাই যথেষ্ট। Candidate Key সবসময় minimal হওয়া দরকার।


  পরীক্ষায় লেখার নিয়ম

  প্রথমে Candidate Key-এর সংজ্ঞা লিখবে।
  তারপর লিখবে যে এটি minimal super key।
  উল্লেখ করবে যে এটি tuple বা row uniquely identify করে।
  লিখবে যে Candidate Key-তে extra attribute থাকে না।
  Student table-এর Roll, Phone বা Email-এর উদাহরণ দেবে।
  শেষে লিখবে Candidate Key-গুলোর মধ্যে একটি Primary Key হিসেবে নির্বাচন করা হয়।


  মনে রাখার সহজ সূত্র

  Candidate Key হলো minimal Super Key—যা row uniquely identify করে এবং যার মধ্যে কোনো extra attribute থাকে না।


  চূড়ান্ত পরীক্ষামূলক উত্তর

DBMS-এর Relational Model-এ Candidate Key হলো এমন একটি attribute বা attributes-এর minimal set, যার সাহায্যে একটি table-এর প্রতিটি tuple বা row-কে uniquely identify করা যায়। Candidate Key হলো minimal Super Key, অর্থাৎ এর মধ্যে কোনো অতিরিক্ত attribute থাকে না। একটি table-এ একাধিক Candidate Key থাকতে পারে, কিন্তু তাদের মধ্যে একটি key-কে Primary Key হিসেবে নির্বাচন করা হয়। উদাহরণস্বরূপ, Student table-এর attributes যদি Roll, Name, Class, Phone এবং Email হয় এবং Roll, Phone ও Email প্রত্যেক student-এর জন্য unique হয়, তাহলে {Roll}, {Phone} এবং {Email} Candidate Key হতে পারে। কিন্তু {Roll, Name} Candidate Key নয়, কারণ Roll একাই row uniquely identify করার জন্য যথেষ্ট।