DBMS में प्राथमिक कुंजी और सुपर कुंजी के बीच अंतर क्या है


20

मैं DBMSs में नया हूं और मैं अभी भी सिद्धांत सीख रहा हूं।

मैं वास्तव में इस प्रमुख व्यवसाय के साथ भ्रमित हो रहा हूं और गुग्लिंग के बाद मैंने इसे केवल 2 कुंजी तक सीमित कर दिया है जो मुझे नहीं मिलता है (प्राथमिक और सुपर)।

DBMS पर मेरे कुछ सवाल हैं। यदि आप मेरे लिए उन्हें जवाब दे सकते हैं तो मैं आभारी रहूंगा।

1) DBMS में प्राथमिक कुंजी और सुपर कुंजी के बीच अंतर क्या है? यदि आप ठीक से समझाने के लिए एक व्यापक उदाहरण का उपयोग कर सकते हैं तो इसकी अत्यधिक सराहना करें

2) क्या प्राथमिक कुंजी और सुपर कुंजी दोनों में प्राथमिक कुंजी और सुपर कुंजी बनाने के लिए कई कॉलम संयुक्त हो सकते हैं?

3) प्राथमिक कुंजी सुपर कुंजी या इसके विपरीत का एक सबसेट है?


1
एक चीज जो बहुत अधिक चर्चित है, वह यह है कि टपल (पंक्ति) खुद एक सुपरकी है। चूंकि इरादे विशिष्ट रूप से पंक्ति की पहचान करने में सक्षम होने के लिए है, अर्थात विशिष्ट मानों के विशेष संयोजन वाले टपल की पहचान करने में सक्षम होने के लिए, ऐसा करने का एक तरीका है कि पहले से ही सभी मूल्य उपलब्ध हैं। इसलिए टुपल अपने आप में एक सुपरकी है, क्योंकि एक बार जब हम टपल में मूल्यों को जानते हैं, तो स्पष्ट रूप से हम जानते हैं कि टपल को उन मूल्यों को कैसे प्राप्त करना है। यह पहली बार में मूर्खतापूर्ण लगता है, लेकिन यह एक ऊपरी सीमा को स्थापित करता है जो एक ट्यूल के लिए एक सुपरकी हो सकती है - टुपल ही।
डेव

@Dave एक संबंध / तालिका के सभी स्तंभ नामों का सेट (और इसलिए इसके प्रत्येक ट्यूपल्स / पंक्तियाँ) इसका एक सुपरकी है। "टुपल (पंक्ति) ही नहीं"।
फिलीपिक्‍स

@philipxy आप सही हैं और मुझे गलत लगता है - मैं सही हूं। स्पष्टीकरण जोड़ने के लिए धन्यवाद।
डेव

जवाबों:


23

एक सुपर कुंजी बस एक गैर-न्यूनतम उम्मीदवार कुंजी है , जो कि पंक्ति की विशिष्टता सुनिश्चित करने के लिए अतिरिक्त स्तंभों के साथ कड़ाई से आवश्यक नहीं है।

एक प्राथमिक कुंजी एक न्यूनतम कैंडिडेट कुंजी है , जो यह कहना है कि विशिष्टता सुनिश्चित करने के लिए सभी घटक स्तंभों की कड़ाई से आवश्यकता है।

30 साल के अनुभव के एक डेटाबेस डेवलपर / डिजाइनर के रूप में, मैंने कभी भी सुपर कुंजी शब्द नहीं सुना था जब तक कि मैंने इस प्रश्न को नहीं देखा, और इसे देखा। सुपर की की अवधारणा प्रदर्शन और भौतिक स्कीमा डिज़ाइन के विषय में अधिक जर्मेनिक लगती है क्योंकि यह सीधे क्वेरी कवरिंग के लिए अतिरिक्त कॉलम के साथ एक अद्वितीय गैर-अनुक्रमित सूचकांक की अवधारणा को सीधे मैप करता है।


