Технические вопросы BCNF против 3NF

Есть много связанных вопросов по SO, но ни один из них, который я могу найти, не отвечает на этот вопрос:

Возможно ли иметь отношение 3NF, которое можно объединить без потерь, разложить на отношения BCNF при сохранении зависимостей?

Я знаю, что вы можете разложить отношение 3NF на BCNF, если вы готовы ослабить одну или несколько зависимостей. И Бери, и Бернштейн доказали, что FD вида {AB->C, C->B} дают отношение 3NF, которое не может быть сведено к BCNF. Но есть ли даже случай, когда вы находитесь в 3NF, и вы можете перейти на BCNF?

Для дополнительных неофициальных баллов, я хотел бы знать хороший термин для зависимостей, разрешенных 3NF, но не BCNF? Очень легко различить 1NF, 2NF и 3NF на основе частичных и транзитивных зависимостей, но, на мой взгляд, половина проблемы с BCNF в том, что нет простого названия для типа запрещенной зависимости.

1 ответ

Но есть ли даже случай, когда вы находитесь в 3NF, и вы можете перейти на BCNF?

Да. В Википедии есть пример.

Время начала суда Время окончания Тип ставки
-
1      09:30       10:30     SAVER
1      11:00       12:00     SAVER
1      14:00       15:30 СТАНДАРТ
2      10:00       11:30 ПРЕМИУМ-Б
2      11:30       13:30 ПРЕМИУМ-Б
2      15:00       16:30 ПРЕМИУМ-А

Функциональные зависимости для этого примера не перечислены, но вы можете получить их. Я перечислил FD ниже.

AB-> CD
AC-> BD
BD-> AC
CD-> AB
ABC-> D
BCD->
ABD-> C
ACD-> B
D-> а

Для дополнительных неофициальных баллов, я хотел бы знать хороший термин для зависимостей, разрешенных 3NF, но не BCNF?,,, Половина проблемы с BCNF в том, что нет простого названия для запрещенного типа зависимости.

В BCNF каждый определитель (левая часть) должен быть ключом-кандидатом. Или вы могли бы сказать, что каждая стрелка является стрелкой из клавиши-кандидата. И наоборот, BCNF запрещает детерминанты, которые не являются ключами-кандидатами.

Ключи-кандидаты в статье Википедии: {AB, AC, BD, CD}. Исходное отношение отсутствует в BCNF из-за функциональной зависимости D-> A. Определитель этого FD, D, не является ключом-кандидатом.

Другие вопросы по тегам