क्या एक प्राथमिक कुंजी के बिना एक टेबल सामान्यीकृत है?


9

एक व्याख्यान में, मेरे व्याख्याता ने हमें एक प्राथमिक कुंजी के बिना एक तालिका दिखाई। पूछताछ करने पर उन्होंने कहा कि 3NF में जब आप ट्रांजेक्टिव निर्भरता को हटाते हैं तो प्राथमिक कुंजी के बिना टेबल रखना ठीक है।

हालांकि, कोई भी प्राथमिक कुंजी का अर्थ है कि कोई कार्यात्मक निर्भरता नहीं है - लेकिन 3NF सकरात्मक निर्भरता को हटाने है, और मुझे सिखाया गया था कि प्रत्येक तालिका को सामान्यीकरण के लिए एक प्राथमिक कुंजी की आवश्यकता है क्योंकि यह सभी कार्यात्मक निर्भरता के बारे में है।

मुझे पता है कि प्राथमिक कुंजी के बिना तालिका बनाना पूरी तरह से संभव है, लेकिन क्या उस तालिका के मौजूद होने पर डेटाबेस को सामान्यीकृत माना जाता है?

मुझे जोड़ना चाहिए, तालिका में कोई "अद्वितीय कुंजी" नहीं है, कोई प्राथमिक नहीं है, कोई समग्र नहीं है, कोई विदेशी नहीं है।

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

जवाबों:


15

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

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

लेकिन इस मामले में सामान्य रूपों के बारे में बात करना उचित नहीं है: सभी सामान्यीकरण सिद्धांत मौलिक धारणा पर आधारित है कि ब्याज की वस्तुएं संबंध हैं , न कि मल्टीसेट। वास्तव में यह सिद्धांत (कुछ चर्चित) यूनिवर्सल रिलेशन एसेसमेंट पर आधारित है, जो मानता है कि डेटाबेस के सभी संबंध ऐसे संबंध के प्रक्षेपण का एक उपसमुच्चय है, जिसमें हर संबंध में सभी विशेषताएं समाहित हैं। और वह वस्तु वास्तव में एक संबंध (यानी एक सेट) है, न कि एक बहुआयामी।

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

एक रिश्ता xxx सामान्य रूप में है अगर ...


क्या एक सेट के लिए मल्टीसेट आइसोमॉर्फिक नहीं है जहां आप countतत्वों के लिए एक अतिरिक्त विशेषता जोड़ते हैं?
बारमर

3
@ बरमार हाँ, लेकिन फिर आप एक उम्मीदवार कुंजी और सभी प्रासंगिक कार्यात्मक निर्भरता जोड़ते हैं, इसलिए सामान्यीकरण सिद्धांत बिंदु से आप पूरी तरह से अलग मामले में हैं।
रेंज़ो

1
जब लोग गैर-संबंधपरक तालिकाओं पर संबंधपरक संचालन करते हैं, तो वे संबंधपरक परिणामों की अपेक्षा करते हैं। जब वे उन्हें प्राप्त नहीं करते हैं, तो ये विसंगतिपूर्ण दिखाई देते हैं।
वाल्टर मैटी

0

3NF डेटा सामान्यकरण के पहले 3 नियमों के अनुरूप एक तालिका को संदर्भित करता है।

  1. दोहराए जाने वाले समूहों का उन्मूलन
  2. अनावश्यक डेटा का उन्मूलन
  3. स्तंभों का उन्मूलन कुंजी पर निर्भर नहीं करता है

तीसरे नियम के लिए एक कुंजी की आवश्यकता होती है। आप सही कह रहे हैं, लेक्चरर की टेबल 3NF नहीं थी।

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