2013-05-23 5 views
8

Here मैंने पाया इस:निर्धारक और उम्मीदवार कुंजी समान या अलग चीजें हैं?

परिभाषा: एक डेटाबेस तालिका में एक निर्धारक किसी भी विशेषता है कि आप एक ही पंक्ति में अन्य विशेषता (विशेषताओं) करने के लिए सौंपा मूल्यों का निर्धारण करने के लिए उपयोग कर सकते है।

उदाहरण: विशेषताएँ कर्मचारी_आईडी, first_name, last_name और date_of_birth के साथ एक तालिका पर विचार करें। इस मामले में, क्षेत्र कर्मचारी_आईडी शेष तीन फ़ील्ड निर्धारित करता है। नाम फ़ील्ड कर्मचारी_आईडी निर्धारित नहीं करते हैं क्योंकि फर्म के पास पहले और/या अंतिम नाम वाले एक से अधिक कर्मचारी हो सकते हैं। इसी तरह, डीओबी फ़ील्ड कर्मचारी_आईडी या नाम फ़ील्ड निर्धारित नहीं करता है क्योंकि एक से अधिक कर्मचारी एक ही जन्मदिन साझा कर सकते हैं।

क्या उम्मीदवार कुंजी के लिए भी परिभाषा लागू नहीं है?

उत्तर

15

मेरी समझ से, यदि निर्धारक पूरी तरह से सामान्य नहीं है तो एक निर्धारक उम्मीदवार कुंजी नहीं हो सकता है। वास्तव में, गैर-सामान्य डेटा को अधिक उपयोगी, सामान्यीकृत रूप में लेने की प्रक्रिया का वर्णन करते समय निर्धारक शब्द का उपयोग किया जाता है।

इस (स्पष्ट रूप से गैर-सामान्य) तालिका पर विचार करें:

CREATE TABLE US_Address (
    AddressID int, 
    Streetline varchar(80), 
    City varchar(80), 
    State char(2), 
    ZIP char(5), 
    StateName varchar(80), 
    StateTax DECIMAL(5,2) 
) 

राज्य StateName और StateTax के लिए एक कारक है, लेकिन यह पंक्ति के लिए एक उम्मीदवार कुंजी नहीं है। उचित सामान्यीकरण, इसलिए यूएस_एड्रेस टेबल और राज्य तालिका में राज्यनाम और स्टेटटेक्स को स्थानांतरित कर देगा।

अधिक जानकारी के लिए here देखें।

+0

भले ही कोई तालिका बीसीएनएफ में है, तो गुणों का हर उप-समूह एक निर्धारक है। सही क्या है "यदि कोई [बीसीएनएफ में नहीं है] [लेकिन अन्यथा है]" एक [गैर-तुच्छ एफडी] निर्धारक उम्मीदवार कुंजी का [सुपरसैट] नहीं हो सकता है [लेकिन अन्यथा है] "। – philipxy

+0

इसके अलावा, यह लिंक असामान्य रूप से "निर्धारक" (तालिका में) को "पूर्ण कार्यात्मक निर्भरता के निर्धारक" के रूप में परिभाषित करता है। और इसका "बीसीएनएफ में एक संबंध है, और केवल तभी, जब प्रत्येक निर्धारक [एसआईसी] उम्मीदवार की कुंजी है" हर गैर-तुच्छ निर्धारक [एसआईसी] "होना चाहिए। – philipxy

6
  • प्राथमिक कुंजी या कोई उम्मीदवार कुंजी भी एक निर्धारक है जबकि विपरीत सत्य नहीं है।
  • एक निर्धारक पंक्ति में एक या अधिक विशेषताओं को विशिष्ट रूप से निर्धारित कर सकता है।
  • एक उम्मीदवार कुंजी पूरी पंक्ति को विशिष्ट रूप से निर्धारित कर सकती है। , बिक्री प्रतिनिधि #, बिक्री प्रतिनिधि नाम

    ग्राहक #, नाम, पता, क्रेडिट:


here से एक उदाहरण लेते हुए निम्नलिखित कॉलम के साथ एक मेज हो वहाँ जाने

और मान लें कि Sales Rep # विशिष्ट रूप से Sales Rep Name निर्धारित कर सकता है। इस प्रकार, Sales Rep #Sales Rep Name के लिए एक निर्धारक है लेकिन यह तालिका के लिए उम्मीदवार कुंजी नहीं है।

4

टी एल; डॉ नहीं, "कुंजी उम्मीदवार" "निर्धारक" और नहीं इसी अवधारणा है। एक निर्धारक एफडी है। एक सीके तालिका है।हम उचित रूप से यह भी कह सकते हैं कि एक सीके इसकी तालिका का एक निर्धारक (एफडी) है क्योंकि यह प्रत्येक कॉलम & कॉलम सेट निर्धारित करता है।


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

कॉलम एक्स और वाई के सेट के लिए हम एक्स -> वाई लिख सकते हैं। हम कहते हैं कि एक्स निर्धारक है/निर्धारित करने सेट और वाई निर्धारित सेट की/कार्यात्मक निर्भरता (एफडी) एक्स में है -> वाई

हम कह एक्स कार्यात्मक निर्धारित करता है वाई और वाई कार्यात्मक रूप से एक्स द्वारा निर्धारित किया गया है। हम कहते हैं कि एक्स एक्स -> वाई। {सी} -> वाई में निर्धारक है, हम कहते हैं कि सी कार्यात्मक रूप से वाई निर्धारित करता है एक्स -> {सी} हम कहते हैं एक्स कार्यात्मक रूप से det ermines सी। जब एक्स वाई का सुपरसेट होता है तो हम कहते हैं एक्स -> वाई तुच्छ है।

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

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

ध्यान दें कि एक निर्धारक एक एफडी की हो सकता है या, ढीली, (एक एफडी कि में रखती है) एक मेज की प्रत्येक सीके अपनी तालिका का एक निर्धारक है। (लेकिन फिर भी, किसी तालिका में कॉलम के हर सेट एक निर्धारक है:।। खुद की, तुच्छता और इसी तरह हर स्तंभ)

(इन परिभाषाओं पर सामान्य एफडी और एक मेज के CKS निर्भर नहीं है। इसे सामान्य करने में उपयोग किया जाता है।जब हर निर्धारक एक गैर तुच्छ एफडी है कि यह में धारण की एक superkey है एक तालिका BCNF में है।)

एसक्यूएल टेबल संबंधों और SQL ऑपरेटर्स हैं नहीं उनके संबंधित/गणितीय समकक्षों नहीं हैं। अन्य चीजों के अलावा, एसक्यूएल में डुप्लिकेट पंक्तियां हैं, नल & एक प्रकार का 3-मूल्यवान तर्क है। लेकिन यद्यपि आप शर्तों को उधार ले सकते हैं और उन्हें एसक्यूएल अर्थ दे सकते हैं, you can't just substitute those meanings into other RM definitions or theorems and get something sensible or true। तो हमें convert an SQL design to a relational design, apply relational notions, then convert back to SQL होना चाहिए। ऐसे विशेष मामले हैं जहां हम कुछ चीजों को सीधे एसक्यूएल में कर सकते हैं क्योंकि हम जानते हैं कि अगर हम कन्वर्ट करते हैं तो क्या होगा, & लागू करें।

+1

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

+0

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

संबंधित मुद्दे