2NF কি?
স্বাভাবিকীকরণের দ্বিতীয় ধাপ হল 2NF।
একটি টেবিল 2NF-এ থাকে, শুধুমাত্র যদি একটি সম্পর্ক 1NF-এ থাকে এবং সমস্ত নিয়ম পূরণ করে এবং প্রতিটি নন-কী অ্যাট্রিবিউট সম্পূর্ণরূপে প্রাথমিক কী-এর উপর নির্ভর করে৷
দ্বিতীয় সাধারণ ফর্ম প্রাথমিক কীগুলির উপর আংশিক নির্ভরতা দূর করে৷
আসুন একটি উদাহরণ দেখি -
উদাহরণ (সারণী 2NF লঙ্ঘন করে)
ছাত্রপ্রকল্প>
StudentID | প্রকল্প আইডি | ছাত্রের নাম৷ | প্রকল্পের নাম |
S89 | P09 | অলিভিয়া | ভৌগলিক অবস্থান |
S76 | P07 | জ্যাকব | ক্লাস্টার এক্সপ্লোরেশন৷ |
S56 | P03 | Ava | IoT ডিভাইস |
S92 | P05 | আলেকজান্দ্রা | ক্লাউড স্থাপনা৷ |
উপরের টেবিলে, আমাদের আংশিক নির্ভরতা আছে; আসুন দেখি কিভাবে -
প্রধান মূল বৈশিষ্ট্য হল StudentID এবং ProjectID .
যেমন বলা হয়েছে, নন-প্রাইম অ্যাট্রিবিউটগুলি যেমন ছাত্রের নাম এবং প্রকল্পের নাম আংশিক নির্ভরশীল হওয়ার জন্য প্রার্থীর কী অংশের উপর কার্যকরীভাবে নির্ভরশীল হওয়া উচিত।
ছাত্রের নাম StudentID দ্বারা নির্ধারণ করা যেতে পারে , যা সম্পর্কটিকে আংশিক নির্ভরশীল করে তোলে।
প্রকল্পের নাম ProjectID দ্বারা নির্ধারণ করা যেতে পারে , যা সম্পর্কটিকে আংশিক নির্ভরশীল করে তোলে।
অতএব, <ছাত্রপ্রকল্প> সম্পর্কটি স্বাভাবিককরণে 2NF লঙ্ঘন করে এবং একটি খারাপ ডাটাবেস ডিজাইন হিসাবে বিবেচিত হয়৷
উদাহরণ (সারণী 2NF তে রূপান্তরিত)
2NF-এ আংশিক নির্ভরতা এবং লঙ্ঘন অপসারণ করতে, উপরের সারণীগুলিকে পচিয়ে দিন -
<স্টুডেন্ট ইনফো>
StudentID | ProjectID | ছাত্রের নাম |
S89 | P09 | অলিভিয়া |
S76 | P07 | জ্যাকব |
S56 | P03 | Ava |
S92 | P05 | আলেকজান্দ্রা |
ProjectID | প্রকল্পের নাম |
P09 | ভৌগলিক অবস্থান |
P07 | ক্লাস্টার এক্সপ্লোরেশন৷ |
P03 | IoT ডিভাইস |
P05 | ক্লাউড স্থাপনা৷ |
এখন সম্পর্কটি ডাটাবেস নরমালাইজেশনের 2য় সাধারণ আকারে