DBMS中的传递依赖


什么是传递依赖

当间接关系导致函数依赖时,称为传递依赖。

如果 P -> Q 和 Q -> R 为真,则 P-> R 是传递依赖。

为了实现3NF,消除传递依赖。

示例

<MovieListing>

电影ID (Movie_ID)
列表ID (Listing_ID)
列表类型 (Listing_Type)
DVD价格 (美元)
M08
L09
犯罪片
180
M03
L05
剧情片
250
M05
L09
犯罪片
180


上表不是3NF,因为它具有传递函数依赖性:

Movie_ID -> Listing_ID
Listing_ID -> Listing_Type


因此,以下具有传递函数依赖性。

Movie_ID -> Listing_Type


上述说明关系<MovieListing>违反了第三范式 (3NF)。

要消除此违规,需要拆分表并删除传递函数依赖。

<Movie>

电影ID (Movie_ID)

列表ID (Listing_ID)
DVD价格 (美元)
M08L09180
M03L05250
M05L09180


<Listing>

列表ID (Listing_ID)

列表类型 (Listing_Type)
L09犯罪片
L05剧情片
L09犯罪片


现在上述关系处于规范化的第三范式 (3NF)。

更新于:2020年6月15日

23K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告