Пятая нормальная форма - 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, исключается.

Смотрите также

Рекомендации

  1. ^ Анализ нормальных форм для якорных таблиц
  2. ^ С. Кришна (1991). Введение в базы данных и системы баз знаний. ISBN  9810206208. Пятая нормальная форма была введена Феджином

дальнейшее чтение