Нормальная форма Бойса Кодда?

Я хочу посмотреть, находятся ли эти примеры в BCNF, чтобы знать, правильно ли я это делаю. Соотношение:

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

Функциональные зависимости:

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

Отношения БКНФ:

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

2-й пример

Связь:

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)

Отношения БКНФ:

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

Я на правильном пути с этим?


person user2985442    schedule 25.06.2014    source источник


Ответы (1)


Да, оба примера в 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)
person Thorsten Kettner    schedule 25.06.2014