Итак, чтобы подвести итог, у меня большие трудности с пониманием функциональных зависимостей, просто глядя на абстрактные примеры, и я был бы очень признателен за помощь в понимании возможных ситуаций из реальной жизни. Я хочу посмотреть, являются ли эти функциональные зависимости нарушением BCNF. Я прочитал много объяснений, но я все еще борюсь с полным пониманием, и я не могу понять полную картину, только глядя на символы, подобные приведенным ниже. Я чувствую, что мне нужны реальные данные для размышлений, и поэтому мои примеры ниже.
R(A,B,C,D,E) where functional dependencies are AB -> C, DE -> C, and B -> D.
Я пытаюсь здесь с разными примерами и сценариями и получил это. Не уверен, что я думаю совершенно неправильно. Но вот я иду.
Employee(employee_id, firstname, lastname, title, department)
AB -> C, employee_id, firstname -> lastname (lastname can be determined by employee_id and firstname). lefthand side is a key so no bcnf violation?
DE -> C, title, department -> lastname (lastname of specific employee can NOT be determined by title and department. a bcnf violation, because lefthand side contain no key attribute?
B -> D, firstname -> title (title of employee can not be determined by only firstname, because it can exist several employees with same firstname? and lefthand side has no key attribute, => bcnf violation?
Теперь мой вопрос: эти FD для вышеуказанного отношения ДОЛЖНЫ быть одинаковыми для каждого примера, который я тестирую? Или это зависит от каждого отношения и от того, какие атрибуты они имеют и в каком порядке?
Если я попробую другой пример с тем же FD и отношением.
Movie(movieName, published, starName, age, address)
movieName, published -> starName (starnName can be determined from movieName and published. no bcnf violation?
age, address -> starName (starName cannot be determined from age and address. bcnf violation?
published -> age (age of the movie can be determined from published. No bcnf violation?
Я был бы очень признателен за некоторые рекомендации.
Спасибо.