0

我想看看这些示例是否在 BCNF 中,以了解我是否正确执行这些操作。关系:

Employee (EID, Ename, PID, ProjectName, MID, ManagerName) 

功能依赖:

EID==>(Ename, PID)
PID==>(ProjectName, EID, MID)
MID==>(ManagerName, PID)

BCNF 关系:

Employees(EID,Ename, PID)
Project(PID, ProjectName)
Managers(MID, ManagerName, PID)

第二个例子

关系:

Pet (PID, Pname, Type, Breed, DOB, OwnerID, OwnerName, OwnerPhone,
     OwnerEmail, ServiceType, Date, Charge) 

功能依赖:

PID==>(Pname, Type, Breed, DOB, OwnerID)
OwnerID==>(OwnerName, OwnerPhone, OwnerEmail, PID)
ServiceType==>(Charge)

BCNF 关系:

Pet(PID,Pname,Type,Breed,DOB)
Owner(OwnerID,  OwnerName, OwnerPhone, OwnerEmail, PID)
Service(ServiceType, PID, Date, Charge)

我在正确的轨道上吗?

4

1 回答 1

0

是的,这两个例子都在 BCNF 中。

Employees(EID, Ename, PID)
Project(PID, ProjectName)
Managers(MID, ManagerName, PID)

没有函数依赖,所以达到了BCNF。请注意,在此示例中,一个项目可以由多个经理领导,但一个经理只能领导一个项目。

Pet(PID ,Pname, Type, Breed, DOB)
Owner(OwnerID, OwnerName, OwnerPhone, OwnerEmail, PID)
Service(ServiceType, PID, Date, Charge)

这又是 BCNF,因为属性没有会导致冗余的依赖关系。再次注意:同一只宠物可以被多个主人拥有,但一个主人只能拥有一只宠物。这是一个示例,其中每只宠物仅由一个所有者拥有,并且一个所有者可以拥有许多宠物:

Pet(PID, Pname, Type, Breed, DOB, OwnerID)
Owner(OwnerID,  OwnerName, OwnerPhone, OwnerEmail)
Service(ServiceType, PID, Date, Charge)
于 2014-06-25T11:34:49.487 回答