Database
 sql >> डेटाबेस >  >> RDS >> Database

डेटाबेस डिजाइन में उम्मीदवार कुंजी क्या है?

डेटाबेस सामान्यीकरण में एक उम्मीदवार कुंजी एक महत्वपूर्ण अवधारणा है। यह जानने के लिए पढ़ें कि उम्मीदवार कुंजी क्या है और यह कैसे जांचें कि विशेषताओं का एक सेट उम्मीदवार कुंजी है या नहीं।

उम्मीदवार कुंजी, इसे केवल कुंजी . भी कहा जाता है डेटाबेस डिजाइन का एक महत्वपूर्ण हिस्सा है। यह प्राथमिक और वैकल्पिक (अद्वितीय) कुंजियों जैसी तकनीकी अवधारणाओं का सैद्धांतिक आधार है। प्रत्येक डेटाबेस डिज़ाइनर को इस बात की जानकारी होनी चाहिए कि उम्मीदवार कुंजी की पहचान कैसे करें और उनकी तालिका के लिए सही कुंजी कैसे चुनें।

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

डेटाबेस तालिकाओं में सामान्य रूपों को समझने के लिए उम्मीदवार कुंजी को समझना महत्वपूर्ण है। यह ज्ञान आपको सबसे सामान्य सामान्य रूपों के नियमों को याद रखने में मदद करेगा।

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

बेसिक डेटाबेस सामान्यीकरण शब्दावली

उम्मीदवार कुंजियों के बारे में पढ़ने से पहले, सुनिश्चित करें कि आप बुनियादी सामान्यीकरण शब्दावली से परिचित हैं। आइए संक्षेप में सबसे महत्वपूर्ण शब्दों की समीक्षा करें।

एक संबंध डेटाबेस तालिका के लिए सैद्धांतिक नाम है। एक संबंध (तालिका) का एक नाम होता है और इसमें नामित विशेषताएँ (कॉलम) होती हैं।

A कार्यात्मक निर्भरता एक संबंध में (A -> B ) आपको बताता है कि जब भी दो पंक्तियों में सेट ए में सभी विशेषताओं के लिए समान मान होते हैं, तो सेट बी में सभी विशेषताओं के लिए उनके समान मान भी होंगे।

बंद विशेषताओं का एक सेट उन विशेषताओं का समूह है जिन्हें इस सेट से कार्यात्मक रूप से निर्धारित किया जा सकता है। आप यहां विशेषताओं के बंद होने की गणना करने के लिए एल्गोरिदम की समीक्षा कर सकते हैं।

सुपरकी

अनौपचारिक रूप से, एक उम्मीदवार कुंजी विशेषताओं का एक समूह है जो विशिष्ट रूप से एक पंक्ति की पहचान करता है।

परिभाषा के अनुसार, एक उम्मीदवार कुंजी एक न्यूनतम सुपरकी है। अच्छा तो इसका क्या मतलब है? एक सुपरकी एक विशेषता या विशेषताओं का एक समूह है जैसे कि इसका बंद होना संबंध में सभी विशेषताएँ हैं।

आइए कुछ उदाहरण देखें। यहां, हमारे पास पाठ्यक्रम संस्करण तालिका है। यह पाठ्यक्रम संस्करणों के बारे में जानकारी संग्रहीत करता है।

प्रत्येक वर्ष, किसी दिए गए पाठ्यक्रम को एक अलग शिक्षक द्वारा पढ़ाया जा सकता है, एक अलग मूल्य और स्पॉट पर अलग-अलग सीमा के साथ। इस प्रकार हमारे पास निम्नलिखित कार्यात्मक निर्भरताएँ हैं:

  • id -> पाठ्यक्रम, वर्ष, शिक्षक, मूल्य, स्थान - आईडी अन्य सभी विशेषताओं को निर्धारित करती है
  • पाठ्यक्रम, वर्ष -> आईडी, शिक्षक, मूल्य, स्थान - पाठ्यक्रम और वर्ष आईडी, शिक्षक, मूल्य और स्पॉट निर्धारित करते हैं।

कोर्स संस्करण

आईडी पाठ्यक्रम वर्ष शिक्षक कीमत स्पॉट
1 डेटाबेस 2019 क्रिस केप 100 45
2 गणित 2019 डैनियल Parr 80 34
3 डेटाबेस 2020 जेनिफर घड़ी 110 30

इस तालिका में सुपरकी क्या हैं? सबसे पहले, सभी विशेषताएँ एक सुपरकी बनाती हैं, इसलिए सेट {id, पाठ्यक्रम, वर्ष, शिक्षक, मूल्य, स्पॉट} एक सुपरकी है। याद रखें कि सभी विशेषताओं का सेट सभी तालिकाओं में एक सुपरकी होता है।

क्या इस तालिका में कोई छोटी सुपरकी हैं? हां, वहां हैं। सेट {id} एक सुपरकी है। हमारे पास कार्यात्मक निर्भरता है id -> पाठ्यक्रम, वर्ष, शिक्षक, मूल्य, स्पॉट , और निश्चित रूप से, हमारे पास तुच्छ निर्भरता है id -> id . एक बार हमारे पास आईडी, हम अन्य सभी विशेषताओं को कार्यात्मक निर्भरता से निर्धारित कर सकते हैं।

सेट {पाठ्यक्रम, वर्ष} सुपरकी भी है। हमारे पास कार्यात्मक निर्भरता है पाठ्यक्रम, वर्ष -> आईडी, शिक्षक, मूल्य, स्पॉट , और हमारे पास छोटी कार्यात्मक निर्भरताएं हैं पाठ्यक्रम -> पाठ्यक्रम और वर्ष -> वर्ष . एक बार हमारे पास पाठ्यक्रम . है और वर्ष , हम अन्य सभी विशेषताओं को कार्यात्मक निर्भरता से निर्धारित कर सकते हैं।

