কম্পিউটার টিউটোরিয়াল

RDBMS-এ ফরেন কী (Foreign Key) কী এবং কীভাবে কাজ করে

ফরেন কী (Foreign Key) হলো একটি কলাম বা কলামের সেট যা অন্য একটি টেবিলের প্রাইমারি কীকে রেফারেন্স করে, ফলে দুটি টেবিলের মধ্যে রিলেশনশিপ (সัม্পর্ক) thiết lập হয়।

উদাহরণ: Employee এবং Department

Employee টেবিল (Child / Referencing Table)

EmpID (PK) EmpName EmpAge DeptID (FK)
101John30D01
102Jane28D02

Department টেবিল (Parent / Referenced Table)

DeptID (PK) DeptName DeptZone
D01ITZone A
D02HRZone B

এখানে Employee-র DeptID হলো Foreign Key যা Department-র DeptID (Primary Key) কে রেফার করে।

ডায়াগ্রাম

RDBMS-এ ফরেন কী (Foreign Key) কী এবং কীভাবে কাজ করে

বৈশিষ্ট্য

  • ফরেন কী কলামের ডেটা টাইপ, সাইজ, কোলেশন প্রাইমারি কীর সাথে একই হতে হবে।
  • ফরেন কীতে NULL ভ্যালু থাকতে পারে (যদি অপশনাল রিলেশনশিপ হয়)।
  • ফরেন কীতে ডুপ্লিকেট ভ্যালু থাকতে পারে (One-to-Many রিলেশনশিপে)۔
  • এক টেবিলে একাধিক ফরেন কী থাকতে পারে (বিভিন্ন টেবিল রেফারেন্স করতে পারে)।

SQL সিনট্যাক্স

-- Column Level
CREATE TABLE Employee (
  EmpID INT PRIMARY KEY,
  EmpName VARCHAR(100),
  DeptID VARCHAR(10),
  FOREIGN KEY (DeptID) REFERENCES Department(DeptID)
);

-- Table Level (Composite FK)
CREATE TABLE OrderItem (
  OrderID INT,
  ProductID INT,
  Qty INT,
  PRIMARY KEY (OrderID, ProductID),
  FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
  FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

রেফারেনশিয়াল অ্যাকশন (Referential Actions)

অ্যাকশন ON DELETE ON UPDATE
CASCADE চাইল্ড রো ডিলিট হয় চাইল্ড FK আপডেট হয়
SET NULL চাইল্ড FK = NULL চাইল্ড FK = NULL
RESTRICT / NO ACTION প্যারেন্ট ডিলিট ব্লক (ডিফল্ট) প্যারেন্ট আপডেট ব্লক (ডিফল্ট)
SET DEFAULT চাইল্ড FK = ডিফল্ট ভ্যালু চাইল্ড FK = ডিফল্ট ভ্যালু

মহত্ব

  • রেফারেনশিয়াল ইন্টিগ্রিটি রক্ষা করে (Orphan record রোধ)।
  • জয়েন কোয়েরি সক্ষম করে (JOIN)।
  • নরমালাইজেশন (3NF) অর্জনে সহায়তা করে।
  1. RDBMS-এ কম্পোজিট কী (Composite Key) কী?

  2. RDBMS-এ রেফারেনশিয়াল ইন্টিগ্রিটি রুল (Referential Integrity Rule)

  3. RDBMS-এ ইউনিক কী (Unique Key) এবং প্রাইমারি কীর পার্থক্য

  4. RDBMS টার্মিনোলজি (Database, Table, Column, Row, Keys)