Я изо всех сил пытаюсь понять 4NF, 5NF и их разницу.
Вот способ, которым я бы описал 4 / 5NF (или, как я бы описал шаги для его достижения) тому, кто не 'я знаюЯ утверждаю это, потому что это покажет то, что я действительно понял.
Как правило, отношение сущностей N: N должно быть реализовано с помощью таблицы соединений для их возможных комбинаций.Если есть 3 или более сущностей, связанных с отношениями N: N, следует внимательно рассмотреть:
- Более общее (включая) решение будет заключаться в реализации таблицы соединения, содержащей все сущности в виде полей, и всеих комбинации в виде значений (строк)
- Однако, если отношения этих сущностей на самом деле не для случая полного набора, а скорее (декартово) произведение (некоторых из) их двоичного N:N отношений, а затем тщательно продумайте минимальное количество необходимых таблиц из двух полей.
- Обобщая 2, всегда предпочитайте (если это правильно, конечно) иметь соединяемые таблицы с как можно меньшим количеством полей.И, конечно же, не создавайте таблицу соединения, если она не используется.
- Полезный совет, позволяющий различить вышесказанное, - когда вставка завершена, если ваше сердце (!) Скажет, что вы делаете избыточностьили недействительные вещи, тогда вы должны выбрать один из более поздних методов.
E1) Пример страницы Википедии на 4NF: https://en.wikipedia.org/wiki/Fourth_normal_form
У нас есть сущности Ресторан, Разнообразие пиццыи зона доставки.Мы могли бы реализовать их отношения «многие ко многим» с помощью одной таблицы соединений, включая все три.Однако, если кто-то думает о данных правильно, эти триплеты являются продуктом только двух отношений N: N: Ресторан: Пицца и Ресторан: Зона доставки.Если бы ресторан "A1 Pizza" решил включить в свой репертуар сорт "Thin Crust" Pizza, то мне пришлось бы либо вставить один ряд с одним и тем же разнообразием ресторанов / пицц во все районы доставки "A1 Pizza", в которых было бы 4.redunding, или только вставка для определенной области доставки, которая будет выглядеть 4.invalid, потому что ни один магазин не будет предлагать меньше разнообразия для области доставки (или, по крайней мере, скажем, так сказано в нашей спецификации).
E2) Пример страницы Википедии на 5NF: https://en.wikipedia.org/wiki/Fifth_normal_form
У нас есть юридические лица Продавец, Бренд и Тип.Мы могли бы реализовать их отношения «многие ко многим» с помощью одной таблицы соединений, включая все три.Однако из-за части «применяется следующее правило» триплеты на самом деле являются (декартовым) произведением доступных соотношений 3 N: N, и поэтому правильный метод состоит в том, чтобы иметь три таблицы соединений для него.«Обратите внимание, как эта настройка помогает устранить избыточность».часть очень похожа на мой 4-й пункт.
Этот случай становится еще более запутанным из-за того факта, что, хотя статья гласит «Также обратите внимание, что таблица в 4NF», правда в том, что если таблица имелавсе строки, которые должны быть выполнены, чтобы охватить «следующее правило», тогда оно не будет охватывать 4NF!Правильно?
Итак ... В чем разница между E1 и E2, которая делает один из них 4NF, а другой - примером 5NF?