কম্পিউটার টিউটোরিয়াল

দ্বিতীয় স্বাভাবিক ফর্ম (2NF)


2NF কী?

স্বাভাবিকীকরণের দ্বিতীয় ধাপ হলো 2NF।

একটি টেবিল 2NF-এ থাকবে, শুধু তখনই যখন একটি রিলেশন 1NF-এ থাকে এবং সব নিয়ম মেনে চলে, এবং প্রতিটি নন-কি অ্যাট্রিবিউট প্রাইমারি কির ওপর পূর্ণাঙ্গভাবে নির্ভরশীল থাকে।

দ্বিতীয় স্বাভাবিক ফর্ম প্রাইমারি কির ওপর আংশিক নির্ভরতা দূর করে।

একটি উদাহরণ দেখি:

উদাহরণ (টেবিল 2NF লঙ্ঘন করে)

<StudentProject>

StudentID

ProjectID

StudentName

ProjectName
S89
P09
Olivia
Geo Location
S76
P07
Jacob
Cluster Exploration
S56
P03
Ava
IoT Devices
S92
P05
Alexandra
Cloud Deployment


উপরোক্ত টেবিলে আংশিক নির্ভরতা আছে; দেখি কিভাবে:

প্রাইম কি অ্যাট্রিবিউটগুলো হলো StudentID এবং ProjectID।

উল্লেখিত সূত্র অনুযায়ী, নন-প্রাইম অ্যাট্রিবিউটগুলো অর্থাৎ StudentName এবং ProjectName একটি ক্যান্ডিডেট কির অংশের ওপর ফাংশনালি নির্ভরশীল হতে হবে আংশিক নির্ভরতা হতে।

StudentName StudentID- দ্বারা নির্ধারিত হতে পারে, যা রিলেশনটিকে আংশিক নির্ভরশীল করে।

ProjectName ProjectID- দ্বারা নির্ধারিত হতে পারে, যা রিলেশনটিকে আংশিক নির্ভরশীল করে।

সুতরাং, <StudentProject> রিলেশন স্বাভাবিকীকরণের 2NF লঙ্ঘন করে এবং একটি খারাপ ডাটাবেস ডিজাইন হিসেবে বিবেচিত।

উদাহরণ (টেবিল 2NF-এ রূপান্তরিত)

আংশিক নির্ভরতা এবং 2NF লঙ্ঘন দূর করতে উপরের টেবিলগুলো ডিকম্পোজ করুন:

<StudentInfo>

StudentID
ProjectID
StudentName
S89
P09
Olivia
S76
P07
Jacob
S56
P03
Ava
S92
P05
Alexandra


<ProjectInfo>

ProjectID
ProjectName
P09
Geo Location
P07
Cluster Exploration
P03
IoT Devices
P05
Cloud Deployment


এখন রিলেশনটি ডাটাবেস স্বাভাবিকীকরণের 2য় স্বাভাবিক ফর্মে আছে।

দ্বিতীয় স্বাভাবিক ফর্ম (2NF)


  1. প্রথম স্বাভাবিক ফর্ম (1NF)

  2. ডাটাবেস টেবিল কীভাবে স্বাভাবিক করবেন (Normalize)

  3. তৃতীয় স্বাভাবিক ফর্ম (3NF)

  4. ডজ্যাঙ্গোতে ফর্ম উইজেট ব্যবহার