Types of keys: Super key, candidate key, primary key, composite key, foreign key, unique key

Keys वे हैं जिनसे एक database हर record को unique रखता है और tables को आपस में जोड़ता है: super keys पहचानते हैं (अतिरिक्त के साथ), candidate keys minimal पहचानकर्ता हैं, primary key चुनी हुई है, एक composite key दो columns इस्तेमाल करती है, और एक foreign key दूसरी table की primary key को point करती है।

12 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

दो Rahul को आप अलग कैसे बताते हैं?

Meera के दो customers हैं दोनों का नाम 'Rahul Patel'। सिर्फ नाम से, उसका database उन्हें अलग नहीं बता सकता, और उनके orders गड्डमड्ड करना एक आफ़त होगी।

Databases इसे keys से हल करते हैं: वे columns जो uniqueness की guarantee देते हैं और tables को जोड़ते हैं। पर keys का एक पूरा परिवार है, super, candidate, primary, composite, foreign, unique, और students नियमित रूप से इन्हें धुँधला कर देते हैं।

वे छह बेतरतीब शब्द नहीं हैं। वे एक साफ़ hierarchy बनाते हैं, और एक बार आप hierarchy देख लें, तो पूरा परिवार जगह पर बैठ जाता है। यह subject के सबसे ज़्यादा exam में आने वाले topics में से एक है।

Theory

एक नागरिक की पहचान

एक नागरिक को पहचानने के लिए, Aadhaar + name + address सब साथ काम करते हैं (एक super key, पर इसमें अतिरिक्त हैं)। सिर्फ Aadhaar अकेला भी काम करता है और कुछ हटाया नहीं जा सकता (एक candidate key, minimal)। सरकार forms पर the आधिकारिक ID के रूप में Aadhaar चुनती है (primary key)। कभी-कभी unique होने के लिए दो चीज़ें साथ लगती हैं, जैसे state + roll number (एक composite key)। Keys बस IDs हैं, उदार से minimal से चुनी हुई तक व्यवस्थित।

At a glance

key family

Keyमतलबटिप्पणी
Super keyकोई भी columns जो uniquely पहचानेंअतिरिक्त हो सकते हैं
Candidate keyएक MINIMAL super keyकई संभव
Primary keyचुनी हुई candidate keyUnique + NOT NULL, हर table में एक
Composite key2+ columns की एक keyजैसे order_id + item_id
Foreign keyदूसरी table की primary key को point करती हैTables जोड़ती है
Unique keyuniqueness लागू करती हैnull हो सकती है; कई की इजाज़त

Theory

hierarchy: super से candidate से primary

ये तीन एक सीढ़ी हैं:

  • एक super key कोई भी column-set है जो एक row को uniquely पहचानता है, यहाँ तक कि अतिरिक्त बोझ के साथ (customer_id + name एक super key है; name ग़ैर-ज़रूरी है)।
  • इसे उस न्यूनतम तक छाँटिए जो अब भी uniquely पहचानता है और आपके पास एक candidate key है (अकेला customer_id)। एक table के कई candidate keys हो सकते हैं (customer_id और phone number, अगर दोनों unique हों)।
  • एक candidate key को आधिकारिक पहचानकर्ता के रूप में चुनिए और यह primary key बन जाती है: unique, कभी null नहीं, हर table में एक।

तो: हर candidate key एक super key है; primary key चुनी हुई candidate है।

Theory

Foreign keys: tables के बीच के links

Foreign key relational design का सितारा है। यह एक table में एक column है जो दूसरी table की primary key को refer करता है, और यह tables कैसे जुड़ती हैं वह है।

Meera की Order table में एक customer_id column है जो Customer table की primary key को point करता एक foreign key है। वह एक link कहता है 'यह order उस customer का है', और database को उन्हें संगत रखने देता है (आप एक ऐसे customer के लिए order नहीं दे सकते जो मौजूद नहीं, referential integrity)।

many-to-many junction table याद है? यह पूरी तरह foreign keys के ज़रिए काम करता है जो दोनों parents को point करते हैं।

Quiz

