मुझे दूसरे सामान्य रूप (2NF) की समस्या है और मैं Google का उपयोग करके इसे हल करने में असमर्थ हूं। यह मुझे पागल बना रहा है क्योंकि मैं एक शिक्षक हूं और मैं अपने छात्रों को गलत चीजें नहीं सिखाना चाहता।
चलो 5 क्षेत्रों के साथ एक तालिका है।
ग्रेडिंग = {स्टूडेंटनाम, सब्जेक्टकोड, सब्जेक्टनेम, # एक्जाम, ग्रेड}
निर्भरताएं इस प्रकार हैं:
स्टूडेंटनेम, सब्जेक्टकोड, # एक्जाम -> ग्रेड
विषय -> विषय
विषय -> विषय
इसलिए, उम्मीदवार कुंजी 1 {StudentName, SubjectCode, #Exam} और उम्मीदवार कुंजी 2 है {StudentName, SubjectName, #Exam} ।
मुख्य विशेषताएँ {StudentName, SubjectCode, SubjectName, #Exam} और गैर-प्रमुख विशेषताएँ ग्रेड हैं
दूसरे सामान्य रूप की परिभाषा के अनुसार, एक गैर-प्रमुख विशेषता उम्मीदवार कुंजी के एक भाग पर निर्भर नहीं कर सकती है। एकमात्र गैर-प्रधान विशेषता (ग्रेड) एक उम्मीदवार कुंजी के एक भाग पर निर्भर नहीं करती है, इसलिए यह तालिका 2NF में लगती है।
समस्या यह है कि मुझे लगता है कि कुछ गलत है (और मैं गलत हो सकता है)। मुझे लगता है कि विषयों की अपनी तालिका होनी चाहिए।
ग्रेडिंग = {छात्रनाम, विषय कोड, # परीक्षा, ग्रेड}
विषय = {विषय कोड, विषय नाम}
लेकिन 2NF इसका उत्पादन नहीं करता है। 3NF गैर-प्रमुख विशेषताओं के बीच निर्भरता के बारे में है इसलिए यह इसका उत्पादन नहीं करता है। लेकिन मुझे लगता है कि यह सही परिणाम है, क्योंकि इसमें कोई अतिरेक नहीं है।
मुझे लगता है कि यदि गैर-प्रमुख विशेषता को "विशेषता जो उम्मीदवार कुंजी नहीं है" के रूप में परिभाषित किया गया था, तो 2NF वांछित परिणाम देगा। लेकिन मैंने इसे बार-बार जांचा है और गैर-प्रमुख विशेषता को "विशेषता के रूप में परिभाषित किया गया है जो एक उम्मीदवार की कुंजी से संबंधित नहीं है"।
मैं क्या गलत कर रहा हूं?