Foreign Key-এর উপযোগিতা
Foreign Key কেন এত গুরুত্বপূর্ণ — উদাহরণসহ আলোচনা।
প্রধান উপযোগিতা
- Referential Integrity: অন্য টেবিলে নেই এমন মান insert করা যাবে না।
- Relationship স্থাপন: দুটি বা একাধিক টেবিলের মধ্যে সম্পর্ক তৈরি করে।
- Data Consistency: সব টেবিলে ডেটা সামঞ্জস্যপূর্ণ থাকে।
- Invalid Data Block: ভুল বা অস্তিত্বহীন মান rejection হয়।
- Cascading Operations: ON DELETE CASCADE, ON UPDATE CASCADE-এর মাধ্যমে স্বয়ংক্রিয়ভাবে data update/delete করা যায়।
- Query Optimization: JOIN দ্রুত এবং দক্ষভাবে কাজ করে।
- Database Normalization: Redundancy কমাতে সাহায্য করে।
উদাহরণ
-- Student টেবিল
CREATE TABLE Student (
student_id INT PRIMARY KEY,
name VARCHAR(50)
);
-- Course টেবিল (Foreign Key সহ)
CREATE TABLE Enrollment (
enroll_id INT PRIMARY KEY,
student_id INT,
course_name VARCHAR(50),
FOREIGN KEY (student_id) REFERENCES Student(student_id)
ON DELETE CASCADE
);
ব্যাখ্যা
- যদি কোনো student delete হয়, তবে তার সকল enrollment-ও automatic delete হয়ে যাবে।
- Enrollment টেবিলে এমন কোনো
student_id থাকতে পারবে না যা Student টেবিলে নেই।
Note: Foreign Key ছাড়া relational database-এ সম্পর্ক ও integrity বজায় রাখা প্রায় অসম্ভব।