DBMS Keys: Primary, Foreign, Candidate और Super Key
Keys क्यों ज़रूरी हैं
Keys वो columns हैं जो rows को विशिष्ट पहचानने या tables को जोड़ने को इस्तेमाल होते हैं। यही relational database को सही और जुड़ा रखते हैं। कई प्रकार हैं, और वे एक-दूसरे पर बनते हैं — व्यापक super key से लेकर विशिष्ट primary key तक।
Super key
Super key कोई भी column या columns का set है जो row को विशिष्ट पहचान सके — भले उसमें अतिरिक्त, अनावश्यक columns हों। students table को, {roll}, {roll, name} और {roll, name, marks} सब super keys हैं, क्योंकि हर एक row को विशिष्ट पहचानता है।
Candidate key
Candidate key एक minimal super key है — इसमें कोई अतिरिक्त column नहीं। ऊपर के super keys में से, सिर्फ़ {roll} candidate key है (मानते हुए roll unique है), क्योंकि कोई column हटाना uniqueness तोड़ देगा। Table के कई candidate keys हो सकते हैं।
Primary key
Primary key वो एक candidate key है जिसे आप आधिकारिक पहचानकर्ता चुनते हैं। यह null नहीं हो सकती और दोहरा नहीं सकती, और table में एक ही होती है।
CREATE TABLE students (
roll INT PRIMARY KEY,
name VARCHAR(50)
);
यहाँ roll primary key है — हर student का unique, non-null roll number होना चाहिए।
Unique key
Unique key भी uniqueness लागू करती है, पर यह एक null allow कर सकती है, और table में कई हो सकती हैं। इसे उन columns को इस्तेमाल कीजिए जो unique होने चाहिए पर मुख्य पहचानकर्ता नहीं, जैसे email।
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);
Foreign key
Foreign key tables जोड़ती है। यह वो column है जो दूसरी table की primary key की ओर इशारा करता है।
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
यहाँ orders.customer_id customers.id को दर्शाती है, हर order को एक customer से जोड़कर और न-मौजूद customers के orders रोककर।
Composite key
Composite key दो या ज़्यादा columns को साथ में key के रूप में इस्तेमाल करती है, जब कोई एक column अकेले unique न हो।
CREATE TABLE enrollments (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id)
);
न student_id न course_id अकेले unique है, पर साथ में वे एक enrolment को विशिष्ट पहचानते हैं।
सारांश
| Key | मतलब | Null? | कितनी |
|---|---|---|---|
| Super | विशिष्ट पहचानती (अतिरिक्त हो सकती) | — | कई |
| Candidate | Minimal super key | — | कई |
| Primary | चुनी मुख्य पहचानकर्ता | कोई null नहीं | एक |
| Unique | Uniqueness लागू | एक null ठीक | कई |
| Foreign | दूसरी table से जोड़ती | null हो सकती | कई |
| Composite | कई columns की key | — | — |
सारांश
- Keys rows को विशिष्ट पहचानती और tables जोड़ती हैं।
- Super key: row पहचानती, शायद अतिरिक्त columns के साथ; candidate: minimal super key।
- Primary key: चुनी पहचानकर्ता, कभी null नहीं, table में एक।
- Unique key: uniqueness लागू, एक null allow, कई हो सकती।
- Foreign key tables जोड़ती; composite key कई columns इस्तेमाल करती।
आगे, दो सबसे महत्वपूर्ण तुलना कीजिए primary key vs foreign key में, या table model सीखिए RDBMS concepts में।
