-1

1NF、2NF、3NF 和 BCNF 中这种关系的分解是什么

关系 - 转移(目的地、出发地、航空公司、登机口、姓名、联系人、接机)

功能依赖 -

目的地、出发、航空公司→登机口

登机口→航空公司

联系→姓名

姓名、出发→登机口、接送

登机口,出发→目的地

我尝试使用闭包找到候选键,发现它是 (contact,departs)

然后基于该候选键,我尝试将其分解为后续的范式。

2NF - 没有部分依赖

R1(联系人,姓名)

R4(姓名、出发、登机口、接机、航空公司)

R5(登机口、出发地、目的地)

3NF-无传递依赖和BCNF

R1(联系人,姓名)

R2(姓名、出发、登机口、接机)

R3(登机口,航空公司)

R4(登机口、出发地、目的地)

这是对的还是这里有问题?因为我对 2NF 的分解并没有真正描述第一个 FD。

4

1 回答 1

1

假设依赖项是一个掩护,在您的两个分解中,依赖项:

airline departs destination → gate

不保存。所有分解的关系都在 3NF 中并保留数据和依赖关系的分解是:

R1 (airline departs destination gate)
R2 (contact name)
R3 (departs gate name pickup)
R4 (contact departs)

gate → airline请注意,由于依赖关系(gate不是超级键),R1 在 3NF 中但不在 BCNF 中。此外,请注意,已知存在 BCNF 中的分解不保留依赖关系的情况。

于 2020-05-05T07:15:17.267 回答