✏️ Explanatory Question

সুপারকী কী? উদাহরণ দাও (Super Key)

👁 5 Views
📘 Detailed Answer
🟢 Easy
💡

Answer with Explanation

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

অর্থাৎ, কোনো table-এ যদি একটি attribute বা একাধিক attribute একসাথে ব্যবহার করে প্রতিটি record-কে আলাদাভাবে চিহ্নিত করা যায়, তাহলে সেই attribute বা attribute set-কে Super Key বলা হয়।

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


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

Super Key হলো এক বা একাধিক attribute-এর সমষ্টি, যার সাহায্যে relation বা table-এর প্রতিটি tuple-কে uniquely identify করা যায়। Super Key-তে অতিরিক্ত attribute থাকতে পারে, অর্থাৎ এটি সব সময় minimal নাও হতে পারে। উদাহরণস্বরূপ, যদি Student table-এ Roll number প্রতিটি ছাত্রকে আলাদাভাবে identify করে, তাহলে {Roll} একটি Super Key। আবার {Roll, Name} এবং {Roll, Class}-ও Super Key, কারণ Roll থাকায় row uniquely identify করা যায়।


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

ধরা যাক, একটি Student table আছে। সেখানে প্রত্যেক ছাত্রের Roll number আলাদা। তাই Roll number ব্যবহার করে প্রত্যেক ছাত্রকে uniquely identify করা যায়। এজন্য Roll একটি Super Key।

এখন যদি আমরা Roll-এর সাথে Name যোগ করি, যেমন {Roll, Name}, তাহলেও row uniquely identify করা যাবে। কারণ Roll একাই unique। তাই {Roll, Name}-ও Super Key। কিন্তু এখানে Name অতিরিক্ত attribute, কারণ Roll একাই record identify করার জন্য যথেষ্ট।

এই কারণে বলা হয়, Super Key-তে unnecessary বা extra attribute থাকতে পারে।

  সহজ উদাহরণ: একজন ছাত্রকে Roll Number দিয়ে চেনা যায়। তাই Roll Number Super Key। কিন্তু Roll Number + Name দিয়েও চেনা যায়। তাই সেটিও Super Key, যদিও Name এখানে অতিরিক্ত।


  উদাহরণ: Student Table

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

Roll Name Class Phone
1 Rahul 10 9876543210
2 Sima 10 9876543211
3 Amit 10 9876543212

উপরের table-এ Roll প্রতিটি student-এর জন্য unique। তাই Roll ব্যবহার করে প্রত্যেক student-কে আলাদাভাবে identify করা যায়।


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

  উপরের Student table অনুযায়ী নিচের attribute set-গুলো Super Key হতে পারে:

  •   {Roll}
  •   {Roll, Name}
  •   {Roll, Class}
  •   {Roll, Phone}
  •   {Roll, Name, Class}

কারণ এই সব attribute set-এর মধ্যে Roll আছে, আর Roll একাই প্রত্যেক row uniquely identify করতে পারে।


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

  •   Unique Identification: Super Key table-এর প্রতিটি tuple বা row-কে uniquely identify করতে পারে।
  •   One or More Attributes: এটি একটি attribute বা একাধিক attribute-এর সমষ্টি হতে পারে।
  •   Extra Attribute থাকতে পারে: Super Key-তে এমন attribute থাকতে পারে, যা unique identification-এর জন্য জরুরি নয়।
  •   Candidate Key-এর ভিত্তি: Candidate Key হলো minimal Super Key। অর্থাৎ, Super Key থেকে অতিরিক্ত attribute বাদ দিলে Candidate Key পাওয়া যায়।
  •   একাধিক Super Key থাকতে পারে: একটি table-এ অনেকগুলো Super Key থাকতে পারে।

  Super Key কীভাবে কাজ করে?

নিচের tuple-গুলো বিবেচনা করো:

(1, 'Rahul', 10, '9876543210')
(2, 'Sima', 10, '9876543211')
(3, 'Amit', 10, '9876543212')

এখানে Roll value 1, 2, 3 প্রত্যেক row-এর জন্য আলাদা। তাই Roll ব্যবহার করে প্রতিটি tuple আলাদা করে চিহ্নিত করা যায়।

তাই:

{Roll}

একটি Super Key।

আবার:

{Roll, Name}

