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

RDBMS-এ সারোগেট কী (Surrogate Key) কী?

সারোগেট কী (Surrogate Key) হলো একটি ডাটাবেসে শুধুমাত্র ইউনিক আইডেন্টিফায়ার হিসেবে ব্যবহৃত কী। এর কোনো বাস্তব অর্থ বা বিজনেস মিনিং নেই। এটি শুধু রেকর্ডের অস্তিত্ব প্রতিনিধিত্ব করে।

বৈশিষ্ট্য

  • কোনো বাস্তব অর্থ নেই (Business meaning নেই)।
  • শুধু ডেটা অ্যানালিসিস এবং রেকর্ড আইডেন্টিফিকেশনের জন্য।
  • সিস্টেম জেনারেটেড (Auto-increment, GUID, UUID)।
  • কখনো আপডেট করা হয় না।

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

Key (Surrogate Key) ProductID (Natural Key) Price
505_92 1987 200
698_56 1256 170
304_57 1898 250
458_66 1666 110

এখানে Key কলামটি সারোগেট কী। ProductID হলো ন্যাচারেল কী (বাস্তব অর্থ বহন করে)।

সারোগেট কীর উদাহরণ

  • Auto-increment Integer: 1, 2, 3, ... (MySQL AUTO_INCREMENT, SQL Server IDENTITY)
  • GUID / UUID: 550e8400-e29b-41d4-a716-446655440000
  • Sequence/Generator: Oracle Sequence, PostgreSQL Serial
  • Timestamp-based: Unix epoch + random suffix
  • Counter: সিম্পল কাউন্টার
  • System Date/Time Stamp:_high precision timestamp
  • Random Alphanumeric String: XK7Q9Z

সারোগেট কী vs ন্যাচারেল কী

দিক সারোগেট কী ন্যাচারেল কী
অর্থ কোনো বাস্তব অর্থ নেই বিজনেস মিনিং আছে (ইমেইল, আইডি নম্বর)
স্থিতিশীলতা কখনো বদলায় না বদলাতে পারে (ইমেইল চেঞ্জ, আইডি রি-ইস্যু)
পারফরম্যান্স ইন্টিজার হলে জয়েন ফাস্ট স্ট্রিং/কম্পোজিট হলে স্লো
প্রাইভেসি সেনসিটিভ ডেটা এক্সপোজ করে না সেনসিটিভ ডেটা এক্সপোজ করতে পারে

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

  • ন্যাচারেল কী কমপ্লেক্স, কম্পোজিট বা পরিবর্তনশীল হলে।
  • ডিস্ট্রিবিউটেড সিস্টেমে (UUID)۔
  • প্রাইমারি কী হিসেবে ছোট, ফিক্সড-সাইজ, ফাস্ট জয়েনের জন্য।
  1. RDBMS-এ কম্পোজিট কী (Composite Key) কী?

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

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

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