ক্যান্ডিডেট কী (Candidate Key) হলো এমন একটি অ্যাট্রিবিউট বা অ্যাট্রিবিউটের সেট যা একটি টেবিলের প্রাইমারি কী হতে পারে। প্রতিটি টেবিলে একাধিক ক্যান্ডিডেট কী থাকতে পারে, কিন্তু প্রাইমারি কী শুধু একটি হতে পারে।
বৈশিষ্ট্য
- ইউনিক (Unique): প্রতিটি রোके ইউনিকভাবে আইডেন্টিফাই করতে পারে।
- মিনিমাল (Minimal): কোনো সাবসেট রিমুভ করলে আর ইউনিক থাকে না (Irreducible)।
- নন-নাল (Non-null): প্রাইমারি কী হওয়ার জন্য NULL না থাকা উচিত।
- সিঙ্গল বা কম্পোজিট: একক কলাম বা একাধিক কলামের কম্বিনেশন হতে পারে।
সুপার কী থেকে ক্যান্ডিডেট কী
সুপার কী (Super Key) = যেকোনো ইউনিক আইডেন্টিফায়ার সেট (রিডান্ডেন্ট অ্যাট্রিবিউট থাকতে পারে)।
ক্যান্ডিডেট কী = মিনিমাল সুপার কী (No Redundancy)।
উদাহরণ: Employee টেবিল
- EmployeeID — ইউনিক, নন-নাল, মিনিমাল → Candidate Key
- EmployeeEmail — ইউনিক, নন-নাল, মিনিমাল → Candidate Key
- {EmployeeID, EmployeeEmail} — সুপার কী (রিডান্ডেন্ট, মিনিমাল নয়) → Candidate Key নয়
এখানে দুইটি ক্যান্ডিডেট কী রয়েছে। যেকোনো একটি প্রাইমারি কী হিসেবে বেছে নেওয়া যায়।
উদাহরণ ২: Student টেবিল
| Student_ID | Student_Enroll | Student_Name | Student_Email |
|---|---|---|---|
| S02 | 4545 | Dave | ddd@gmail.com |
| S34 | 4541 | Jack | jjj@gmail.com |
| S22 | 4555 | Mark | mmm@gmail.com |
Candidate Keys:
- Student_ID — সারোগেট কী, মিনিমাল, ইউনিক
- Student_Enroll — ন্যাচারেল কী, মিনিমাল, ইউনিক
- Student_Email — ন্যাচারেল কী, মিনিমাল, ইউনিক
- Student_Name — নয় (ডুপ্লিকেট নাম হতে পারে)၊
ক্যান্ডিডেট কী বের করার পদ্ধতি
- সব Суপার কী খুঁজুন (যে কলাম/কম্বিনেশন ইউনিক)। 2. প্রতিটি সুপার কী থেকে রিডান্ডেন্ট অ্যাট্রিবিউট বাদ দিন। 3. যে সেটগুলো আর ছোট করা যায় না (মিনিমাল), সেগুলোই ক্যান্ডিডেট কী।
SQL-এ ক্যান্ডিডেট কী এনফোর্স করা
CREATE TABLE Student ( Student_ID INT PRIMARY KEY, -- Chosen as PK Student_Enroll VARCHAR(20) UNIQUE NOT NULL, -- Candidate Key → Alternate Key Student_Name VARCHAR(100), Student_Email VARCHAR(100) UNIQUE NOT NULL -- Candidate Key → Alternate Key );
সারসংক্ষেপ
| কনসেপ্ট | বিবরণ |
|---|---|
| Super Key | যেকোনো ইউনিক কম্বিনেশন (রিডান্ডেন্ট হতে পারে) |
| Candidate Key | মিনিমাল সুপার কী (প্রাইমারি কীর প্রার্থী) |
| Primary Key | নির্বাচিত একটি ক্যান্ডিডেট কী |
| Alternate Key | বাকি ক্যান্ডিডেট কীগুলো |