Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

Transitive Dependency ใน DBMS: ความหมายและการกำจัด


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 ($)
M08L09Crime180
M03L05Drama250
M05L09Crime180

ตารางข้างต้น ไม่อยู่ใน 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 ($)
M08L09180
M03L05250
M05L09180

<Listing>

Listing_ID Listing_Type
L09Crime
L05Drama
L09Crime

ตอนนี้ความสัมพันธ์ข้างต้นอยู่ใน Third Normal Form (3NF) แล้ว