Пятая нормальная форма - Fifth normal form
Пятая нормальная форма (5NF), также известный как обычная форма присоединения к проекту (PJ / NF), является уровнем нормализация базы данных разработан для уменьшения избыточности в реляционных базах данных, записывающих многозначные факты путем изолирования семантически связанные множественные отношения. А стол считается, что находится в 5NF если и только если каждый нетривиальный присоединиться к зависимости в этой таблице подразумевается ключи-кандидаты.
Зависимость соединения * {A, B,… Z} от R подразумевается кандидатом (ключами) R если и только если каждый из A, B,…, Z является суперключ для Р.[1]
Пятая нормальная форма была впервые описана Рональд Феджин в своем докладе на конференции 1979 г. Нормальные формы и операторы реляционной базы данных.[2]
Пример
Рассмотрим следующий пример:
Коммивояжер | Марка | Тип продукта |
---|---|---|
Джек Шнайдер | Acme | Пылесос |
Джек Шнайдер | Acme | Хлебница |
Мэри Джонс | Робусто | Секаторы |
Мэри Джонс | Робусто | Пылесос |
Мэри Джонс | Робусто | Хлебница |
Мэри Джонс | Робусто | Стойка для зонтов |
Луи Фергюсон | Робусто | Пылесос |
Луи Фергюсон | Робусто | Телескоп |
Луи Фергюсон | Acme | Пылесос |
Луи Фергюсон | Acme | Лавовая лампа |
Луи Фергюсон | Нимбус | Вешалка для галстуков |
Предикат таблицы: Продукты типа, обозначенного Тип продукта, произведенный брендом, обозначенным Марка, можно получить у коммивояжера, назначенного Коммивояжер.
Первичный ключ - это совокупность всех трех столбцов. Также обратите внимание, что таблица находится в 4НФ, так как нет многозначные зависимости (Зависимости соединения двух частей ) в таблице: ни один столбец (который сам по себе не является ключом-кандидатом или суперключом) не является определяющим для двух других столбцов.
В отсутствие каких-либо правил, ограничивающих допустимые возможные комбинации Коммивояжера, Бренда и Типа продукта, для правильного моделирования ситуации необходима приведенная выше таблица с тремя атрибутами.
Однако предположим, что применяется следующее правило: В репертуаре коммивояжера есть определенные бренды и определенные типы продуктов. Если бренд B1 и бренд B2 входят в их репертуар, а тип продукта P находится в их репертуаре, то (при условии, что бренд B1 и бренд B2 оба составляют продукт типа P), коммивояжер должен предлагать продукты типа продукта P, произведенные брендом B1. и произведенные торговой маркой B2.
В этом случае можно разделить таблицу на три части:
Коммивояжер | Тип продукта |
---|---|
Джек Шнайдер | Пылесос |
Джек Шнайдер | Хлебница |
Мэри Джонс | Секаторы |
Мэри Джонс | Пылесос |
Мэри Джонс | Хлебница |
Мэри Джонс | Стойка для зонтов |
Луи Фергюсон | Телескоп |
Луи Фергюсон | Пылесос |
Луи Фергюсон | Лавовая лампа |
Луи Фергюсон | Вешалка для галстуков |
Коммивояжер | Марка |
---|---|
Джек Шнайдер | Acme |
Мэри Джонс | Робусто |
Луи Фергюсон | Робусто |
Луи Фергюсон | Acme |
Луи Фергюсон | Нимбус |
Марка | Тип продукта |
---|---|
Acme | Пылесос |
Acme | Хлебница |
Acme | Лавовая лампа |
Робусто | Секаторы |
Робусто | Пылесос |
Робусто | Хлебница |
Робусто | Стойка для зонтов |
Робусто | Телескоп |
Нимбус | Вешалка для галстуков |
В этом случае Луи Фергюсон не может отказаться предлагать пылесосы, произведенные ACME (при условии, что ACME производит пылесосы), если он продает что-нибудь еще, произведенное Acme (лавовая лампа), а также он продает пылесосы, произведенные любым другим брендом (Robusto ).
Обратите внимание, как эта настройка помогает устранить избыточность. Предположим, Джек Шнайдер начинает продавать продукты Robusto - Хлебницы и пылесосы. В предыдущей настройке нам пришлось бы добавить две новые записи по одной для каждого типа продукта (<Джек Шнайдер, Робусто, Хлебницы>, <Джек Шнайдер, Робусто, Пылесосы>). В новой настройке нам нужно добавить только одну запись (<Джек Шнайдер, Робусто>) в «Бренды от коммивояжера».
использование
Лишь в редких случаях 4NF таблица не соответствует 5NF. Это ситуации, в которых сложное реальное ограничение, управляющее допустимыми комбинациями значений атрибутов в таблице 4NF, не подразумевается в структуре этой таблицы. Если такая таблица не нормализована до 5NF, бремя поддержания логической непротиворечивости данных в таблице должно частично нести приложение, ответственное за вставки, удаления и обновления в нее; и существует повышенный риск того, что данные в таблице станут несовместимыми. Напротив, конструкция 5NF исключает возможность таких несоответствий.
Таблица T находится в пятой нормальной форме (5NF) или в нормальной форме Project-Join (PJNF), если она не может иметь декомпозицию без потерь на любое количество меньших таблиц. Случай, когда все меньшие таблицы после декомпозиции имеют тот же ключ-кандидат, что и таблица T, исключается.
Смотрите также
Рекомендации
- ^ Анализ нормальных форм для якорных таблиц
- ^ С. Кришна (1991). Введение в базы данных и системы баз знаний. ISBN 9810206208.
Пятая нормальная форма была введена Феджином
дальнейшее чтение
- Кент, В. (1983) Простое руководство по пяти нормальным формам в теории реляционных баз данных, Сообщения ACM, т. 26. С. 120–125.
- Дэйт, С.Дж., Дарвен, Х., Паскаль, Ф. Разоблачение базы данных
- Darwen, H .; Date, C.J .; Фэгин, Р. (2012). «Обычная форма для предотвращения избыточных кортежей в реляционных базах данных». Материалы 15-й Международной конференции по теории баз данных - ICDT '12 (PDF). С. 114–126. Дои:10.1145/2274576.2274589. ISBN 9781450307918.