Key
কী
কী (Key)
১. ভূমিকা — তালার চাবির মতোই Database এর Key!
তোমার বাড়িতে অনেক তালা আছে — প্রধান দরজার তালা, ঘরের তালা, আলমারির তালা। প্রতিটি তালার জন্য আলাদা চাবি দরকার। ভুল চাবি দিলে তালা খুলবে না।
ডেটাবেজেও ঠিক এমনই! প্রতিটি Record কে আলাদাভাবে চেনার জন্য একটি বিশেষ Field দরকার — এটাই Key (কী)।
মজার তথ্য: তোমার NID (জাতীয় পরিচয়পত্র) নম্বর হলো বাংলাদেশ নির্বাচন কমিশনের ডেটাবেজে তোমার Primary Key! দুজন মানুষের NID নম্বর কখনো এক হয় না — ঠিক যেমন Primary Key সর্বদা অনন্য।
২. সমস্যা — একই নামের দুজন হলে কী হবে?
Students Table:
┌──────────────┬──────────┬──────────┐
│ নাম │ বিভাগ │ নম্বর │
├──────────────┼──────────┼──────────┤
│ রাহেলা │ বিজ্ঞান │ 850 │
│ রাহেলা │ ব্যবসা │ 790 │ ← দুজন রাহেলা!
│ করিম │ বিজ্ঞান │ 880 │
└──────────────┴──────────┴──────────┘
"রাহেলা কত পেয়েছে?" — কোন রাহেলা? বিজ্ঞানের না ব্যবসার?
সমাধান: প্রতিটি Record এর জন্য একটি অনন্য Key দাও — যেমন রোল নম্বর!
৩. চিত্রের মাধ্যমে বোঝো
Key এর ধরনসমূহ:
Students Table:
┌──────┬──────────────┬──────────┬──────────┬──────────┐
│ রোল │ নাম │ ইমেইল │ ফোন │ বিভাগ │
│ (PK) │ │ (UK) │ (UK) │ │
├──────┼──────────────┼──────────┼──────────┼──────────┤
│ 101 │ রাহেলা │ r@x.com │ 0171xxxxx│ বিজ্ঞান │
│ 102 │ করিম │ k@x.com │ 0181xxxxx│ ব্যবসা │
└──────┴──────────────┴──────────┴──────────┴──────────┘
PK = Primary Key (রোল — অনন্য শনাক্তকারী)
UK = Unique Key (ইমেইল/ফোন — অনন্য কিন্তু PK নয়)
Results Table:
┌──────┬──────────┬──────────┬────────┐
│ রোল │ বিষয় │ নম্বর │ গ্রেড │
│ (FK) │ │ │ │
├──────┼──────────┼──────────┼────────┤
│ 101 │ গণিত │ 90 │ A+ │
│ 101 │ পদার্থ │ 85 │ A │
│ 102 │ হিসাব │ 88 │ A+ │
└──────┴──────────┴──────────┴────────┘
FK = Foreign Key (Results টেবিলে Students টেবিলের রোল)
৪. বাস্তব জীবনের সাথে মিল
উপমা: Key হলো ঠিক যেমন একটি দেশে নাগরিকের পরিচয়পত্র নম্বর। দুজনের নাম "মোহাম্মদ আলী" হতে পারে, কিন্তু তাদের NID নম্বর সর্বদা আলাদা। NID নম্বর = Primary Key।
Module 1: Key কী? (What is a Key?)
📌 সংজ্ঞা
Key হলো একটি টেবিলে এমন একটি Field বা Fields এর সমষ্টি যা প্রতিটি Record কে অনন্যভাবে (Uniquely) শনাক্ত করতে পারে বা টেবিলের মধ্যে সম্পর্ক স্থাপন করে।
Module 2: Primary Key (প্রাইমারি কী)
📌 সংজ্ঞা
Primary Key হলো একটি টেবিলের এমন একটি Field যার মান সর্বদা অনন্য (Unique) এবং কখনো NULL হয় না।
Primary Key এর বৈশিষ্ট্য:
✅ সর্বদা Unique (অনন্য)
✅ কখনো NULL নয়
✅ পরিবর্তন করা উচিত নয়
✅ প্রতি টেবিলে একটিমাত্র PK
উদাহরণ:
Students → রোল নম্বর (PK)
Products → পণ্য কোড (PK)
NID DB → NID নম্বর (PK)
Module 3: Foreign Key (ফরেন কী)
📌 সংজ্ঞা
Foreign Key হলো একটি টেবিলের এমন একটি Field যা অন্য একটি টেবিলের Primary Key কে নির্দেশ করে এবং দুই টেবিলের মধ্যে সম্পর্ক স্থাপন করে।
Foreign Key উদাহরণ:
Students Table Results Table
┌──────┬──────────┐ ┌──────┬──────────┬────────┐
│ রোল │ নাম │ │ রোল │ বিষয় │ নম্বর │
│ (PK) │ │ │ (FK) │ │ │
├──────┼──────────┤ ├──────┼──────────┼────────┤
│ 101 │ রাহেলা │←──│ 101 │ গণিত │ 90 │
│ 102 │ করিম │←──│ 101 │ পদার্থ │ 85 │
└──────┴──────────┘ │ 102 │ হিসাব │ 88 │
└──────┴──────────┴────────┘
Students.রোল = PK
Results.রোল = FK (Students টেবিলের দিকে নির্দেশ করছে)
Module 4: Candidate Key (ক্যান্ডিডেট কী)
📌 সংজ্ঞা
Candidate Key হলো যে কোনো Field বা Fields এর সমষ্টি যা Primary Key হওয়ার যোগ্য — অর্থাৎ Unique ও NOT NULL।
উদাহরণ — Students Table:
সম্ভাব্য Candidate Keys:
→ রোল নম্বর (Unique, NOT NULL) ← Primary Key হিসেবে নির্বাচিত
→ ইমেইল (Unique, NOT NULL) ← Alternate Key
→ ফোন নম্বর (Unique, NOT NULL) ← Alternate Key
যেটাকে Primary Key বাছাই করা হয় → Primary Key
বাকিগুলো → Alternate Key
Module 5: Composite Key (কম্পোজিট কী)
📌 সংজ্ঞা
Composite Key হলো দুই বা তার বেশি Field মিলে তৈরি Primary Key।
উদাহরণ — Exam Results Table:
┌──────┬──────────┬────────┐
│ রোল │ বিষয় │ নম্বর │
│ (PK1)│ (PK2) │ │
├──────┼──────────┼────────┤
│ 101 │ গণিত │ 90 │
│ 101 │ পদার্থ │ 85 │ ← রোল 101 কিন্তু বিষয় আলাদা
│ 102 │ গণিত │ 88 │ ← বিষয় গণিত কিন্তু রোল আলাদা
└──────┴──────────┴────────┘
এখানে শুধু রোল দিয়ে Unique হয় না (101 দুইবার আছে)
শুধু বিষয় দিয়েও Unique হয় না (গণিত দুইবার আছে)
কিন্তু (রোল + বিষয়) = (101, গণিত) সর্বদা Unique!
→ এটাই Composite Key
Module 6: Key এর তুলনামূলক আলোচনা
Key এর পরিবার:
Key
│
┌────────────┼────────────┐
│ │ │
Super Key Candidate Key Foreign Key
│ │
│ ┌────────┴────────┐
│ │ │
│ Primary Key Alternate Key
│ │
│ (Simple PK)
│ (Composite PK)
| Key ধরন | অনন্যতা | NULL? | সংখ্যা | উদ্দেশ্য |
|---|---|---|---|---|
| Primary Key | হ্যাঁ | না | ১টি | রেকর্ড শনাক্ত |
| Foreign Key | না | হতে পারে | অনেক | টেবিল সংযোগ |
| Candidate Key | হ্যাঁ | না | একাধিক | PK হওয়ার যোগ্য |
| Alternate Key | হ্যাঁ | না | একাধিক | PK বাদে বাকি CK |
| Composite Key | হ্যাঁ | না | ১টি | একাধিক Field মিলে |
🧠 মূল শিক্ষা
মনে রাখো: Key হলো রেকর্ড শনাক্তকারী বা টেবিল সংযোগকারী। Primary Key = অনন্য + NOT NULL + ১টি। Foreign Key = অন্য টেবিলের PK নির্দেশ করে। Composite Key = দুটি Field মিলে এক Key।
🔁 নিজে পরীক্ষা করো
❓ প্রশ্ন ১: Primary Key ও Candidate Key এর পার্থক্য কী? ✅ উত্তর: Candidate Key হলো Primary Key হওয়ার যোগ্য যেকোনো Field। এদের মধ্যে যেটাকে বেছে নেওয়া হয় সেটা Primary Key, বাকিগুলো Alternate Key।
❓ প্রশ্ন ২: Foreign Key কেন দরকার? ✅ উত্তর: Foreign Key দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করে। এটি Referential Integrity নিশ্চিত করে — অর্থাৎ একটি Results Table এ এমন রোল নম্বর থাকতে পারবে না যা Students Table এ নেই।
❓ প্রশ্ন ৩: Composite Key কখন ব্যবহার করা হয়? ✅ উত্তর: যখন একটি Field দিয়ে Record কে অনন্যভাবে শনাক্ত করা যায় না, তখন দুই বা বেশি Field মিলিয়ে Composite Key তৈরি করা হয়।
❓ প্রশ্ন ৪: Super Key কী? ✅ উত্তর: Super Key হলো যেকোনো Field বা Fields এর সমষ্টি যা Record কে Unique করে — Candidate Key হলো এর minimum রূপ।
📝 HSC পরীক্ষার প্রস্তুতি
পরীক্ষায় যা আসতে পারে
🎯 বিভিন্ন ধরনের Key এর সংজ্ঞা ও পার্থক্য (৪-৬ নম্বর) 🎯 উদাহরণসহ Primary Key ও Foreign Key ব্যাখ্যা (৪ নম্বর) 🎯 Composite Key কী? কখন ব্যবহার হয়? (৩ নম্বর) 🎯 Candidate Key ও Alternate Key এর সম্পর্ক (২ নম্বর)
সাধারণ ভুলসমূহ
⚠️ Foreign Key মানে অন্য দেশের Key মনে করা — আসলে অন্য টেবিলের PK এর রেফারেন্স ⚠️ একটি টেবিলে একাধিক Primary Key থাকতে পারে মনে করা — মাত্র একটি PK থাকে ⚠️ Primary Key NULL হতে পারে মনে করা — PK কখনো NULL নয়
মনে রাখার কৌশল
💡 Primary Key = NID নম্বর (অনন্য, খালি নয়, একটিমাত্র) 💡 Foreign Key = অন্য ঘরের চাবি (অন্য টেবিলকে নির্দেশ করে) 💡 Composite Key = দুই চাবির তালা (একটি দিয়ে খোলা যায় না)
✅ সারাংশ
- Key: রেকর্ড শনাক্তকারী বা টেবিল সংযোগকারী Field
- Primary Key: অনন্য, NOT NULL, প্রতি টেবিলে একটি
- Foreign Key: অন্য টেবিলের PK নির্দেশ করে
- Candidate Key: PK হওয়ার যোগ্য সব Field
- Alternate Key: Candidate Key যেটা PK হয়নি
- Composite Key: দুই বা বেশি Field মিলে তৈরি Key
Key এর ধরন — তুলনা সারণি
| Key | Unique? | NULL? | সংখ্যা | উদাহরণ |
|---|---|---|---|---|
| Primary Key | হ্যাঁ | না | ১ | রোল নম্বর |
| Foreign Key | না | হতে পারে | অনেক | Results.রোল |
| Candidate Key | হ্যাঁ | না | একাধিক | রোল, ইমেইল |
| Alternate Key | হ্যাঁ | না | একাধিক | ইমেইল |
| Composite Key | হ্যাঁ | না | ১ | (রোল + বিষয়) |
🎯 অনুশীলন প্রশ্ন
১. Primary Key ও Foreign Key এর মধ্যে ৩টি পার্থক্য লেখো।
২. নিচের টেবিলে Candidate Key গুলো চিহ্নিত করো: Employee(EmpID, Email, Phone, Name, Department)
৩. Composite Key কী? একটি বাস্তব উদাহরণ দাও যেখানে Composite Key দরকার।
৪. Referential Integrity কী এবং Foreign Key কীভাবে তা নিশ্চিত করে?
৫. MCQ: একটি Exam Results টেবিলে (StudentID, SubjectID, Marks) থাকলে Primary Key হবে কোনটি? (ক) StudentID (খ) SubjectID (গ) Marks (ঘ) (StudentID + SubjectID) উত্তর: (ঘ) (StudentID + SubjectID) — Composite Key