3
यह काफी गलत है। आप उचित सुपरकी, सुपरकी और CK के स्थान पर सुपरकी, CK & PK का उपयोग कर रहे हैं। सुपरकी एक UNIQUE सेट है। (A CK एक "न्यूनतम" सुपरकीक है। "न्यूनतम CK" की कोई धारणा नहीं है। प्रत्येक CK एक सुपरकीक है। इसलिए एक सुपरकीक के पास CK से अधिक कॉलम होने की जरूरत नहीं है। एक PK एक CK है जिसे पीके कहता है। यदि इसे "न्यूनतम सीके" होना था, तो "न्यूनतम" का अर्थ "मनमाना" होना होगा।) SQL PK और UNIQUE NOT NULL घोषणापत्र नहीं। (एक SQL PK एक PK हो सकता है या नहीं भी हो सकता है।) Superkeys CK की परिभाषा के लिए महत्वपूर्ण हैं, जो सामान्यीकरण के लिए डिज़ाइन करने के लिए महत्वपूर्ण है। मेरा जवाब देखिए।
दार्शनिक

1
इसके अतिरिक्त, एसके की समझ को
बॉयसी

16

सुपर कीज़: सुपर कुंजी एक कुंजी के सुपरसेट के लिए है। सुपर की एक या अधिक विशेषताओं का एक समूह है जो सामूहिक रूप से लिया जाता है और अन्य सभी विशेषताओं को विशिष्ट रूप से पहचान सकता है।

उदाहरण के लिए, हमारे पास तालिका है

Book (BookId, BookName, Author)

तो इस तालिका में हम कर सकते हैं

   (BookId)
   (BookId,BookName)
   (BookId, BookName, Author)
   (BookId, Author)
   (BookName, Author)

हमारे सुपर की के रूप में। प्रत्येक सुपर कुंजी विशिष्ट रूप से प्रत्येक टपल (रिकॉर्ड) की पहचान करने में सक्षम है।

कैंडिडेट कीज कैंडिडेट कीज एक सुपर की हैं जो कोई बेमानी विशेषता नहीं हैं। दूसरे शब्दों में उम्मीदवार कुंजी न्यूनतम सुपर चाबियाँ हैं। उदाहरण के लिए, ऊपर चित्रण में

   (BookId)
   (BookName,Author)

इन दोनों कुंजियों में उम्मीदवार कुंजी हो सकते हैं, क्योंकि शेष कुंजियाँ निरर्थक विशेषताएँ हैं। सुपर कुंजी (BookId, BookName) रिकॉर्ड्स का अर्थ सिर्फ बुकिड द्वारा विशिष्ट रूप से पहचाना जा सकता है और इसलिए बुकनाम रीडायरेक्ट विशेषता है

प्राथमिक कुंजी: यह एक उम्मीदवार कुंजी है जिसे एक इकाई सेट के साथ संस्थाओं की पहचान करने के लिए डेटाबेस डिजाइनर द्वारा चुना जाता है। या प्रत्येक रिकॉर्ड को विशिष्ट रूप से पहचानने के लिए उपयोग की जाने वाली कुंजी को प्राथमिक कुंजी के रूप में जाना जाता है।

कैंडिडेट कुंजी के ऊपर से कोई भी प्राथमिक कुंजी हो सकती है। और दूसरा जो प्राथमिक कुंजी के रूप में नहीं चुना जाता है उसे वैकल्पिक कुंजी के रूप में जाना जाएगा


यह प्रश्न का उत्तर देता है और उत्थान के योग्य है।
शाहरुख खान

यह भी ध्यान रखें कि लिए एक और नाम alternative keyहै secondary keyवे एक ही हैं। बहुत बढ़िया जवाब!
वल अलशबनी

2

से मेरा यह stackoverflow.com जवाब :

