Из Википедии, бесплатной энциклопедии
  (Перенаправлен из 4NF )
Перейти к навигации Перейти к поиску

Четвертая нормальная форма ( 4NF ) - это нормальная форма, используемая при нормализации базы данных . Представленная Рональдом Феджином в 1977 году, 4NF - это следующий уровень нормализации после нормальной формы Бойса – Кодда (BCNF). В то время как вторая , третья и нормальные формы Бойса – Кодда связаны с функциональными зависимостями , 4NF занимается более общим типом зависимости, известным как многозначная зависимость . Таблица в 4НФЕ тогда и только тогда , для каждого из своих нетривиальных многозначных зависимостей X Y , X является суперключом, то есть X является либо ключом-кандидатом, либо его надмножеством. [1]

Многозначные зависимости [ править ]

Если заголовки столбцов в таблице реляционной базы данных разделены на три непересекающиеся группы X , Y и Z , то в контексте конкретной строки мы можем ссылаться на данные под каждой группой заголовков как x , y и z. соответственно. Многозначное зависимость X Y означает , что если мы выберем любое х на самом деле происходит в таблице (этот выбор х с ), а также составить список всех х с уг комбинации , которые происходят в таблице, мы обнаружим , что х с связано с тем же y записей независимо от z . Таким образом, по сути, наличие z не дает никакой полезной информации для ограничения возможных значений y .

Тривиальная многозначная зависимость Х Y является одним где либо Y представляет собой подмножество X , или Х и Y вместе образуют весь набор атрибутов отношения.

Функциональная зависимость является частным случаем многозначной зависимости. В функциональной зависимости XY каждый x определяет ровно один y , а не более одного.

Пример [ править ]

Рассмотрим следующий пример:

Каждая строка указывает на то, что данный ресторан может доставить определенное разнообразие пиццы в определенное место.

Таблица не имеет неключевых атрибутов, потому что ее единственный ключ - {Ресторан, Разнообразие пиццы, Зона доставки}. Следовательно, он соответствует всем нормальным формам вплоть до BCNF. Если мы предположим, однако, что на разновидности пиццы, предлагаемые рестораном, не влияет зона доставки (т. Е. Ресторан предлагает все разновидности пиццы, которые он готовит, во все области, которые он поставляет), то он не соответствует 4NF. Проблема в том, что в таблице есть две нетривиальные многозначные зависимости от атрибута {Restaurant} (который не является суперключом). Зависимости:

  • {Restaurant} {Pizza Variety}
  • {Ресторан} {Зона доставки}

Эти нетривиальные многозначные зависимости от не-суперключей отражают тот факт, что разновидности пиццы, предлагаемые рестораном, не зависят от областей, в которые ресторан доставляет. Такое положение дел приводит к избыточности в таблице: например, нам трижды говорят, что A1 Pizza предлагает фаршированную корочку, и если A1 Pizza начинает производить пиццу с сырной корочкой, нам нужно будет добавить несколько строк, по одной для каждой из A1 Pizza зоны доставки. Более того, ничто не мешает нам сделать это неправильно: мы можем добавить строки Cheese Crust для всех областей доставки A1 Pizza, кроме одной, тем самым не соблюдая многозначную зависимость {Restaurant} {Pizza Variety}.

Чтобы исключить возможность этих аномалий, мы должны поместить факты о предлагаемых разновидностях в другую таблицу, а не факты о регионах поставки, в результате чего получим две таблицы, которые обе находятся в 4NF:

Напротив, если бы разновидности пиццы, предлагаемые рестораном, иногда действительно изменялись от одной области доставки к другой, исходная таблица из трех столбцов удовлетворяла бы 4NF.

Рональд Феджин продемонстрировал, что всегда можно достичь 4НФ. [2] Теорема Риссанена также применима к многозначным зависимостям .

4НФ на практике [ править ]

В статье 1992 года Маргарет С. Ву отмечается, что обучение нормализации базы данных обычно не дотягивает до 4NF, возможно, из-за убеждения, что таблицы, нарушающие 4NF (но отвечающие всем более низким нормальным формам), редко встречаются в бизнес-приложениях. Однако это мнение может быть неточным. Ву сообщает, что в исследовании сорока баз данных организаций более 20% содержали одну или несколько таблиц, которые нарушали 4NF, но соответствовали всем более низким нормальным формам. [3]

Нормализация за пределами 4NF [ править ]

Только в редких случаях таблица 4NF не соответствует высшей нормальной форме 5NF . Это ситуации, в которых сложное реальное ограничение, управляющее допустимыми комбинациями значений атрибутов в таблице 4NF, не подразумевается в структуре этой таблицы.

См. Также [ править ]


Ссылки [ править ]

  1. ^ "Схема отношения R * находится в четвертой нормальной форме (4NF), если всякий раз, когда нетривиальная многозначная зависимость XY выполняется для R *, то же самое происходит и с функциональной зависимостью X → A для каждого имени столбца A в R *. Интуитивно все зависимости являются результатом ключей ". Феджин, Рональд (сентябрь 1977 г.). «Многозначные зависимости и новая нормальная форма для реляционных баз данных» (PDF) . ACM-транзакции в системах баз данных . 2 (1): 262–278. CiteSeerX 10.1.1.69.1872 . DOI : 10.1145 / 320557.320571 . Архивировано из оригинального (PDF) 29 ноября 2007 года . Проверено 26 апреля 2008 .  
  2. ^ Fagin, стр. 268
  3. ^ Ву, Маргарет С. (март 1992 г.). «Практическая потребность в четвертой нормальной форме». Бюллетень ACM SIGCSE . 24 (1): 19–23. DOI : 10.1145 / 135250.134515 .

Дальнейшее чтение [ править ]

  • Дата, CJ (1999), Введение в системы баз данных (8-е изд.). Эддисон-Уэсли Лонгман. ISBN 0-321-19784-4 . 
  • Кент, В. (1983) Простое руководство по пяти нормальным формам в теории реляционных баз данных , Связь ACM, т. 26. С. 120–125.