এটিও Super Key, কারণ Roll থাকায় row uniquely identify করা যায়। তবে Name অতিরিক্ত attribute হিসেবে আছে।


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

বিষয় Super Key Candidate Key
অর্থ যে attribute set row uniquely identify করে Minimal Super Key
Extra Attribute থাকতে পারে থাকে না
Minimal কিনা সব সময় minimal নয় সব সময় minimal
সংখ্যা একটি table-এ অনেক Super Key থাকতে পারে Super Key-এর তুলনায় কম Candidate Key থাকে
উদাহরণ {Roll}, {Roll, Name}, {Roll, Class} {Roll}

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

Super Key, Candidate Key এবং Primary Key একে অপরের সাথে সম্পর্কিত।

  •   প্রথমে table-এর সব possible Super Key নির্ধারণ করা হয়।
  •   তারপর Super Key থেকে অতিরিক্ত attribute বাদ দিয়ে minimal Super Key নির্বাচন করা হয়। সেটিই Candidate Key।
  •   Candidate Keyগুলোর মধ্যে একটি key-কে Primary Key হিসেবে নির্বাচন করা হয়।

  উদাহরণ: যদি Student table-এ Roll এবং Phone দুটোই unique হয়, তাহলে:

  •   {Roll} = Candidate Key
  •   {Phone} = Candidate Key
  •   {Roll, Name} = Super Key
  •   {Phone, Class} = Super Key

এখন {Roll} বা {Phone}-এর মধ্যে যেকোনো একটিকে Primary Key হিসেবে নির্বাচন করা যেতে পারে।


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

যে attribute বা attribute set table-এর প্রতিটি row-কে uniquely identify করতে পারে না, সেটি Super Key নয়।

Student table-এ যদি Class column-এর value সব ছাত্রের জন্য 10 হয়, তাহলে {Class} Super Key নয়। কারণ Class দিয়ে একজন নির্দিষ্ট ছাত্রকে আলাদা করে চেনা যায় না।

আবার যদি একাধিক ছাত্রের Name একই হতে পারে, তাহলে {Name} Super Key নয়।


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

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

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

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

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

ধরা যাক, একটি class register আছে। সেখানে অনেক ছাত্রের নাম লেখা আছে। যদি শুধু নাম দেখে ছাত্রকে চেনার চেষ্টা করি, সমস্যা হতে পারে, কারণ একই নামে একাধিক ছাত্র থাকতে পারে। কিন্তু Roll Number সাধারণত প্রত্যেক ছাত্রের জন্য আলাদা হয়। তাই Roll Number দিয়ে student-কে সহজে identify করা যায়।

এখন Roll Number-এর সাথে Name বা Class যোগ করলেও student-কে identify করা যাবে। তাই Roll Number একা Super Key এবং Roll Number + Name-ও Super Key। কিন্তু Roll Number একাই যথেষ্ট হওয়ায় Roll Number + Name-এ Name extra attribute।


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

  প্রথমে Super Key-এর সংজ্ঞা লিখবে।
  তারপর লিখবে এটি এক বা একাধিক attribute হতে পারে।
  উল্লেখ করবে যে Super Key row বা tuple uniquely identify করে।
  লিখবে যে Super Key-তে extra attribute থাকতে পারে।
  শেষে Student table-এর একটি সহজ উদাহরণ দেবে।


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

  Super Key হলো এমন key, যা table-এর প্রতিটি row-কে uniquely identify করে; কিন্তু এতে অতিরিক্ত attribute থাকতে পারে।


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

DBMS-এর Relational Model-এ Super Key হলো এক বা একাধিক attribute-এর সমষ্টি, যার সাহায্যে একটি relation বা table-এর প্রতিটি tuple বা row-কে uniquely identify করা যায়। Super Key-তে প্রয়োজনের অতিরিক্ত attribute থাকতে পারে, তাই এটি সব সময় minimal হয় না। উদাহরণস্বরূপ, Student table-এর attributes যদি Roll, Name, Class এবং Phone হয় এবং Roll প্রতিটি student-এর জন্য unique হয়, তাহলে {Roll} একটি Super Key। আবার {Roll, Name}, {Roll, Class} এবং {Roll, Phone}-ও Super Key, কারণ এগুলোর মধ্যে Roll আছে, যা row uniquely identify করতে পারে। তাই Super Key database table-এর record আলাদাভাবে শনাক্ত করার জন্য গুরুত্বপূর্ণ।