Четверта нормальна форма

Четверта нормальна форма (4НФ) нормальна форма застосовна в нормалізації баз даних. Введена Рональдом Фейджином в 1977. 4НФ — наступний рівень нормалізації після нормальної форми Бойса — Кодда. Тоді як друга, третя, і нормальна форма Бойса — Кодда опікуються функціональною залежністю, 4НФ опікується загальнішим типом залежності, відомим як багатозначна залежність. Таблиця перебуває в 4НФ тоді й лише тоді, коли для кожної її багатозначної залежності X →→ Y, Xсуперключ, тобто X або потенційний ключ, або його надмножина.[1]

Приклад

Розглянемо такий приклад:

Райони доставки вареників
КорчмаТип варениківРайон доставки
Тарас БульбаІз сиромМолдаванка
Тарас БульбаІз сиромТаїрово
Тарас БульбаІз сиромЦентр
Тарас БульбаЗ вишнямиМолдаванка
Тарас БульбаЗ вишнямиТаїрово
Тарас БульбаЗ вишнямиЦентр
За рогомЗ грибамиЦентр
За рогомЗ вишнямиЦентр
Тяжкі пропойціІз сиромМолдаванка
Тяжкі пропойціІз сиромТаїрово
Тяжкі пропойціЗ грибамиМолдаванка
Тяжкі пропойціЗ грибамиТаїрово

Кожний рядок показує куди корчма може доставити певний тип вареників.

В таблиці відсутні неключові атрибути, бо єдиний ключ це {Корчма, Тип вареників, Район доставки}. Тож таблиця знаходиться в усіх нормальних формах до НФБК. Однак, якщо ми припустимо, що типи вареників пропоновані рестораном не залежать від району доставки, тоді таблиця не знаходиться в 4НФ. Проблема в тому, що таблиця має дві нетривіальні багатозначні залежності від атрибута «Корчма» (який не є суперключем). Залежності такі:

  • {Корчма} →→ {Тип вареників}
  • {Корчма} →→ {Район доставки}

Ці нетривіальні багатозначні залежності на неключовому атрибуті відображають факт незалежності типів вареників, що пропонує корчма від районів в яких здійснюється доставка цією корчмою. Це призводить до надлишковості в таблиці: наприклад, ми тричі кажемо, що корчма «Тарас Бульба» пропонує варениками з вишнями, і якщо корчма «Тарас Бульба» почне пропонувати вареники з квасолею тоді нам буде необхідно додати декілька рядків, по одному для кожного району доставки. Навіть більше, нічого не заважає нам зробити це невірно: ми можемо додати рядки вареників з квасолею для всіх районів крім одного, звідси помилка багатозначної залежності {Корчма} →→ {Тип вареників}.

Для унеможливлення цих аномалій, ми маємо розмістити дані про типи пропонованих вареників в різні таблиці із даними про райони доставки, створивши дві таблиці, обидві в 4НФ:

Різновиди в ресторанах
КорчмаТип вареників
Тарас БульбаІз сиром
Тарас БульбаЗ вишнями
За рогомЗ грибами
За рогомЗ вишнями
Тяжкі пропойціІз сиром
Тяжкі пропойціЗ грибами
Райони доставки ресторанів
КорчмаРайон доставки
Тарас БульбаМолдаванка
Тарас БульбаТаїрово
Тарас БульбаЦентр
За рогомЦентр
Тяжкі пропойціМолдаванка
Тяжкі пропойціТаїрово

На відміну від випадку, коли типи вареників пропоновані рестораном змінюються залежно від районів доставки, вихідна таблиця буде задовольняти умовам 4НФ.

Рональд Фейджин показав, що досягти виконання 4НФ можливо завжди.[2] Теорема Ріссанена (про незалежність проекцій) теж застосовна до багатозначних залежностей.

4НФ в практиці

Стаття Маргарет Ву 1992 зауважує, що навчання з нормалізації баз даних зазвичай завершують безпосередньо перед 4НФ, можливо, через віру в те, що таблиці не в 4НФ (але такі, що знаходяться в попередніх) рідко зустрічаються в бізнес застосунках. А втім, ця віра може бути не точною. Ву звітує, що при вивченні сорока баз даних організацій, понад 20% містили одну або більше таблиць, що порушували 4НФ і при цьому відповідали умовам усіх нижніх форм.[3]

Примітки

  1. "A relation schema R* is in fourth normal form (4NF) if, whenever a nontrivial multivalued dependency X →→ Y holds for R*, then so does the functional dependency X → A for every column name A of R*. Intuitively all dependencies are the result of keys." Fagin, Ronald (September 1977). Multivalued Dependencies and a New Normal Form for Relational Databases. ACM Transactions on Database Systems 2 (1): 267. doi:10.1145/320557.320571. Архів оригіналу за 29 листопада 2007. Процитовано 1 квітня 2011.
  2. Fagin, p. 268
  3. Wu, Margaret S. (March 1992). The Practical Need for Fourth Normal Form. ACM SIGCSE Bulletin 24 (1): 19–23. doi:10.1145/135250.134515.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.