৬.৩ ডেটাবেজ কী (Keys in Database)
এইচএসসি আইসিটি অধ্যায় ৬ এর অত্যন্ত গুরুত্বপূর্ণ টপিক: ডেটাবেজ কী (Key)। প্রাইমারি কী, ফরেন কী, কম্পোজিট কী এবং এদের পার্থক্য নিয়ে বিস্তারিত আলোচনা ও উদাহরণ।
৬.৩ ডেটাবেজ কী (Keys in Database)
- ডেটাবেজ কী (Keys in Database)
- কেন আমাদের 'কী' (Key) প্রয়োজন?
- ডেটাবেজ কী (Key) এর সংজ্ঞা ও প্রকারভেদ
- প্রাইমারি কী (Primary Key) ⭐
- কম্পোজিট প্রাইমারি কী (Composite Primary Key)
- ফরেন কী (Foreign Key) 🔗
- পার্থক্য: প্রাইমারি কী vs ফরেন কী
- অন্যান্য কী: ক্যান্ডিডেট কী (Candidate Key)
- নিজে চেষ্টা করো: কোনটি কোন কী?
- সারসংক্ষেপ
- ধন্যবাদ!
৬.৩ ডেটাবেজ কী (Keys): প্রকারভেদ ও ব্যবহার
কলেজে বা স্কুলে তোমাদের প্রত্যেকের একটি নির্দিষ্ট রোল নম্বর (Roll Number) থাকে। ভেবে দেখেছো কেন? একই ক্লাসে একই নামের একাধিক ছাত্রছাত্রী থাকতে পারে, তাদের বাবার নামও এক হতে পারে, এমনকি জন্ম তারিখও মিলে যেতে পারে। কিন্তু রোল নম্বর কখনোই দু'জনের এক হয় না। এই রোল নম্বর দিয়েই তোমাকে অদ্বিতীয়ভাবে বা সম্পূর্ণ আলাদাভাবে চেনা যায়।
ডেটাবেজ ম্যানেজমেন্ট সিস্টেমেও ঠিক এই ধারণাটিই কাজ করে। হাজার হাজার তথ্যের ভিড়ে কোনো নির্দিষ্ট তথ্যকে নির্ভুলভাবে খুঁজে বের করতে এবং এক টেবিলের সাথে অন্য টেবিলের সম্পর্ক তৈরি করতে আমরা বিশেষ কিছু ফিল্ড ব্যবহার করি। এদের বলা হয় 'কী' (Key)। আজকের পাঠে আমরা জানব ডেটাবেজ 'কী' কত প্রকার, প্রাইমারি কী এবং ফরেন কী-এর মধ্যে পার্থক্য কী এবং কীভাবে ডেটাবেজে তথ্যের সত্যতা বা Referential Integrity নিশ্চিত করা হয়।
ডেটাবেজ কী (Key): সংজ্ঞা ও প্রয়োজনীয়তা
ডেটাবেজে তথ্যের বিশৃঙ্খলা এড়াতে এবং প্রতিটি রেকর্ডকে আলাদা করতে 'কী' অপরিহার্য। এটি মূলত এক বা একাধিক ফিল্ডের সমষ্টি।
সংজ্ঞা (Definition): ডেটাবেজ টেবিলের যে ফিল্ড বা ফিল্ডসমষ্টির মান দ্বারা প্রতিটি রেকর্ডকে অদ্বিতীয়ভাবে (Uniquely) শনাক্ত করা যায় এবং যার মাধ্যমে একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করা যায়, তাকে কী (Key) বলা হয়।
একটি ডেটাবেজ সিস্টেমে 'কী' ব্যবহারের প্রধান ৩টি কারণ হলো:
১. রেকর্ড শনাক্তকরণ (Record Identification): লক্ষ লক্ষ ডেটার মধ্য থেকে সুনির্দিষ্ট কোনো ব্যক্তির তথ্য খুঁজে বের করা।
২. রিলেশনশিপ তৈরি (Establish Relationship): দুটি ভিন্ন টেবিলের মধ্যে সম্পর্ক স্থাপন করা (যেমন: ছাত্রের ব্যক্তিগত তথ্যের সাথে তার রেজাল্টের সংযোগ)।
৩. ডেটা ইন্টিগ্রিটি (Data Integrity): তথ্যের সঠিকতা বজায় রাখা, যাতে ডুপ্লিকেট বা ভুল তথ্য প্রবেশ করতে না পারে।
গুরুত্বপূর্ণ (Important): একটি 'কী' শুধুমাত্র একটি ফিল্ড দিয়েও গঠিত হতে পারে (যেমন: Roll), আবার একাধিক ফিল্ডের সমন্বয়েও গঠিত হতে পারে (যেমন: Roll + Subject_Code)।
প্রাইমারি কী (Primary Key): বৈশিষ্ট্য ও নির্বাচন
ডেটাবেজ টেবিলের সবচেয়ে গুরুত্বপূর্ণ উপাদান হলো প্রাইমারি কী। একে টেবিলের 'পরিচয়পত্র' বলা যেতে পারে।
সংজ্ঞা (Definition): কোনো ফাইলে বা টেবিলে যে ফিল্ডের মান দ্বারা প্রতিটি রেকর্ডকে সম্পূর্ণ আলাদা বা অদ্বিতীয়ভাবে শনাক্ত করা যায় এবং যার মান কখনোই শূন্য বা নাল (Null) থাকে না, তাকে প্রাইমারি কী (Primary Key) বলে।
একটি ফিল্ডকে প্রাইমারি কী হিসেবে নির্বাচন করতে হলে তাকে অবশ্যই দুটি শর্ত পূরণ করতে হবে:
- Uniqueness (অদ্বিতীয়তা): এই ফিল্ডের মান কখনো পুনরাবৃত্তি হতে পারবে না। যেমন: রোল ১০১ ক্লাসে একজনই থাকবে।
- Not Null (মান আবশ্যিক): এই ফিল্ডের মান কখনোই ফাঁকা রাখা যাবে না। অর্থাৎ, প্রতিটি রেকর্ডের অবশ্যই একটি প্রাইমারি কী ভ্যালু থাকতে হবে। একে Entity Integrity Rule বলা হয়।
পরীক্ষার টিপস (Exam Tip): উদ্দীপকে যদি দেখো কোনো ফিল্ডের নামের নিচে আন্ডারলাইন (Underline) করা আছে, তবে বুঝবে সেটিই প্রাইমারি কী। আর যদি আন্ডারলাইন না থাকে, তবে তোমাকে এমন একটি ফিল্ড খুঁজতে হবে যার মান সবার জন্য আলাদা (যেমন: Roll, Registration No, ID)। 'Name' বা 'Address' কখনো প্রাইমারি কী হয় না কারণ একই নামের একাধিক ব্যক্তি থাকতে পারে।
কম্পোজিট প্রাইমারি কী (Composite Primary Key)
কখনো কখনো একটি মাত্র ফিল্ড দিয়ে প্রতিটি রেকর্ডকে আলাদা করা সম্ভব হয় না। তখন একাধিক ফিল্ডের সাহায্য নিতে হয়।
ধরা যাক, একটি 'Result Sheet' টেবিল। এখানে একজন ছাত্র একাধিক বিষয়ে পরীক্ষা দিতে পারে।
- যদি ছাত্রের রোল ১০১ হয়, সে বাংলায় (Code: 101) পরীক্ষা দিয়েছে।
- আবার ওই একই ছাত্র (রোল ১০১) ইংরেজিতেও (Code: 102) পরীক্ষা দিয়েছে।
এখানে শুধু 'Roll' দিয়ে রেকর্ড আলাদা করা যাবে না কারণ রোল ১০১ দুইবার এসেছে। আবার শুধু 'Subject Code' দিয়েও যাবে না। কিন্তু যদি আমরা Roll এবং Subject Code-কে একত্রে বিবেচনা করি, তবে প্রতিটি কম্বিনেশন ইউনিক হবে।
| Roll | Subject Code | Marks |
|---|---|---|
| 101 | 101 | 80 |
| 101 | 102 | 75 |
| 102 | 101 | 82 |
উপরের টেবিলে (101, 101) এবং (101, 102) সম্পূর্ণ আলাদা। তাই এখানে Roll + Subject Code মিলে কম্পোজিট প্রাইমারি কী গঠন করেছে।
সংজ্ঞা (Definition): যখন কোনো টেবিলে একক কোনো ফিল্ড প্রাইমারি কী হওয়ার যোগ্যতা রাখে না, তখন দুই বা ততোধিক ফিল্ডের সমন্বয়ে যে প্রাইমারি কী গঠন করা হয়, তাকে কম্পোজিট প্রাইমারি কী (Composite Primary Key) বলে।
সুপার কী (Super Key): যেখান থেকে সবকিছুর শুরু
অনেক শিক্ষার্থী সুপার কী এবং প্রাইমারি কী-এর মধ্যে গুলিয়ে ফেলে। সহজ কথায়, যেকোনো কম্বিনেশন যা দিয়ে রেকর্ড আলাদা করা যায়, সেটাই সুপার কী।