एक उम्मीदवार कुंजी स्तंभों का एक सेट है जो विशिष्ट रूप से पंक्तियों की पहचान करता है और इसमें स्तंभों का कोई छोटा ("उचित") उपसमुच्चय नहीं होता है जो विशिष्ट रूप से पंक्तियों की पहचान करता है।

सुपरकी एक स्तंभ है जो विशिष्ट रूप से पंक्तियों की पहचान करता है। तो एक उम्मीदवार कुंजी एक सुपरकी है जिसमें कोई छोटा सुपरकीक नहीं होता है।

SQL में आप एक खाली उम्मीदवार कुंजी की घोषणा नहीं कर सकते। इसके अलावा, UNULLQUE NOT NULL और PRIMARY KEY (जो बाधाओं के संदर्भ में इसका मतलब है कि UNIQUE NOT NULL) सुपरकी घोषित नहीं करती, प्रति कुंजी नहीं। यदि ऐसी घोषणा के कॉलम सेट में सुपरकी के रूप में घोषित छोटा कॉलम सेट नहीं होता है, तो यह घोषित सुपरकी एक उम्मीदवार कुंजी है।

से मेरा यह stackoverflow.com जवाब किसी तालिका फिर से:

कॉलम X और Y के सेट के लिए हम X -> Y लिख सकते हैं । हम कहते हैं कि X निर्धारक सेट है और Y , कार्यात्मक निर्भरता ( FD ) X -> Y में / का निर्धारित सेट है ।

हम कहते हैं कि X कार्यात्मक रूप से Y निर्धारित करता है और Y , X द्वारा कार्यात्मक रूप से निर्धारित किया जाता है। हम कहते हैं कि X, X का निर्धारक है -> Y में {C} -> Y हम कहते हैं कि C कार्यात्मक रूप से Y में निर्धारित करता है । X -> {C} में हम X निर्धारित करते हैंकार्यात्मक रूप से C. निर्धारित करता है । जब X, Y का सुपरसेट होता है, तो हम X -> Y को तुच्छ कहते हैं

हम कहते हैं कि एक्स -> Y में धारण तालिका टी जब एक्स के लिए मूल्यों में से प्रत्येक subrow हमेशा / केवल वाई के लिए मानों की एक ही subrow साथ प्रकट होता है या फिर हम कहते हैं एक्स -> Y एक एफडी है में / की टी जब एक्स एक निर्धारक है टेबल एफ में कुछ एफडी का कहना है कि X , T में / का निर्धारक है

टेबल टी का एक सुपरकी , स्तंभों का एक समूह है जो कार्यात्मक रूप से हर विशेषता को निर्धारित करता है। एक उम्मीदवार कुंजी ( CK ) एक सुपरकी है जिसमें कोई छोटा सुपरकीक नहीं होता है। हम एक CK को प्राथमिक कुंजी ( PK ) के रूप में चुन सकते हैं और फिर अन्य CK वैकल्पिक कुंजी को कॉल कर सकते हैं । जब यह किसी CK में होता है तो एक कॉलम प्राइम होता है।