एक candidate key और primary key में क्या फ़र्क़ है?

  1. Candidate keys सारे minimal unique पहचानकर्ता हैं; primary key उनमें से चुनी गई एक है
  2. वे अलग नामों वाली एक ही चीज़ हैं
  3. एक candidate key null हो सकती है पर एक primary key हमेशा text होती है
  4. Primary key के अतिरिक्त columns होते हैं जो candidate key में नहीं
Show the answer

Candidate keys सारे minimal unique पहचानकर्ता हैं; primary key उनमें से चुनी गई एक है

एक table के कई candidate keys हो सकते हैं (हर एक एक minimal unique पहचानकर्ता, जैसे customer_id और एक unique phone)। Primary key वह एक candidate key है जिसे आप आधिकारिक के रूप में चुनते हैं, और यह unique और NOT NULL होनी चाहिए। तो 'candidate' पात्र minimal keys का pool है; 'primary' चुनी हुई है। यह candidate-बनाम-primary भेद एक पक्का exam सवाल है।

Think first

एक order-item को composite key क्यों चाहिए

Meera की order-items table में, order_id दोहराता है (हर order में कई items) और item_id दोहराता है (एक item कई orders में आता)। कोई भी अकेला unique नहीं। कौन सी तरह की key एक row को uniquely पहचानती है, और क्यों?

Show the answer

एक composite key: order_id + item_id साथ। कोई भी column अपने आप unique नहीं (दोनों दोहराते हैं), पर संयोजन unique है, order 5001 में item 'Sugar' ठीक एक बार है। दो या ज़्यादा columns से बनी एक key एक composite key है, और junction tables लगभग हमेशा एक इस्तेमाल करती हैं। (यहाँ दोनों columns Order और Item tables को point करते foreign keys भी हैं, दोहरा काम करते।)

Watch out

Marks कहाँ कटते हैं

super (अतिरिक्त हैं) बनाम candidate (minimal) बनाम primary (चुनी, unique + NOT NULL, एक) को धुँधला करना। यह भूलना कि एक primary key null नहीं हो सकती जबकि एक unique key हो सकती है। यह कहना कि एक foreign key 'दूसरी table' को point करती है, सटीक रहिए: यह दूसरी table की primary key को point करती है। और यह छूटना कि एक composite key कई columns साथ है। यह topic marks की सोने की खान है ठीक इसलिए क्योंकि शब्द आसानी से गड्डमड्ड होते हैं, सीढ़ी सीखिए।

Theory

आप इन्हें Unit 4 में type करेंगे

यहाँ की हर key अगले unit में एक constraint बन जाती है जिसे आप SQL में लिखेंगे: PRIMARY KEY, FOREIGN KEY, UNIQUE। अभी की theory बाद की syntax है। और जिस Gri-Learn database से आप पढ़ रहे हैं वह lessons को topics को subjects से जोड़ने को foreign keys इस्तेमाल करता है, ठीक यही design। अगला lesson बड़ा इनाम है: हम क्यों normalize करते हैं, वे anomalies जो एक ख़राब-keyed table झेलती है, Meera की टूटती spreadsheet आख़िरकार समझाई गई।

Summary

Key takeaways

  • Super key: कोई भी column-set जो एक row को uniquely पहचानती है (अतिरिक्त हो सकते हैं)।
  • Candidate key: एक minimal super key; एक table के कई हो सकते हैं।
  • Primary key: चुनी हुई एक candidate key, unique और NOT NULL, हर table में एक।
  • Composite key: दो या ज़्यादा columns से साथ बनी एक key (order_id + item_id)।
  • Foreign key: दूसरी table की PRIMARY KEY को refer करता एक column; tables जोड़ता है (referential integrity)।
  • Unique key: uniqueness लागू करती है पर null हो सकती है और कई की इजाज़त।
  • याद रखने का hook: super (बोझ के साथ) से candidate (minimal) से primary (चुनी); foreign keys tables जोड़ती हैं।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Concepts of Database

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Types of keys: Super key, candidate key, primary key, composite key, foreign key, unique key · Data Processing and Analysis (DPA) · Gri-Learn