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

RDBMS-এ কম্পোজিট কী (Composite Key) কী?

কম্পোজিট কী (Composite Key) হলো এমন একটি প্রাইমারি কী যা দুই বা ততোধিক অ্যাট্রিবিউট (Column) এর সংমিশ্রণ থেকে গঠিত। অর্থাৎ, একক কলামে ইউনিক থাকা না গেলে একাধিক কলাম মিলিয়ে ইউনিক হওয়া বাধ্য।

উদাহরণ ১: OrderDetails টেবিল

RDBMS-এ কম্পোজিট কী (Composite Key) কী?

এখানে OrderID এবং ProductID মিলিয়ে কম্পোজিট প্রাইমারি কী বানানো হয়েছে।

Composite Primary Key
{OrderID, ProductID}

উদাহরণ ২: Student Marks টেবিল

StudentID StudentEnrollNo StudentMarks StudentPercentage
S001 0721722 570 90
S002 0721790 490 80
S003 0721766 440 86

এখানে StudentID এবং StudentEnrollNo মিলিয়ে কম্পোজিট প্রাইমারি কী। একক কলামেই ইউনিক নয় (একই ছাত্রের একাধিক সেমিস্টার হতে পারে)।

বৈশিষ্ট্য

  • দুই বা অধিক কলামের সমষ্টি।
  • প্রতিটি কলাম একায় ইউনিক নয়, কিন্তু মিলিত হয়ে ইউনিক।
  • প্রাইমারি কী হিসেবে ডিক্লেয়ার করা হয়: PRIMARY KEY (col1, col2, ...)।
  • ফরেন কী রেফারেন্স করার সময় সব কলাম রেফারেন্স করতে হয়।

SQL উদাহরণ

CREATE TABLE StudentMarks (
  StudentID VARCHAR(10),
  StudentEnrollNo VARCHAR(20),
  StudentMarks INT,
  StudentPercentage DECIMAL(5,2),
  PRIMARY KEY (StudentID, StudentEnrollNo)
);

কখন ব্যবহার করবেন?

  • ম্যাপিং টেবিল (Junction Table) - যেমন Student_Course (StudentID, CourseID)۔
  • অর্ডার লাইন আইটেম (OrderID, ProductID)۔
  • টাইম-সিরিজ ডেটা যেখানে (EntityID, Timestamp) ইউনিক।
  • প্রাকৃতিকভাবে কম্পাউন্ড আইডেন্টিটি থাকলে।

সুবিধা ও অসুবিধা

সুবিধা অসুবিধা
ন্যাচারেল বিজনেস কী রিফ্লেক্ট করে জয়েন কন্ডিশন বড় হয় (Multi-column join)
সারোগেট কী দরকার নেই ইন্ডেক্স সাইজ বড়, স্টোরেজ বেশি
ডেটা ইন্টিগ্রিটি বাঢায় মাইগ্রেশন/রিফ্যাক্টরিং কঠিন
  1. RDBMS-এ রেফারেনশিয়াল ইন্টিগ্রিটি রুল (Referential Integrity Rule)

  2. RDBMS-এর ভবিষ্যৎ (Future of RDBMS)

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

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