আমার দ্বিতীয় দ্বিতীয় ফর্ম (2 এনএফ) নিয়ে সমস্যা আছে এবং আমি গুগল ব্যবহার করে এটি সমাধান করতে পারিনি। এটি আমাকে পাগল করছে কারণ আমি একজন শিক্ষক এবং আমি আমার শিক্ষার্থীদের ভুল জিনিস শেখাতে চাই না।
5 টি ক্ষেত্র সহ একটি টেবিল রাখি।
গ্রেডিংস = {শিক্ষার্থীর নাম, সাবজেক্ট কোড, সাবজেক্ট নাম, # এক্সাম, গ্রেড
নির্ভরতা এইভাবে:
ছাত্রের নাম, সাবজেক্ট কোড, # পরীক্ষা -> গ্রেড
সাবজেক্টকোড -> সাবজেক্টনাম
সাবজেক্টনাম -> সাবজেক্ট কোড
অতএব, প্রার্থী কী 1 {StudentName, SubjectCode, #Exam} এবং প্রার্থী কী 2 {StudentName, SubjectName, #Exam} ।
প্রধান বৈশিষ্ট্যগুলি হ'ল {স্টুডেন্টনাম, সাবজেক্টকোড, সাবজেক্টনাম, # এক্সাম non এবং অ-মৌলিক বৈশিষ্ট্যগুলি গ্রেড
দ্বিতীয় সাধারণ ফর্মের সংজ্ঞা অনুসারে, একটি অ-মৌলিক বৈশিষ্ট্য প্রার্থী কী এর অংশের উপর নির্ভর করতে পারে না। একমাত্র নন-প্রাইম অ্যাট্রিবিউট (গ্রেড) কোনও প্রার্থী কী এর অংশের উপর নির্ভর করে না তাই এই টেবিলটি 2NF-এ দেখা যাচ্ছে।
সমস্যাটি হ'ল আমার মনে হয় কিছু ভুল (এবং আমি ভুল হতে পারি)। আমি মনে করি বিষয়গুলির নিজস্ব টেবিল থাকা উচিত।
গ্রেডিংস = {শিক্ষার্থীর নাম, সাবজেক্ট কোড, # এক্সাম, গ্রেড
বিষয়সমূহ = {বিষয় কোড, সাবজেক্ট নাম
তবে 2NF এটি উত্পাদন করে না। 3NF হ'ল নন-প্রাইম বৈশিষ্ট্যগুলির মধ্যে নির্ভরতা সম্পর্কে তাই এটি এটিরও উত্পাদন করে না। তবে আমার কাছে মনে হচ্ছে এটি সঠিক ফলাফল, কারণ এটির কোনও অপ্রয়োজনীয়তা নেই।
আমার ধারণা, নন-প্রাইম অ্যাট্রিবিউটটি "এট্রিবিউট যা প্রার্থী কী নয়" হিসাবে সংজ্ঞায়িত করা হয়েছিল, 2NF পছন্দসই ফলাফল আনতে পারে। তবে আমি এটি বারবার যাচাই করেছি এবং নন-প্রাইম অ্যাট্রিবিউটটি "এমন বৈশিষ্ট্য হিসাবে সংজ্ঞায়িত করা হয়েছে যা প্রার্থী কীতে স্বীকৃত নয়"।
আমি কি ভুল করছি?