基于功能依赖性的数据库规范化

问题描述 投票:-1回答:1

在1NF,2NF,3NF和BCNF中此关系的分解是什么

关系-接送(目的地,出发地,航空公司,登机口,姓名,联系方式,接机)

功能依赖性-

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

登机口→航空公司

联系人→姓名

姓名,出发→登机口,上车

登机口,出发→目的地

我尝试使用闭包找到候选键,发现它是(联系人,离开)

然后根据该候选键,我试图将其分解为后续的正常形式。

2NF –无部分依赖性

R1(联系人,姓名)

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

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

3NF-无传递依赖和BCNF

R1(联系人,姓名)

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

R3(Gate,Airline)

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

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

sql database database-normalization functional-dependencies database-management
1个回答
0
投票

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

airline departs destination → gate

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.