这个数据库关系是3NF和BCNF吗?为什么?

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

这个数据库关系是 3NF 和 BCNF 中的吗?为什么?

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

SID 是主键。

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(主键), 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。

有用的网站: https://web.archive.org/web/20130921232322/http://www.tomjewett.com/dbdesign/dbdesign.php?page=subkeys.php

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