перебуває в ЗНФ, якщо зміна значення будь-якого його атрибута (крім
тих, що входять до первинного ключа) не призведе до необхідності зміни
інших полів.
Існує ще підсилена ЗНФ — нормальна форма Бойса - Кодда (БКНФ). БКНФ вивчає залежності ключових атрибутів від неключових; якщо
такі залежності існують, то їх потрібно вилучити.
Розглянемо приклад відношення АВТОМОБІЛЬ (модель автомобіля,
кількість циліндрів у двигуні, країна-виготовлювач). У цьому відношенні
існують такі залежності:
Отож, ключовий атрибут «модель автомобіля» залежить від неключового атрибута «країна-виготовлювач». Тому при зведенні до БКНФ початкове відношення буде розбито на такі відношення:
АВТОМОБІЛЬ (модель автомобіля, кількість циліндрів у двигуні);
ВИРОБНИК (країна-виготовлювач, модель автомобіля).
Відношення перебуває в БКНФ, якщо воно перебуває в ЗНФ і в ньому відсутні залежності ключів від неключових атрибутів. Відношення, яке з перебуває в БКНФ, завжди є відношенням у ЗНФ. Але, навпаки, відношення в ЗНФ не завжди можна привести до нормальної форми Бойса -Кодда, не втративши залежності між його атрибутами.
Розглянемо ще такий приклад. Нехай задано відношення К(місто, адреса, індекс), у якому є такі залежності:
Зведення відношення до ЗНФ дасть два відношення: R.1 (місто, адреса). R2 (адреса, індекс). Вони перебувають у ЗНФ, але не є відношеннями в НФБК, оскільки у відношенні R існує залежність індекс —> місто, тобто відношення в ЗНФ не завжди є відношенням у НФБК. Якщо ми зведемо це відношення до НФБК, то отримаємо відношення R1 (місто, адреса), R2 (індекс, місто), в яких будуть відображені не всі залежності початкового відношення. Так, не буде відображено залежності індекс —> адреса, а саме індекс позначає відділення зв'язку, що обслуговує адресатів якоїсь вулиці певного міста. Отож, зведення до НФБК може призвести до втрати важливих для початкового відношення залежностей, а об'єднання отриманих і результаті такої декомпозиції відношень не дасть початкового відношення Тому при зведенні до НФБК необхідно ретельно вивчати всі залежності г виконувати його лише тоді, коли виконується така вимога: «об'єднання без втрат».
Відношення перебуває в БКНФ, якщо для всіх нетривіальних залежностей Х —> Y у R, Х — надключ. Залежність Х —> XI є тривіальною, якщо, X) X. Надключ — це атрибут Х відношення R такий, що для кожного А в Ці Х —> А. Відношення в БКНФ завжди є відношенням у ЗНФ, але не завжди відношення в ЗНФ є відношенням у БКНФ.
Нормальна форма Бойса - Кодда має такі самі переваги, що й ЗНФ, тобто виключає можливість виникнення аномалій, пов'язаних з виконанням операцій поповнення, вилучення та заміни даних, а також усуває надлишковість даних.
На четвертому кроці нормалізації проводиться аналіз на присутність багатозначних залежностей у відношенні. Якщо вони є, виконують декомпозицію відношення. Багатозначна залежність є різновидом 1 функціональної залежності, їй відповідає співвідношення 1:Б між атрибутами. Атрибут А багатозначно визначає атрибут В у відношенні R (А, і В, С), якщо В залежить лише від А при будь-яких його 1 комбінаціях з іншими атрибутами відношення R. Графічно це позначають так: А —>> В.
Якщо залежність А -» В єдина у відношенні R, то відношення перебуває в ЗНФ.
Якщо у відношенні присутні А —» В і А -» С, то відношення потрібно розкласти на два інших відношення: R (А, В) і R (А, С).
Розглянемо приклад. Нехай задано відношення СПІВРОБІТНИК (табельний номер, державна нагорода, прізвище, ім'я та по батькові члена сім'ї, код родинних відносин).
У цьому відношенні виконуються багатозначні залежності:
табельний номер —» державна нагорода, табельний номер —» прізвище, ім'я та по батькові члена сім'ї. Для того щоб виключити надлишкове дублювання, початкове відношення необхідно розкласти на два відношення: ВИНАГОРОДИ (табельний номер, державна нагорода), СІМ'Я (табельний номер, ім'я та по батькові члена сім'ї, код родинних відносин).