सेट {id, पाठ्यक्रम, वर्ष, शिक्षक} सुपरकी भी है। हमारे पास आईडी है , पाठ्यक्रम , और वर्ष . इसलिए, हम इन तीन विशेषताओं के साथ तालिका में अन्य सभी विशेषताओं को निर्धारित कर सकते हैं।

दूसरी ओर, सेट {शिक्षक} सुपरकी नहीं है। अगर हम शिक्षक, . को जानते हैं हम शिक्षक के अलावा कोई अन्य विशेषता निर्धारित नहीं कर सकते। सेट {शिक्षक, मूल्य} सुपरकी भी नहीं है। एक बार हमारे पास शिक्षक और कीमत , हम कोई और विशेषता निर्धारित नहीं कर सकते।

न्यूनतम सुपरकी

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

सेट {id} एक सुपरकी है, और यह न्यूनतम है। आप इसमें से विशेषताएँ नहीं निकाल सकते, क्योंकि तब आपके पास एक खाली सेट होगा, और एक खाली सेट एक सुपरकी नहीं है। इस प्रकार, सेट {id} एक उम्मीदवार कुंजी है।

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

हालांकि, सेट {id, पाठ्यक्रम, वर्ष, शिक्षक} एक सुपरकी है लेकिन उम्मीदवार कुंजी नहीं है। उदाहरण के लिए, यदि आप शिक्षक, . विशेषता को हटाते हैं शेष सेट अभी भी एक सुपरकी है। वास्तव में, इस मामले में, आप {id, पाठ्यक्रम, वर्ष, शिक्षक} से कोई भी विशेषता निकाल सकते हैं , और शेष सेट अभी भी एक सुपरकी होगा।

ध्यान दें कि न्यूनतम सुपरकी का मतलब तत्वों की सबसे छोटी संख्या वाली सुपरकी नहीं है। दोनों {id} और {पाठ्यक्रम, वर्ष} उम्मीदवार कुंजी हैं, भले ही उनके पास अलग-अलग तत्व हों।

एल्गोरिदम:सत्यापित करना कि गुणों का एक सेट एक उम्मीदवार कुंजी है

यह सामान्य डेटाबेस डिज़ाइन समस्या है:आप कैसे सत्यापित करते हैं कि विशेषताओं का एक सेट उम्मीदवार कुंजी है?

इसे सत्यापित करने के लिए यह एल्गोरिथम है:

  • चरण 1:जांचें कि क्या दिया गया सेट एक सुपरकी है। सेट में विशेषताओं के बंद होने की गणना करें। अगर क्लोजर सभी विशेषताओं का सेट है, तो सेट एक सुपरकी है।
  • चरण 2:जांचें कि क्या सुपरकी न्यूनतम है। प्रत्येक विशेषता को हटा दें, एक बार में एक। यदि शेष सेट सुपरकी है, तो सुपरकी न्यूनतम नहीं है, और सेट उम्मीदवार कुंजी नहीं है। यदि आप किसी भी विशेषता को हटा नहीं सकते हैं और सुपरकी संपत्ति नहीं रख सकते हैं, तो सेट एक उम्मीदवार कुंजी है।

उदाहरण के लिए, आइए देखें कि क्या सेट {पाठ्यक्रम, वर्ष} वास्तव में एक उम्मीदवार कुंजी है।

  • चरण 1:आइए {पाठ्यक्रम, वर्ष} के समापन की गणना करें। क्लोजर एल्गोरिथम का उपयोग करते हुए, हम यह निष्कर्ष निकालते हैं कि क्लोजर वास्तव में {id, कोर्स, वर्ष, शिक्षक, मूल्य, स्पॉट} है। इस प्रकार, सेट {पाठ्यक्रम, वर्ष} वास्तव में एक सुपरकी है।
  • चरण 2. आइए पाठ्यक्रम को निकालने का प्रयास करें सेट से। हमारे पास सेट {year} रह गया है। केवल वर्ष . के साथ कोई कार्यात्मक निर्भरता नहीं है बाईं ओर के रूप में। इस प्रकार, इस सेट का समापन {वर्ष} . है . इसी तरह, जब हम वर्ष, . विशेषता को हटाते हैं शेष सेट का समापन {पाठ्यक्रम} है। न तो {वर्ष} न ही {पाठ्यक्रम} सुपरकी हैं, इसलिए सेट {पाठ्यक्रम, वर्ष} एक न्यूनतम सुपरकी है और इस प्रकार, एक उम्मीदवार कुंजी है।

अगर आपको यह लेख पसंद आया है, तो हमारे ब्लॉग पर अन्य सामान्यीकरण लेख देखें।

यदि आप डेटाबेस क्लास लेने वाले छात्र हैं, तो हमारे ऑनलाइन ईआर डायग्राम ड्राइंग टूल, वर्टाबेलो में एक निःशुल्क शैक्षणिक खाता बनाना सुनिश्चित करें। यह आपको सीधे अपने ब्राउज़र में तार्किक और भौतिक ईआर आरेख बनाने की अनुमति देता है।

Vertabelo PostgreSQL, SQL Server, Oracle, MySQL, Google BigQuery, Amazon Redshift और अन्य रिलेशनल डेटाबेस को सपोर्ट करता है। इसे आज़माएं, और देखें कि आरंभ करना कितना आसान है!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL, क्वेरी बिल्डर्स और ORMs की तुलना करना

  2. डेटाबेस क्या हैं?

  3. समान तालिका से दो पंक्तियों की तुलना कैसे करें

  4. मूल उदाहरणों के साथ 11 सामान्य SQL कथन

  5. जावा सुरक्षा एपीआई का परिचय