সংজ্ঞা (Definition): কোনো টেবিলে যে একটি ফিল্ড বা একাধিক ফিল্ডের সমষ্টির মাধ্যমে রেকর্ডগুলোকে অদ্বিতীয়ভাবে শনাক্ত করা যায়, তাকে সুপার কী (Super Key) বলে।
সম্পর্কটি বুঝো:
- মনে করো একটি টেবিলে Roll, Registration_No, এবং NID আছে।
- Roll দিয়ে সবাইকে আলাদা করা যায়। তাই Roll একটি সুপার কী।
- (Roll + Name) দিয়েও সবাইকে আলাদা করা যায় (কারণ রোল আলাদা)। তাই (Roll + Name)-ও একটি সুপার কী।
- কিন্তু Name একা সুপার কী নয়, কারণ নাম ডুপ্লিকেট হতে পারে।
মনে রাখবে: সকল প্রাইমারি কী-ই সুপার কী, কিন্তু সকল সুপার কী প্রাইমারি কী নয়। সুপার কী হলো সবচেয়ে বড় সেট (Superset)।
ক্যান্ডিডেট কী এবং অল্টারনেট কী
একটি টেবিলে একাধিক ফিল্ড থাকতে পারে যা প্রাইমারি কী হওয়ার যোগ্য। এদের বলা হয় ক্যান্ডিডেট কী (Candidate Key)।
উদাহরণস্বরূপ, একটি 'Student' টেবিলে নিচের তিনটি ফিল্ডই ইউনিক হতে পারে:
১. Roll No
২. Registration No
৩. NID No
এই তিনটিই Candidate Key। এখন ডেটাবেজ অ্যাডমিনিস্ট্রেটর হিসেবে তুমি যদি Roll No-কে Primary Key হিসেবে বেছে নাও, তবে বাকি দুটি (Registration No ও NID No) হয়ে যাবে Alternate Key।
$$Candidate\ Keys = Primary\ Key + Alternate\ Keys$$
সংজ্ঞা (Definition):
- ক্যান্ডিডেট কী: কোনো টেবিলে প্রাইমারি কী হওয়ার যোগ্যতা রাখে এমন সকল ফিল্ডকে ক্যান্ডিডেট কী বলে।
- অল্টারনেট কী: ক্যান্ডিডেট কীগুলোর মধ্য থেকে যেটিকে প্রাইমারি কী হিসেবে নির্বাচন করা হয়, সেটি ছাড়া বাকি ক্যান্ডিডেট কীগুলোকে অল্টারনেট কী বলে।
ফরেন কী (Foreign Key) ও রেফারেন্সিয়াল ইন্টিগ্রিটি
রিলেশনাল ডেটাবেজের মূল শক্তি হলো টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করা। এই সম্পর্ক তৈরির কাজটি করে ফরেন কী।
সংজ্ঞা (Definition): কোনো টেবিলের একটি ফিল্ড বা ফিল্ডসমষ্টি যদি অন্য কোনো টেবিলের প্রাইমারি কী (Primary Key) হয় এবং দুটি টেবিলের মধ্যে সম্পর্ক সৃষ্টি করে, তবে প্রথম টেবিলের ঐ ফিল্ডকে ফরেন কী (Foreign Key) বলে।

