Primary Key এবং Foreign Key রিলেশনাল ডেটাবেসের দুটি গুরুত্বপূর্ণ কনসেপ্ট, যা ডেটাবেসের টেবিলগুলির মধ্যে সম্পর্ক তৈরি এবং ডেটার একীকরণ নিশ্চিত করতে ব্যবহৃত হয়। এগুলোর মাধ্যমে ডেটার অখণ্ডতা (Data Integrity) নিশ্চিত করা হয়, এবং ডেটাবেসের সম্পর্কযুক্ত টেবিলগুলির মধ্যে সংযোগ স্থাপন করা হয়।
1. Primary Key (প্রাইমারি কী)
Primary Key একটি টেবিলের এক বা একাধিক কলামের সমন্বয় যা টেবিলের প্রতিটি রেকর্ডকে ইউনিকভাবে চিহ্নিত করে। একটি টেবিলের একটি Primary Key থাকে এবং এটি নিচের বৈশিষ্ট্যগুলি নিশ্চিত করে:
- ইউনিক: Primary Key কলামে থাকা মানগুলি অনন্য হতে হবে। অর্থাৎ, কোনও দুটি রেকর্ডে একই মান থাকতে পারে না।
- নাল (NULL) নয়: Primary Key কলামের কোন মান
NULLহতে পারে না। - একটি টেবিলের একটিমাত্র প্রাইমারি কী থাকতে পারে।
Primary Key এর উদাহরণ
ধরা যাক, একটি students টেবিল আছে, যেখানে ছাত্রদের তথ্য রাখা হচ্ছে। এখানে student_id একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করবে, এবং এটি Primary Key হতে পারে:
CREATE TABLE students (
student_id INT AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
date_of_birth DATE,
PRIMARY KEY (student_id)
);
এখানে:
student_idএকটি Primary Key হিসেবে চিহ্নিত করা হয়েছে। এটি প্রতিটি ছাত্রের জন্য একটি ইউনিক মান নির্ধারণ করে।
2. Foreign Key (ফোরেন কী)
Foreign Key হল একটি টেবিলের কলাম বা কলামগুলির সমন্বয়, যা অন্য একটি টেবিলের Primary Key অথবা অন্য একটি ইউনিক কলামের প্রতি রেফারেন্স (সংযোগ) তৈরি করে। এটি টেবিলের মধ্যে সম্পর্ক তৈরি করতে ব্যবহৃত হয় এবং ডেটার অখণ্ডতা বজায় রাখতে সহায়তা করে।
- Foreign Key এর মাধ্যমে দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করা হয়।
- Foreign Key কলামটি Primary Key বা Unique Key কলামের মান অনুসরণ করে।
- এটি রেফারেন্স করা টেবিলের মানের সঠিকতা নিশ্চিত করে, যেমন, এক টেবিলের কলামে এমন মান থাকতে হবে যা অন্য টেবিলের Primary Key কলামে বিদ্যমান।
Foreign Key এর উদাহরণ
ধরা যাক, একটি orders টেবিল আছে যা customers টেবিলের সাথে সম্পর্কিত। orders টেবিলের customer_id কলামটি Foreign Key হিসেবে কাজ করবে এবং এটি customers টেবিলের customer_id Primary Key রেফারেন্স করবে।
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
PRIMARY KEY (customer_id)
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT,
customer_id INT,
order_date DATE,
PRIMARY KEY (order_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
এখানে:
customersটেবিলেরcustomer_idএকটি Primary Key।ordersটেবিলেরcustomer_idএকটি Foreign Key হিসেবে ব্যবহার করা হচ্ছে, যাcustomersটেবিলেরcustomer_idকলামকে রেফারেন্স করছে।
এতে:
- Foreign Key এর মাধ্যমে
ordersটেবিলের প্রতিটি রেকর্ডের সাথে সম্পর্কিতcustomer_idcustomersটেবিলের রেকর্ডের সাথে মিলতে হবে। যদিcustomersটেবিলের কোনোcustomer_idনা থাকে, তাহলেordersটেবিলের ওইcustomer_idমানটি ঢোকানো যাবে না।
Primary Key এবং Foreign Key এর ব্যবহারের সুবিধা
- ডেটার অখণ্ডতা (Data Integrity):
- Primary Key নিশ্চিত করে যে টেবিলের প্রতিটি রেকর্ড ইউনিক এবং সুনির্দিষ্ট হবে।
- Foreign Key নিশ্চিত করে যে সম্পর্কিত টেবিলগুলির মধ্যে ডেটার সঠিক সম্পর্ক থাকবে এবং অপ্রয়োজনীয় বা ভুল ডেটা প্রবেশ করতে পারবে না।
- রিলেশনাল ডেটাবেসের সংযোগ:
- Foreign Key দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে, যেমন
customersএবংordersটেবিলের মধ্যে সম্পর্ক। - এতে ডেটাবেসে বিভিন্ন টেবিলের মধ্যে সম্পর্কযুক্ত ডেটা সহজে অনুসন্ধান এবং পরিচালনা করা যায়।
- Foreign Key দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে, যেমন
- ডেটাবেসের স্ট্রাকচারাল সঙ্গতি:
- Primary Key এর মাধ্যমে প্রতিটি রেকর্ডের সুনির্দিষ্টতা নিশ্চিত করা হয়, এবং Foreign Key সম্পর্কিত টেবিলের ডেটাকে সঠিকভাবে রেফারেন্স করে।
- ডেটা সুনির্দিষ্টতা:
- Foreign Key যখন কোনো কলামে মান প্রবেশ করতে সহায়তা করে, তখন এটি রেফারেন্স করা টেবিলের জন্য সুনির্দিষ্ট মান নিশ্চিত করে।
ডেটাবেস ডিজাইনে Primary Key এবং Foreign Key এর গুরুত্বপূর্ণ ভূমিকা
- ডেটা সম্পর্ক: Foreign Key ডেটাবেসের টেবিলগুলির মধ্যে সম্পর্ক স্থাপন করে, যা Primary Key এর মাধ্যমে ইউনিক রেকর্ড শনাক্ত করতে সহায়তা করে।
- ডেটা অখণ্ডতা: Primary Key ডেটার অখণ্ডতা নিশ্চিত করে এবং Foreign Key ডেটাবেসের মধ্যে সম্পর্কযুক্ত ডেটার সঠিকতা বজায় রাখে।
- নিরাপত্তা: Foreign Key রেফারেন্স করা টেবিলের সঠিক মান না থাকলে সংশ্লিষ্ট টেবিলে ডেটা প্রবেশ করতে না দেওয়ার মাধ্যমে ডেটা নিরাপত্তা নিশ্চিত করে।
সারাংশ
- Primary Key হল টেবিলের মধ্যে একটি কলাম বা কলামের সমন্বয়, যা প্রতিটি রেকর্ডের জন্য ইউনিক মান নির্ধারণ করে এবং
NULLহতে পারে না। - Foreign Key হল একটি কলাম বা কলামের সমন্বয়, যা অন্য একটি টেবিলের Primary Key রেফারেন্স করে এবং দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে।
- এগুলো ডেটাবেসের অখণ্ডতা এবং সঠিকতা বজায় রাখে এবং রিলেশনাল ডেটাবেস ডিজাইনে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more