Database Boyce Codd范式?

Database Boyce Codd范式?,database,database-design,normalization,bcnf,Database,Database Design,Normalization,Bcnf,我想看看这些示例是否在BCNF中,以了解我是否正确地执行了这些操作。 关系: Employee (EID, Ename, PID, ProjectName, MID, ManagerName) 功能依赖关系: EID==>(Ename, PID) PID==>(ProjectName, EID, MID) MID==>(ManagerName, PID) PID==>(Pname, Type, Breed, DOB, OwnerID) OwnerID==>(O

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

Employee (EID, Ename, PID, ProjectName, MID, ManagerName) 
功能依赖关系:

EID==>(Ename, PID)
PID==>(ProjectName, EID, MID)
MID==>(ManagerName, PID)
PID==>(Pname, Type, Breed, DOB, OwnerID)
OwnerID==>(OwnerName, OwnerPhone, OwnerEmail, PID)
ServiceType==>(Charge)
BCNF关系:

Employees(EID,Ename, PID)
Project(PID, ProjectName)
Managers(MID, ManagerName, PID)
Pet(PID,Pname,Type,Breed,DOB)
Owner(OwnerID,  OwnerName, OwnerPhone, OwnerEmail, PID)
Service(ServiceType, PID, Date, Charge)
第二个例子

关系:

Pet (PID, Pname, Type, Breed, DOB, OwnerID, OwnerName, OwnerPhone,
     OwnerEmail, ServiceType, Date, Charge) 
功能依赖关系:

EID==>(Ename, PID)
PID==>(ProjectName, EID, MID)
MID==>(ManagerName, PID)
PID==>(Pname, Type, Breed, DOB, OwnerID)
OwnerID==>(OwnerName, OwnerPhone, OwnerEmail, PID)
ServiceType==>(Charge)
BCNF关系:

Employees(EID,Ename, PID)
Project(PID, ProjectName)
Managers(MID, ManagerName, PID)
Pet(PID,Pname,Type,Breed,DOB)
Owner(OwnerID,  OwnerName, OwnerPhone, OwnerEmail, PID)
Service(ServiceType, PID, Date, Charge)

我在这些方面做得对吗?

是的,这两个例子都在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)