Топ питань
Часова шкала
Чат
Перспективи

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

З Вікіпедії, вільної енциклопедії

Remove ads

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

Remove ads

Приклад

Узагальнити
Перспектива

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

Більше інформації Корчма, Тип вареників ...

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

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

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

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

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

Більше інформації Корчма, Тип вареників ...
Більше інформації Корчма, Район доставки ...

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

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

Remove ads

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

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

Remove ads

Примітки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads