Я использую два онлайн-источника для получения понимания 5NF без каких-либо ограничений математики и доказательств.
- Простой справочник по пяти нормальным формам в теории реляционных баз данных (по Кенту. Этот, кажется, был рассмотрен и одобрен в одном из его трудов не кем иным, как CJ Дата сам)
- Пятая нормальная форма (статья Википедии)
Однако я не могу понять ни одну из этих ссылок!
Рассмотрим сначала ссылку № 1 (Кент).
В нем говорится: "Но предположим, что действовало определенное правило: если агент продает определенный продукт, и он представляет компанию, производящую этот продукт, тогда он продает этот продукт для этой компании".
и, далее, продолжает разбивать исходную таблицу (все имена таблиц были предоставлены мной)...
acp(agent, company, product)
-----------------------------
| AGENT | COMPANY | PRODUCT |
|-------+---------+---------|
| Smith | Ford | car |
| Smith | Ford | truck |
| Smith | GM | car |
| Smith | GM | truck |
| Jones | Ford | car |
-----------------------------
... в 3 таблицы:
ac(agent, company)
cp(company, product)
ap(agent, product)
------------------- --------------------- -------------------
| AGENT | COMPANY | | COMPANY | PRODUCT | | AGENT | PRODUCT |
|-------+---------| |---------+---------| |-------+---------|
| Smith | Ford | | Ford | car | | Smith | car |
| Smith | GM | | Ford | truck | | Smith | truck |
| Jones | Ford | | GM | car | | Jones | car |
------------------- | GM | truck | -------------------
---------------------
Но я даже не уверен, понимаю ли я англоязычный смысл вышеупомянутого правила. Мое понимание вышеизложенного правила заключается в том, что его предложение "then" полностью избыточно! Для,
IF агент продает продукт
И
IF, этот агент представляет компанию, производящую этот продукт,
THEN, OBVIOUSLY,, этот агент продает этот продукт для этой компании.
Итак, где "правило" в этом утверждении? Это, по сути, кажется мне не-выражением!
Работа в обратном направлении из трех таблиц - ac, cp и ap - кажется правилом действительно: "Компания может создавать 1 или более продуктов, агент может представлять 1 или более компаний, а также представлять компанию он может или не может продавать все свои продукты".
Но исходная таблица acp уже захватила это правило. Итак, я не уверен, что здесь происходит с объяснением 5NF.
Теперь рассмотрим ссылку № 2 (Википедия).
В нем говорится: "Предположим, однако, что применимо следующее правило:" В своем репертуаре у продавца есть определенные бренды и определенные типы продуктов. Если в его репертуаре находятся бренды B1 и Brand B2, а Product Type P - в его репертуаре, тогда (при условии, что Бренд B1 и Бренд B2 оба производят тип продукта P), Traveling Salesman должен предлагать продукты типа продукта P, сделанные маркой B1, и марки, сделанные брендом B2. "
Еще раз, идя только по английскому языку этого правила и ничего больше,
IF у продавца есть марки B1 и B2, а продукт P с ним,
И
IF продукт P производится обоими брендами B1 и B2,
THEN, почему бы ему не предложить продукт P брендов B1 и B2 так, как он мог, в оригинальной 3-столбцовой таблице sbp (продавец, бренд, продукт) "который хорошо служил еще до того, как это новое" правило "вступило в силу?
Может кто-нибудь прояснить?