DBMS 中的传递依赖
dbmsdatabasemysql
什么是传递依赖
当间接关系导致函数依赖时,它被称为传递依赖。
如果 P -> Q 且 Q -> R 为真,则 P-> R 是传递依赖。
要实现 3NF,请消除传递依赖。
示例
<MovieListing>
Movie_ID | Listing_ID | Listing_Type | DVD_Price ($) |
M08 | L09 | Crime | 180 |
M03 | L05 | Drama | 250 |
M05 | L09 | Crime | 180 |
上表不符合 3NF,因为它具有传递函数依赖性 −
Movie_ID -> Listing_ID Listing_ID -> Listing_Type |
因此,以下内容具有传递函数依赖性。
Movie_ID -> Listing_Type
以上陈述表明关系 <MovieListing> 违反了第三范式 (3NF)。
要消除违规,您需要拆分表并删除传递函数依赖关系。
<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 |
现在上述关系符合规范化的第三范式(3NF)。