3. Concept of Key in DBMS

DBMS में Key की अवधारणा (Concept of Key in DBMS)

परिभाषा (Definition):

Key एक attribute या attributes का समूह होता है जिसका उपयोग database table में प्रत्येक record को अद्वितीय (uniquely) पहचानने के लिए किया जाता है।
यह tables के बीच संबंध (relationships) बनाने और लागू करने में भी मदद करता है।


1. Primary Key (प्राथमिक कुंजी)

परिभाषा:

Primary Key वह field (या fields का समूह) होती है जो table के हर record को अलग-अलग पहचान देती है।
• इसमें NULL value नहीं हो सकती
• एक table में केवल एक ही Primary Key हो सकती है।

उदाहरण:

Student table में StudentID primary key हो सकती है क्योंकि यह हर student को uniquely पहचानती है।

✅ Primary Key के लाभ

  1. विशिष्टता सुनिश्चित करती है – दो records की primary key समान नहीं हो सकती।

  2. डेटा अखंडता बनाए रखती है – tables के बीच सही संबंध बनाए रखने में मदद करती है।

  3. तेज़ डेटा प्राप्ति – आमतौर पर automatic indexing होती है, जिससे search तेज़ होती है।

  4. Referential Integrity को समर्थन – अन्य tables में foreign key के रूप में प्रयोग की जा सकती है।

  5. Update और Delete आसान – records की स्पष्ट पहचान होने से errors कम होते हैं।

❌ Primary Key के नुकसान

  1. आसानी से बदली नहीं जा सकती – बदलने पर related tables प्रभावित हो सकती हैं।

  2. NULL नहीं हो सकती – हर record में value होना ज़रूरी है।

  3. जटिलता बढ़ाती है – सही primary key चुनना कठिन हो सकता है।

  4. Dependency समस्या – parent table में बदलाव child table को प्रभावित करता है।

  5. बड़े tables में overhead – indexing से performance थोड़ा प्रभावित हो सकता है।


2. Candidate Key (उम्मीदवार कुंजी)

परिभाषा:

Candidate Key वह attribute (या attributes का समूह) होता है जो table के प्रत्येक record को uniquely पहचान सकता है
• एक table में एक से अधिक candidate keys हो सकती हैं।
• इन्हीं में से एक को Primary Key चुना जाता है।

उदाहरण:

Student table में:
StudentID और Email दोनों student को uniquely पहचान सकते हैं।
• इनमें से कोई एक primary key बन सकता है, दूसरा candidate key रहेगा।

✅ Candidate Key के लाभ

  1. विशिष्ट पहचान – हर record को uniquely पहचानने की क्षमता।

  2. Primary Key चुनने में विकल्प – बेहतर attribute चुनने में मदद।

  3. डेटा अखंडता बनाए रखती है

  4. Relationships को support – foreign key के रूप में उपयोग हो सकता है।

  5. लचीलापन – records पहचानने के कई विकल्प मिलते हैं।

❌ Candidate Key के नुकसान

  1. जटिलता बढ़ती है – अधिक candidate keys से design कठिन हो जाता है।

  2. Maintenance overhead – सभी candidate keys की uniqueness बनाए रखनी पड़ती है।

  3. NULL स्वीकार नहीं – valid value होना ज़रूरी है।

  4. Dependency समस्या – बदलाव से foreign key प्रभावित हो सकती है।

  5. सही चयन कठिन – सबसे उपयुक्त key चुनना आसान नहीं होता।


3. Foreign Key (विदेशी कुंजी)

परिभाषा:

Foreign Key वह attribute (या attributes) होता है जो किसी अन्य table की primary key को refer करता है।
• यह दो tables के बीच संबंध स्थापित करता है।
• Referential Integrity बनाए रखता है।

उदाहरण:

Enrollment table में StudentID, Student table की StudentID को refer करती है।

✅ Foreign Key के लाभ

  1. Referential Integrity बनाए रखती है

  2. Orphan records रोकती है – बिना parent record के data insert नहीं होने देती।

  3. Relationships स्पष्ट करती है

  4. डेटा की शुद्धता सुनिश्चित करती है

  5. Database को व्यवस्थित बनाती है

❌ Foreign Key के नुकसान

  1. Insert/Update/Delete पर प्रतिबंध – नियम न मानने पर operation fail हो सकता है।

  2. Performance धीमी – constraint check में समय लगता है।

  3. Design जटिल बनता है

  4. Dependency समस्या – parent table में बदलाव child table को प्रभावित करता है।

  5. NULL की सीमा – कई designs में NULL allowed नहीं होता।


4. Composite Key (संयुक्त कुंजी)

परिभाषा:

Composite Key वह primary key होती है जो दो या अधिक attributes से मिलकर बनती है।
• कोई एक attribute अकेले record को uniquely पहचान नहीं पाता।

उदाहरण:

Enrollment table:

| StudentID | CourseID | Grade |

• StudentID या CourseID अकेले unique नहीं हैं।
StudentID + CourseID मिलकर composite key बनाते हैं।

✅ Composite Key के लाभ

  1. विशिष्ट पहचान सुनिश्चित – जब single attribute पर्याप्त न हो।

  2. Duplicate entries रोकती है

  3. Relationships को support करती है

  4. लचीलापन – आवश्यकता अनुसार attributes जोड़े जा सकते हैं।

  5. Many-to-Many relationships में उपयोगी

❌ Composite Key के नुकसान

  1. जटिलता – single key की तुलना में उपयोग कठिन।

  2. बड़ा index – performance कम हो सकती है।

  3. Maintenance कठिन – किसी भी attribute में बदलाव से सभी relations प्रभावित।

  4. User-friendly नहीं – समझना और याद रखना मुश्किल।

  5. Foreign key जटिलता – सभी attributes को refer करना पड़ता है।