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

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

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

Приклад[ред.ред. код]

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

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

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

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

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

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

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

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


На відміну, якщо типи вареників пропоновані рестораном іноді змінюються в залежності від районів доставки, вихідна таблиця буде задовільняти умовам 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 Multivalued Dependencies and a New Normal Form for Relational Databases // ACM Transactions on Database Systems. — 2 (September 1977) (1) С. 267. DOI:10.1145/320557.320571.
  2. Fagin, p. 268
  3. Wu Margaret S. The Practical Need for Fourth Normal Form // ACM SIGCSE Bulletin. — 24 (March 1992) (1) С. 19–23. DOI:10.1145/135250.134515.