П’ята нормальна форма

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук

П'ята нормальна форма (5NF) - одна з можливих нормальних форм таблиці реляційної бази даних.


Визначення

Відношення знаходиться в п'ятій нормальній формі (інакше - в проекційно-сполучній нормальній формі) тоді і тільки тоді, коли кожна нетривіальна залежність з'єднання в ньому визначається потенційним ключем (ключами) цих відносини. При цьому:

  • Залежність з'єднання *{A, B ,..., Z} є тривіальним тоді і тільки тоді, коли по крайній мірі одна з підмножин A, B ,..., Z множина атрибутів є множиною всіх атрибутів відносини;
  • Залежність з'єднання *{A, B ,..., Z} визначається потенційним ключем (ключами) тоді і тільки тоді, коли кожна з підмножин A, B ,..., Z множина атрибутів є суперключем відносин.

Дуже рідко таблиця, яка перебуває у 4NF, не відповідає 5NF. Це ті ситуації, в яких реальні правила, що обмежують допустимі комбінації атрибутів, ніяк не виражені в структурі таблиці (наприклад, правила певного бізнесу). У такому випадку, якщо таблиця не приведена до 5NF, тягар забезпечення логічної цілісності даних частково наляже на додаток, що відповідає за додавання, видалення і зміни таблиці. У цьому випадку існує ризик виникнення аномалій даних. П'ята нормальна форма виключає виникнення таких аномалій.

Приклад

Припустимо, що продавець може торгувати продукцією кількох фірм, асортимент у фірм різний, причому продавець може пропонувати тільки частину товарів конкретної фірми. Відношення {Продавець, Фірма, Вид товару} відповідає 4NF, проте не відображає обмеження, пов'язаного з асортиментом продукції фірм. Може виникнути кортеж, в якому фірмі буде відповідати вид товару, який вона не випускає.

У даному випадку (для приведення до 5NF) ставлення має бути розбите на три: {Продавець, Фірма}, {Фірма, Вид товару}, {Продавець, Вид товару}.

Див. також

Нормальна форма
Перша нормальна форма
Друга нормальна форма
Третя нормальна форма
Четверта нормальна форма
Нормальна форма Бойса-Кодда
Відношення. Види відношень

Джерела інформації

П’ята нормальна форма
Нормалізація баз даних