这个数据库关系是否属于 3NF 和 BCNF,为什么?

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

我对数据库 3NF 和 BCNF 感到困惑。

员工:(SID、Fname、MI、Lname、职位、班次、电话号码、DoB、DoE、性别、公寓号码、城市、邮政编码)

FD1:(SID)-->(Fname、MI、Lname、职位、班次、电话号码、DoB、DoE、性别、公寓号码、城市、邮政编码);

FD2:(Fname、MI、Lname、DoB)-->(SID、职位、班次、电话号码、DoE、性别、公寓号、城市、邮政编码)

FD3:(邮政编码)-->(城市)

database database-normalization functional-dependencies 3nf bcnf
1个回答
0
投票

好吧,它很简单,我明白了。由于在 FD3 中,Zip_code 不是主键,并且城市可以有多个 Zip_code,因此它不在 3NF 中,必须进行分解。制作另一张名为 Zip_Locations 的表:{Zip_code(Primary Key), City}.Zip_Locations 只有一个 FD,并且它是依赖于候选键或主键的非主键,因此它自动满足 3NF。 Staff 看起来像这样 Staff:(SID, Fname, MI, Lname, Position, Shift, Phone_number, DoB, DoE, Gender, Apt_Number, Zip_code) 然后我可以放心地说这些关系都在 BCNF 中,因为所有非素键严格依赖于候选键。另外,如果关系中只有一个主键并且它已经满足 3NF,那么它会自动满足 BCNF。

这个网站帮助很大,http://www.tomjewett.com/dbdesign/dbdesign.php?page=subkeys.php

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