উদাহরণ ও ব্যাখ্যা:
ধরি, আমাদের দুটি টেবিল আছে:
১. Student Table (Parent Table): এখানে Roll হলো প্রাইমারি কী।
২. Result Table (Child Table): এখানেও Roll নামের একটি কলাম আছে যা দিয়ে বুঝানো হয় রেজাল্টটি কোন ছাত্রের।
এখানে Result Table-এর Roll হলো ফরেন কী, কারণ এটি Student Table-এর Roll (প্রাইমারি কী)-কে নির্দেশ করছে।
রেফারেন্সিয়াল ইন্টিগ্রিটি (Referential Integrity)
এটি ডেটাবেজের একটি অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট যা 'খ' ইউনিটের প্রশ্নের জন্য জরুরি।
সংজ্ঞা (Definition): রেফারেন্সিয়াল ইন্টিগ্রিটি হলো এমন একটি নিয়ম বা কনস্ট্রেইন্ট (Constraint) যা নিশ্চিত করে যে, ফরেন কী-এর মান অবশ্যই সংশ্লিষ্ট প্যারেন্ট টেবিলের প্রাইমারি কী-তে বিদ্যমান থাকতে হবে।
সহজ কথায়: তুমি Result Table-এ এমন কোনো ছাত্রের রোল নম্বর এন্ট্রি দিতে পারবে না (যেমন: রোল ৫০০), যে ছাত্রটি আসলে Student Table-এ ভর্তিই নেই। অর্থাৎ, প্যারেন্ট টেবিলে অস্তিত্ব নেই এমন কোনো ডেটা চাইল্ড টেবিলে ইনপুট দেওয়া যাবে না। এটাই রেফারেন্সিয়াল ইন্টিগ্রিটি।
পার্থক্য মনে রাখার কৌশল:
- প্রাইমারি কী = নিজের টেবিলের রাজা (Unique identifier)।
- ফরেন কী = অন্য রাজ্যের দূত (Connector)।
- প্রাইমারি কী ফাঁকা (Null) হতে পারে না, কিন্তু ফরেন কী ফাঁকা হতে পারে (যদি সম্পর্ক ঐচ্ছিক হয়)।
পার্থক্য: প্রাইমারি কী বনাম ফরেন কী
পরীক্ষায় এই পার্থক্যটি প্রায়ই আসে। নিচের ছকটি ভালোভাবে আয়ত্ত করো:
| বৈশিষ্ট্য | প্রাইমারি কী (Primary Key) | ফরেন কী (Foreign Key) |
|---|---|---|
| ১. সংজ্ঞা | যে ফিল্ড রেকর্ডকে অদ্বিতীয়ভাবে শনাক্ত করে। | যে ফিল্ড অন্য টেবিলের প্রাইমারি কী-এর সাথে সম্পর্ক তৈরি করে। |
| ২. অদ্বিতীয়তা | এর মান অবশ্যই ইউনিক বা অদ্বিতীয় হতে হবে। | এর মান ডুপ্লিকেট হতে পারে (একই ছাত্রের একাধিক রেজাল্ট থাকতে পারে)। |
| ৩. নাল ভ্যালু | এর মান কখনোই নাল (Null) বা ফাঁকা হতে পারে না। | এর মান নাল (Null) হতে পারে। |
| ৪. সংখ্যা | একটি টেবিলে মাত্র ১টি প্রাইমারি কী থাকতে পারে। | একটি টেবিলে একাধিক ফরেন কী থাকতে পারে। |
| ৫. ভূমিকা | এটি টেবিলের ডেটা আইডেন্টিফাই করে। | এটি টেবিলগুলোর মধ্যে রিলেশনশিপ তৈরি করে। |
| ৬. অবস্থান | এটি সাধারণত প্যারেন্ট টেবিলে থাকে। | এটি চাইল্ড টেবিলে থাকে। |
সৃজনশীল প্রশ্নের প্রস্তুতি ও টিপস
উদ্দীপক বিশ্লেষণ:
তোমাকে সাধারণত দুটি টেবিল দেওয়া হবে। একটিতে থাকবে ছাত্রের তথ্য, অন্যটিতে রেজাল্ট বা লাইব্রেরি রেকর্ড।
- প্রশ্ন (গ): টেবিল দুটির মধ্যে সম্পর্ক তৈরির জন্য প্রয়োজনীয় ফিল্ডটি ব্যাখ্যা করো।
- উত্তর: তোমাকে খুঁজে বের করতে হবে কোন ফিল্ডটি উভয় টেবিলে কমন। সেটি হবে 'ফরেন কী'। এবং যার সাথে সম্পর্ক হচ্ছে সে হবে 'প্রাইমারি কী'।
সাধারণ ভুল:
- ছাত্ররা প্রায়ই Name-কে প্রাইমারি কী মনে করে। মনে রাখবে, নাম ডুপ্লিকেট হয়, তাই এটি প্রাইমারি কী নয়।
- কম্পোজিট কী লেখার সময় দুটি ফিল্ডের নাম উল্লেখ করতে ভুলে যায়।
সংক্ষিপ্ত সারাংশ (Quick Revision):
- Primary Key: Unique + Not Null. (উদাহরণ: Roll)।
- Composite Key: একাধিক ফিল্ড মিলে যখন ইউনিক হয়। (উদাহরণ: Roll + Subject Code)।
- Foreign Key: অন্য টেবিলের প্রাইমারি কী, যা রিলেশন তৈরি করে।
- Candidate Key: যারা প্রাইমারি কী হওয়ার যোগ্য।
- Super Key: যেকোনো কম্বিনেশন যা ইউনিক (প্রাইমারি কী-এর সুপারসেট)।
পরিভাষা (Glossary)
| পরিভাষা (Term) | সংজ্ঞা (Definition) |
|---|---|
| প্রাইমারি কী (Primary Key) | রেকর্ড অদ্বিতীয়ভাবে শনাক্তকারী মূল ফিল্ড। |
| ফরেন কী (Foreign Key) | অন্য টেবিলের প্রাইমারি কী যা বর্তমান টেবিলে সম্পর্ক স্থাপনে ব্যবহৃত হয়। |
| কম্পোজিট কী (Composite Key) | একাধিক ফিল্ডের সমন্বয়ে গঠিত প্রাইমারি কী। |
| রেফারেন্সিয়াল ইন্টিগ্রিটি | রিলেশনাল ডেটাবেজে ডেটার সঠিকতা ও সামঞ্জস্য বজায় রাখার নিয়ম। |
| ক্যান্ডিডেট কী | প্রাইমারি কী হওয়ার যোগ্য ফিল্ডসমূহ। |