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价格 (美元) | |
| M08 | L09 | 180 |
| M03 | L05 | 250 |
| M05 | L09 | 180 |
<Listing>
列表ID (Listing_ID)
| 列表类型 (Listing_Type) | |
| L09 | 犯罪片 |
| L05 | 剧情片 |
| L09 | 犯罪片 |
现在上述关系处于规范化的第三范式 (3NF)。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP