Transitive Dependency คืออะไร?
เมื่อความสัมพันธ์แบบอ้อม (Indirect Relationship) ก่อให้เกิด Functional Dependency เรียกว่า Transitive Dependency
ถ้า P → Q และ Q → R เป็นจริง แล้ว P → R คือ Transitive Dependency
เพื่อให้ได้ 3NF ต้อง กำจัด Transitive Dependency
ตัวอย่าง
<MovieListing>
| Movie_ID | Listing_ID | Listing_Type | DVD_Price ($) |
|---|---|---|---|
| M08 | L09 | Crime | 180 |
| M03 | L05 | Drama | 250 |
| M05 | L09 | Crime | 180 |
ตารางข้างต้น ไม่อยู่ใน 3NF เพราะมี Transitive Functional Dependency:
| Movie_ID → Listing_ID | Listing_ID → Listing_Type |
|---|
ดังนั้น มี Transitive Functional Dependency:
Movie_ID → Listing_Type
ความสัมพันธ์ <MovieListing> ละเมิด 3rd Normal Form (3NF)
เพื่อแก้ไข ให้แยกตารางและลบ Transitive Functional Dependency:
<Movie>
| Movie_ID | Listing_ID | DVD_Price ($) |
|---|---|---|
| M08 | L09 | 180 |
| M03 | L05 | 250 |
| M05 | L09 | 180 |
<Listing>
| Listing_ID | Listing_Type |
|---|---|
| L09 | Crime |
| L05 | Drama |
| L09 | Crime |
ตอนนี้ความสัมพันธ์ข้างต้นอยู่ใน Third Normal Form (3NF) แล้ว