3NF คืออะไร?
ขั้นตอนที่ 3 ของการทำให้เป็นรูปแบบปกติ (Normalization) คือ 3NF
ตารางอยู่ใน 3NF ก็ต่อเมื่อ Relation อยู่ใน 2NF และ ไม่มี Transitive Functional Dependency
ตัวอย่าง (ตารางที่ละเมิด 3NF)
<MovieListing>
| Movie_ID | Listing_ID | Listing_Type | DVD_Price ($) |
|---|---|---|---|
| 0089 | 007 | Comedy | 100 |
| 0090 | 003 | Action | 150 |
| 0091 | 007 | Comedy | 100 |
ตารางข้างต้น ไม่อยู่ใน 3NF เพราะมี Transitive Functional Dependency:
| Movie_ID → Listing_ID | Listing_ID → Listing_Type |
|---|
ดังนั้น Movie_ID → Listing_Type คือ Transitive Functional Dependency
ตัวอย่าง (ตารางที่แปลงเป็น 3NF แล้ว)
เพื่อให้อยู่ใน 3NF ต้องแยกตารางและลบ Transitive Functional Dependency
<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 แล้ว:
