Пятая нормальная форма
Пятая нормальная форма ( 5NF ), также известная как нормальная форма проекции-объединения ( PJ/NF ), представляет собой уровень нормализации базы данных , предназначенный для устранения избыточности в реляционных базах данных, записывающих многозначные факты, путем изоляции семантически связанных множественных отношений. находится Говорят , что таблица в 5NF тогда и только тогда, когда каждая нетривиальная зависимость соединения в этой таблице подразумевается ключами -кандидатами . Это окончательная нормальная форма с точки зрения устранения избыточности.
6NF также существует, но его целью не является устранение избыточности , и поэтому он применяется только в нескольких хранилищах данных , где может быть полезно сделать таблицы несводимыми.
Зависимость объединения *{A, B,... Z} от R подразумевается ключом(ами)-кандидатом R тогда и только тогда, когда каждый из A, B,..., Z является суперключом для R. [1]
Пятая нормальная форма была впервые описана Рональдом Феджином в его докладе на конференции 1979 года «Нормальные формы и операторы реляционных баз данных» . [2]
Пример
[ редактировать ]Рассмотрим следующий пример:
Коммивояжер | Бренд | Тип продукта |
---|---|---|
Джек Шнайдер | Акме | Пылесос |
Джек Шнайдер | Акме | Хлебница |
Мэри Джонс | Крепкий | Ножницы для обрезки |
Мэри Джонс | Крепкий | Пылесос |
Мэри Джонс | Крепкий | Хлебница |
Мэри Джонс | Крепкий | Подставка для зонтов |
Луи Фергюсон | Крепкий | Пылесос |
Луи Фергюсон | Крепкий | Телескоп |
Луи Фергюсон | Акме | Пылесос |
Луи Фергюсон | Акме | Лавовая лампа |
Луи Фергюсон | Облако | Вешалка для галстуков |
Предикат таблицы: продукты типа, обозначенного типом продукта , произведенные маркой, обозначенной брендом , доступны у коммивояжера, назначенного коммивояжером .
Первичный ключ представляет собой совокупность всех трех столбцов. Также обратите внимание, что таблица находится в 4NF , поскольку в ней нет многозначных зависимостей ( зависимостей двухчастного соединения ): ни один столбец (который сам по себе не является потенциальным ключом или суперключом) не является определяющим для двух других столбцов.
В отсутствие каких-либо правил, ограничивающих допустимые возможные комбинации коммивояжера, бренда и типа продукта, приведенная выше таблица из трех атрибутов необходима для правильного моделирования ситуации.
Предположим, однако, что применяется следующее правило: коммивояжер имеет в своем репертуаре определенные бренды и определенные типы продуктов. Если в их репертуаре присутствуют бренды B1 и B2, а в их репертуаре присутствует тип продукта P, то (предполагая, что бренд B1 и бренд B2 оба производят продукт типа P), коммивояжер должен предлагать продукты типа P, произведенные брендом B1. и марки B2.
В этом случае можно разделить таблицу на три:
Коммивояжер | Тип продукта |
---|---|
Джек Шнайдер | Пылесос |
Джек Шнайдер | Хлебница |
Мэри Джонс | Ножницы для обрезки |
Мэри Джонс | Пылесос |
Мэри Джонс | Хлебница |
Мэри Джонс | Подставка для зонтов |
Луи Фергюсон | Телескоп |
Луи Фергюсон | Пылесос |
Луи Фергюсон | Лавовая лампа |
Луи Фергюсон | Вешалка для галстуков |
Коммивояжер | Бренд |
---|---|
Джек Шнайдер | Акме |
Мэри Джонс | Крепкий |
Луи Фергюсон | Крепкий |
Луи Фергюсон | Акме |
Луи Фергюсон | Облако |
Бренд | Тип продукта |
---|---|
Акме | Пылесос |
Акме | Хлебница |
Акме | Лавовая лампа |
Крепкий | Ножницы для обрезки |
Крепкий | Пылесос |
Крепкий | Хлебница |
Крепкий | Подставка для зонтов |
Крепкий | Телескоп |
Облако | Вешалка для галстуков |
В этом случае Луи Фергюсон не может отказаться предлагать пылесосы производства Acme (при условии, что Acme производит пылесосы), если он продает что-либо еще, произведенное Acme (лавовая лампа), а также продает пылесосы любого другого бренда (Robusto ).
Обратите внимание, как эта настройка помогает устранить избыточность. Предположим, что Джек Шнайдер начинает продавать продукцию Robusto — хлебницы и пылесосы. В предыдущей настройке нам пришлось бы добавить две новые записи, по одной для каждого типа продукта (<Джек Шнайдер, Робусто, хлебницы>, <Джек Шнайдер, Робусто, пылесосы>). При новой настройке нам нужно добавить только одну запись (<Джек Шнайдер, Робусто>) в «Бренды коммивояжера».
Использование
[ редактировать ]Лишь в редких случаях таблица 4NF не соответствует 5NF; например, когда декомпозированные таблицы являются циклическими . Это ситуации, в которых сложное реальное ограничение, определяющее допустимые комбинации значений атрибутов в таблице 4NF, не является неявным в структуре этой таблицы. Если такая таблица не нормализована до 5NF, бремя поддержания логической согласованности данных в таблице должно частично нести приложение, ответственное за вставку, удаление и обновление ее ; и существует повышенный риск того, что данные в таблице станут противоречивыми. Напротив, конструкция 5NF исключает возможность таких несоответствий.
Таблица T находится в пятой нормальной форме (5NF) или нормальной форме проекционного соединения (PJ/NF), если она не может быть разложена без потерь на любое количество меньших таблиц. Случай, когда все меньшие таблицы после декомпозиции имеют тот же ключ-кандидат, что и таблица T, исключается.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Анализ нормальных форм для якорных таблиц
- ^ С. Кришна (1991). Введение в базы данных и системы баз знаний . Всемирная научная. ISBN 9810206208 .
Пятая нормальная форма была введена Фейгином.
Дальнейшее чтение
[ редактировать ]- Кент, В. (1983) Простое руководство по пяти нормальным формам в теории реляционных баз данных , Communications of the ACM, vol. 26, стр. 120–125.
- Дэйт, С.Дж., Дарвен, Х., и Паскаль, Ф. Разоблачение баз данных .
- Дарвен, Х.; Дата, СиДжей; Феджин, Р. (2012). «Обычная форма предотвращения избыточных кортежей в реляционных базах данных». Материалы 15-й Международной конференции по теории баз данных - ICDT '12 (PDF) . стр. 114–126. дои : 10.1145/2274576.2274589 . ISBN 9781450307918 . S2CID 207195585 . Архивировано из оригинала (PDF) 6 марта 2016 г. Проверено 25 октября 2017 г.