Во-первых, я думаю, что вы неправильно истолковали фигуру. Обозначения, используемые в нем, как правило, интерпретируется как описание следующих двух функциональных зависимостей:
Patient, Hospital → Doctor (1)
Doctor → Hospital (2)
функциональная зависимость (1) означает, что для каждого пациента в определенной больнице присваивается уникальный врач, в то время как (2) означает, что каждый врач работает в уникальной больнице. В вашей интерпретации вместо этого каждая больница однозначно определяет врача, то есть в любой больнице есть только один врач!
Итак, учитывая приведенную выше интерпретацию, давайте посмотрим, есть ли отношение в BCNF. Отношение находится в НФБК, если каждый детерминант является ключевым (супер), и ясно, что зависимость:
Doctor → Hospital
нарушает это условие, так как доктор не суперключ (то есть он не детерминированным все атрибуты). На самом деле это отношение имеет два кандидата ключей: (пациент, больница) и (пациент, доктор).
Таким образом, разложение этого соотношения в НФКАХ является следующим:
R1 <(Doctor, Hospital), { Doctor → Hospital }>
R2 <(Doctor, Patient), { }>
(так что вы правы в вашей догадке).
Обратите внимание, однако, что это разложение имеет неприятное свойство: потеря функциональной зависимости! Фактически, утеряна зависимость:
Patient, Hospital → Doctor
Утеряно, то есть оно не может быть осуществлено в результирующей базе данных. Это означает, что можно вставить информацию о пациенте с врачом, который не находится в больнице, в которой находится пациент!
Наконец, обратите внимание, что поскольку Doctor является основным атрибутом (то есть он принадлежит к ключу-кандидату), начальное отношение уже находится в 3NF.
Отношение не должно «быть в 3nf», а остальное - в BCNF; просто остальное гарантирует BCNF (& 3NF). Хотя вы все исказили. Поэтому, пожалуйста, найдите определение BCNF и отредактируйте свой вопрос .. – philipxy