(जैसा कि मैंने वहां टिप्पणी की, "एफडी, होल्ड, सुपरकी और सीके के लिए चार बोल्डफेस वाक्यों ने पर्याप्त प्रभाव डाला होगा।)

(एक खाली सीके के साथ एक तालिका को एक पंक्ति में शामिल करने के लिए विवश किया जाता है। खाली सेट द्वारा निर्धारित एक स्तंभ हर पंक्ति में एक ही सबरो मान रखने के लिए विवश है।)


1

कुंजी एक कुंजी कई क्षेत्रों का एक एकल या संयोजन है। इसका उद्देश्य आवश्यकता के अनुसार तालिका से डेटा पंक्तियों को एक्सेस या पुनर्प्राप्त करना है। कुंजी को संग्रहीत डेटा तक जल्दी और आसानी से पहुंचने या अनुक्रम करने के लिए तालिकाओं में परिभाषित किया गया है। उनका उपयोग विभिन्न तालिकाओं के बीच संबंध बनाने के लिए भी किया जाता है।

कुंजियों के प्रकार निम्नलिखित तालिकाओं या संबंधों का उपयोग विभिन्न प्रकार की कुंजियों को परिभाषित करने के लिए किया जाएगा।

प्राथमिक कुंजी उन विशेषताओं का गुण या संयोजन जो विशिष्ट रूप से किसी संबंध में किसी पंक्ति या रिकॉर्ड की पहचान करती है, प्राथमिक कुंजी के रूप में जानी जाती है।

द्वितीयक कुंजी एक फ़ील्ड या फ़ील्ड का संयोजन जो पुनर्प्राप्ति के लिए आधार है, उसे द्वितीयक कुंजी के रूप में जाना जाता है। द्वितीयक कुंजी एक गैर-अद्वितीय क्षेत्र है। एक द्वितीयक कुंजी मान कई अभिलेखों को संदर्भित कर सकता है।

उम्मीदवार कुंजी या वैकल्पिक कुंजी एक संबंध में केवल एक प्राथमिक कुंजी हो सकती है। इसमें कई फ़ील्ड या फ़ील्ड के संयोजन शामिल हो सकते हैं जिन्हें प्राथमिक कुंजी के रूप में उपयोग किया जा सकता है। एक फ़ील्ड या फ़ील्ड का संयोजन प्राथमिक कुंजी के रूप में उपयोग किया जाता है। फ़ील्ड या फ़ील्ड का संयोजन जो प्राथमिक कुंजी के रूप में उपयोग नहीं किया जाता है उन्हें उम्मीदवार कुंजी या वैकल्पिक कुंजी के रूप में जाना जाता है।

समग्र कुंजी या संक्षिप्त कुंजी एक प्राथमिक कुंजी जिसमें दो या अधिक गुण होते हैं, समग्र कुंजी के रूप में जानी जाती है।

सॉर्ट या कंट्रोल कुंजी फ़ील्ड का फ़ील्ड या संयोजन जो भौतिक रूप से सॉर्ट किए गए डेटा को अनुक्रम कुंजी के रूप में अनुक्रमित करने के लिए उपयोग किया जाता है। इसे नियंत्रण कुंजी के रूप में भी जाना जाता है।

एक superkey गुण है जो विशिष्ट एक डेटाबेस रिकॉर्ड की पहचान करने के लिए इस्तेमाल किया जा सकता है का एक संयोजन है। एक टेबल में कई सुपरकी हो सकते हैं। उम्मीदवार कुंजी सुपरकीज की एक विशेष उपसमुच्चय है, जिसमें उनके पास कोई बाहरी जानकारी नहीं है।

सुपर कुंजी के लिए उदाहरण: फ़ील्ड के नाम, आयु, SSN और <फ़ोन एक्सटेंशन> के साथ एक तालिका की कल्पना करें। इस तालिका में कई संभव सुपरकार हैं। इनमें से तीन एसएसएन, फोन एक्सटेंशन और नाम हैं। सूचीबद्ध लोगों में से, केवल एसएसएन एक उम्मीदवार कुंजी है, क्योंकि अन्य में रिकॉर्ड को विशिष्ट रूप से पहचानने के लिए आवश्यक जानकारी नहीं है।

विदेशी कुंजी एक विदेशी कुंजी एक संबंध में विशेषताओं का एक गुण या संयोजन है, जिसका मूल्य किसी अन्य संबंध में प्राथमिक कुंजी से मेल खाता है। जिस तालिका में विदेशी कुंजी बनाई जाती है उसे आश्रित तालिका कहा जाता है। जिस तालिका में विदेशी कुंजी संदर्भित होती है, उसे मूल तालिका के रूप में जाना जाता है।

के लिए कम से कम सुपर कुंजी के लिए इस लिंक का उल्लेख यह वहाँ अधिक स्पष्ट है http://www.answers.com/topic/superkey-1

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.