Ноу Інти, лекція, нормальні форми відносин

Нормальна форма Бойса-Кодда

3НФ спрощує вирішення проблем контролю надмірності даних, інтерпретації нуль-значень, контролю за операціями модифікації даних, тільки якщо в стосунках відсутні будь-які інші ФЗ, зокрема зворотні ФЗ неключевого атрибута на один з атрибутів складеного первинного ключа або багатозначні ФЗ. В іншому випадку перераховані вище проблеми залишаються невирішеними. Для усунення таких проблем, пов'язаних з існуванням зворотних ФЗ неключових атрибутів на частину складного ключа. була запропонована посилена 3НФ або НФ Бойса-Кодда.

Відношення знаходиться в нормальній формі Бойса-Кодда (НФБК), якщо воно знаходиться в 3НФ, і в ньому були відсутні залежності ключових атрибутів від неключових атрибутів. Іншими словами, НФБК допускає наявність лише таких нетривіальних ФЗ, в яких ключ визначає один або більше інших атрибутів:, де включає деякий ключ.

Зауваження. На відміну від 3НФ, вихідні відносини не завжди можуть бути приведені в НФБК.

Продовжимо розгляд прикладів з області судноплавства.

Припустимо, що екіпаж судна розділений на команди, кожна з яких відповідає за різні види робіт. Члени екіпажу можуть входити в різні команди, але в кожну команду входить тільки один керівник. Команда може мати кілька керівників. Кожен член екіпажу може керувати тільки однією командою. Ставлення задається таблицею 6.1 нижче:

Таблиця 6.1. ставлення КОМАНДА

Відношення знаходиться в 3НФ, проте містить аномалію видалення. Якщо Петрова видалити з команди спостереження, то буде втрачена інформація про те, що Леонтьєв є керівником команди спостереження, і при призначенні нового члена екіпажу в команду спостереження не буде відомо, що у неї є ще один керівник, крім Прохорова.

Зауважимо, що в попередніх випадках розбиття відносин відбувалося без створення надмірності даних через зворотній залежності атрибута на частину ключа. Приведення відношення до НФБК полягає в створенні додаткового відносини, що містить відомості про керівників команд (таблиця 6.2).

Таблиця 6.2. ставлення РУКОВОДІТЕЛЬ_КОМАНДИ

Результат приведення відносини КОМАНДА до НФБК представлений на рис. 6.5.


Мал. 6.5. Ставлення в НФБК

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

Відношення знаходиться в четвертій нормальній формі (4НФ). якщо воно знаходиться в 3НФ або НФБК і всі незалежні багатозначні ФЗ рознесені в окремі відносини з одним і тим же ключем. Іншими словами, 4НФ застосовується при наявності в відношенні більш ніж однієї багатозначної ФЗ і вимагає, щоб відношення не містило незалежних багатозначних ФЗ.

Розглянемо відношення. що містить відомості про кораблях (Ship), що здійснюються ними рейсах (Voyage) і капітанів (Captain) (задано таблицею 6.3). Ставлення представлено в таблиці нижче і на рис. 6.6.

Таблиця 6.3. ставлення КАПІТАН_КОРАБЛЬ_РЕЙС


Мал. 6.6. Ставлення з багатозначними залежностями

Відношення знаходиться в НФБК і містить тільки багатозначні ФЗ. Однак має місце аномалія видалення. якщо капітан Петров піде у відставку і все кортежі про нього будуть видалені, то будуть втрачені відомості про те, що корабель Жучка здійснює рейси Харків - Марсель. Якщо додати новий рейс, то, можливо, доведеться ввести декілька кортежів в наше ставлення.

Приведення відношення до 4НФ полягає у виділенні для кожної багатозначною ФЗ свого ставлення, як показано на рис. 6.7.


Мал. 6.7. Ставлення в 4НФ

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