Итак, чтобы выразить все это, у меня возникли серьезные трудности с пониманием функциональных зависимостей, просто взглянув на абстрактные примеры, и я бы очень признателен за некоторую помощь в понимании с возможными реальными жизненными ситуациями. Я хочу видеть, являются ли эти функциональные зависимости любым нарушением 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?
Я действительно очень признателен за руководство.
Спасибо.
Aha okey.Таким образом, это справедливо только для этого отношения с FD, но это, скорее всего, будет отличаться, если вместо этого FD будет: AB-> C, C-> E, D-B, например? Да, я, вероятно, потрачу много часов на то, чтобы понять эти определения и все как можно больше. Спасибо – jabbeboy
См. Http://stackoverflow.com/a/27504915/3404097. Также мой расширенный ответ. Там нет замены для запоминания определений, теорем/правил и алгоритмов, но примеры и практика очень помогают. – philipxy
* Что * действует только для этого отношения и FD? * Что * будет отличаться, если вместо этого выполняются FDs AB-> C, C-> E, D-> B? Если вы имеете в виду возможные разложения BCNF, тогда да. Но вам не нужно знать, как возникли FD, чтобы использовать алгоритм декомпозиции. – philipxy