3NF কী?
স্বাভাবিকীকরণের তৃতীয় ধাপ হলো 3NF।
একটি টেবিল 3NF-এ থাকবে, শুধু তখনই যখন একটি রিলেশন 2NF-এ থাকে এবং এতে কোনো ট্রানজিটিভ ফাংশনাল নির্ভরতা নেই।
একটি উদাহরণ দেখি:
উদাহরণ (টেবিল 3NF লঙ্ঘন করে)
<MovieListing>
| Movie_ID | Listing_ID | Listing_Type | DVD_Price ($) |
| 0089 | 007 | Comedy | 100 |
| 0090 | 003 | Action | 150 |
| 0091 | 007 | Comedy | 100 |
উপরোক্ত টেবিল 3NF-এ নেই কারণ এতে একটি ট্রানজিটিভ ফাংশনাল নির্ভরতা রয়েছে:
| Movie_ID -> Listing_ID Listing_ID -> Listing_Type |
সুতরাং, Movie_ID -> Listing_Type অর্থাৎ ট্রানজিটিভ ফাংশনাল নির্ভরতা।
উদাহরণ (টেবিল 3NF-এ রূপান্তরিত)
3NF-এ রূপান্তর করতে, টেবিলগুলো ভাগ করুন এবং ট্রানজিটিভ ফাংশনাল নির্ভরতা দূর করুন।
<Movie>
| Movie_ID | Listing_ID | DVD_Price ($) |
| 0089 | 007 | 100 |
| 0090 | 003 | 150 |
| 0091 | 007 | 100 |
<Listing>
| Listing_ID | Listing_Type |
| 007 | Comedy |
| 003 | Action |
| 007 | Comedy |
ফিরে দেখি ফলাফল যা এখন 3NF-এ একটি টেবিল:
