রেফারেনশিয়াল ইন্টিগ্রিটি রুল (Referential Integrity Rule) হলো প্রাইমারি কী এবং ফরেন কীর উপর ভিত্তি করে একটি নিয়ম যা নিশ্চিত করে: এক টেবিলের ফরেন কীর মান অবশ্যই অন্য টেবিলের প্রাইমারি কীর সাথে মিলে থাকতে হবে (অথবা NULL হতে পারে)।
নियम
- ফরেন কীর প্রতিটি নন-নাল মান অবশ্যই রেফারেন্সড টেবিলের প্রাইমারি কীতে বিদ্যমান থাকতে হবে।
- রেফারেন্সড রো ডিলিট/আপডেট করলে সংশ্লিষ্ট ফরেন কী রোও ডিলিট/আপডেট/সেট নাল করা উচিত (CASCADE/SET NULL/RESTRICT)।
- প্রাইমারি কী এবং ফরেন কীর ডেটা টাইপ একই হতে হবে যাতে জয়েন করা যায়।
উদাহরণ: Employee এবং Department
Employee টেবিল (Child)
| EMP_ID (PK) | EMP_NAME | DEPT_ID (FK) |
|---|---|---|
| 101 | John | D01 |
| 102 | Jane | D02 |
Department টেবিল (Parent)
| DEPT_ID (PK) | DEPT_NAME | DEPT_ZONE |
|---|---|---|
| D01 | IT | Zone A |
| D02 | HR | Zone B |
এখানে Employee-র DEPT_ID হলো ফরেন কী যা Department-র DEPT_ID (প্রাইমারি কী) রেফার করে। Employee-র DEPT_ID এর মান অবশ্যই D01 বা D02 হতে হবে (বা NULL, যদি অ্যালো করা থাকে)।
ডায়াগ্রাম

SQL কনস্ট্রেইন্ট
CREATE TABLE Department (
DEPT_ID VARCHAR(10) PRIMARY KEY,
DEPT_NAME VARCHAR(50),
DEPT_ZONE VARCHAR(50)
);
CREATE TABLE Employee (
EMP_ID INT PRIMARY KEY,
EMP_NAME VARCHAR(100),
DEPT_ID VARCHAR(10),
FOREIGN KEY (DEPT_ID) REFERENCES Department(DEPT_ID)
ON DELETE SET NULL
ON UPDATE CASCADE
);
রেফারেনশিয়াল অ্যাকশন (ON DELETE / ON UPDATE)
| অ্যাকশন | বিবরণ |
|---|---|
| CASCADE | প্যারেন্ট ডিলিট/আপডেট হলে চাইল্ডও ডিলিট/আপডেট হয়। |
| SET NULL | প্যারেন্ট ডিলিট/আপডেট হলে চাইল্ডের FK NULL হয় (FK নালেবল থাকতে হবে)। |
| RESTRICT / NO ACTION | প্যারেন্ট ডিলিট/আপডেট ব্লক করবে যদি চাইল্ড এক্সিস্ট করে (ডিফল্ট)। |
| SET DEFAULT | চাইল্ডের FK ডিফল্ট ভ্যালুতে সেট হয়। |
মহত্ব
- অনাথ (Orphan) রেকর্ড প্রতিরোধ করে।
- ডেটা কনসিস্টেন্সি নিশ্চিত করে।
- ডাটাবেস লেভেলে এনফোর্স করা হয় (অ্যাপলিকেশন লেভেলে বাগ থাকলে ও সেফ)۔