Почему стандарт SQL не обеспечивает способ указания FD, кроме суперключей? - PullRequest
3 голосов
/ 10 декабря 2008

Мне кажется, есть другие функциональные зависимости, которые вы, возможно, захотите объявить (кроме, конечно, суперключей), но SQL не предоставляет простого способа сделать это. Почему это?

1 Ответ

3 голосов
/ 10 декабря 2008

Я не знаю из первых рук ответ о том, «почему» комитет SQL разработал его так, как они это сделали, но я бы предположил, что разработчики SQL хотели только один первичный ключ в обычной таблице. Все остальные столбцы в структуре базы данных 3NF функционально зависят от этого ключа и только от этого ключа.

Вы можете получить ключи из функциональных зависимостей, а также вы можете получить функциональные зависимости из суперключей. Но только если они были объявлены правильно, логически симметрично.

Если бы вы могли объявить оба ключа и FD, то была бы возможность объявить таблицу в логическом конфликте с самим собой, что нарушило бы нормализацию.

Лучше, если в языке предусмотрен только один механизм, чтобы избежать двусмысленных объявлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...