Я делал домашнее задание для класса БД.
Один из вопросов меня смущает, хотя я получил ответ (я думаю)..
Вопрос был простой.
ДЛЯ ЗАДАННЫХ ОТНОШЕНИЙ R(A,B,C,D,E) и функциональных зависимостей F(AB -> C, D->E, DE ->B)
<сильный>1. R В 2NF?
<сильный>2. R В 3NF?
<сильный>3. НАХОДИТСЯ ЛИ R В BCNF?
Я подумал, что, поскольку справа от всех FD в F нет букв A и D, A и D должны быть частью ключей-кандидатов.
Итак, я проверил закрытие AD и получил AD+: {A,B,C,D,E}.
Это означает, что AD является суперключом.
Кроме того, поскольку и A, и D должны быть частью ключа-кандидата, а AD нельзя уменьшить (замыкание подмножества AD не равно {A,B,C,D,E}), AD является ключом-кандидатом и возможен только ключ-кандидат. (Правильно ли я делаю?)
Для ключа-кандидата AD D->E является частичной зависимостью от ключа-кандидата AD.
Таким образом, это нарушает условие 2NF.
На DE -> B, нарушает ли этот FD 2NF?
Если это правда, то...
Это нарушение, потому что мы можем получить D->DE из D->E . поэтому DE -> B эквивалентно D -> B. Является ли это D-> B нарушением 2NF??
ИЛИ
DE->B сам по себе нарушает 2NF без какого-либо преобразования из-за D в левой части?
Меня действительно смущает, когда XY -> Z X является частью ключа кандидата, а Y, Z не является простым ключом.
Потому что я не могу сказать, нарушает он 2NF или нет. Я думаю, что это нарушает 2NF, но я не могу четко сказать, почему.
Я часами искал примеры, пояснения и клипы, но не получил удовлетворительного ответа.
Ничего страшного, если меня не волнует конкретная причина, и я просто хочу похвалы. Но я не выношу себя с таким отношением.