Бази даних. Нормалізація. Друга нормальна форма 2НФ

Нормалізація. Друга нормальна форма 2НФ

Перед вивченням даної теми рекомендується ознайомитись з наступними темами:


Зміст


Пошук на інших ресурсах:




1. Друга нормальна форма. Визначення

Таблиця (відношення) відповідає другій нормальній формі, якщо:

  • таблиця приведена до першої нормальної форми 1НФ;
  • у таблиці відсутні часткові залежності. Це означає, що кожен неключовий атрибут (поле) таблиці неприводимо залежить від первинного ключа таблиці (ключа відношення).

Друга нормальна форма має актуальність тільки для тих відношень, в яких є складені (композитні) ключі.

 

2. Способи приведення таблиці до другої нормальної форми 2НФ

Як відомо, первинний ключ може бути простий або складений. Якщо ключ складений (композитний), то буває важко уникнути часткових залежностей. Одне з полів може функціонально залежати від частини первинного ключа (залежати від деяких атрибутів ключа).

Якщо таблиця має складений (композитний) ключ і містить часткові залежності, то можна використати наступні способи приведення:

  • ввести додаткове поле-лічильник (counter), яке буде первинним ключем. Це поле містить унікальні значення, які ідентифікують кожен рядок таблиці. Оскільки первинний ключ не є складеним, то немає і часткових залежностей. Після вводу додаткового поля-лічильника між цим полем-лічильником і будь-яким іншим полем таблиці встановлюється однозначна відповідність;
  • розірвати вихідну таблицю на декілька таблиць таким чином, щоб ключові атрибути (ключові поля) розійшлись по різних відношеннях. Цей спосіб також може бути використаний у вищих нормальних формах.

 

3. Приклад таблиці у другій нормальній формі. Залежність неключового атрибуту від складеного ключа

Демонструється залежність атрибуту від складеного (композитного) ключа. На рисунку 1 зображена таблиця випуску різних моделей автомобілів у різні роки.

Ключем відношення є атрибути МаркаМодельРік випуску. Атрибут “Кількість випущених моделей” неприводимо залежить від ключа.

Бази даних. Функціональна залежність атрибуту від ключа. Таблиця у другій нормальній формі 2НФ

Рисунок 1. Функціональна залежність атрибуту “Кількість випущених моделей” від ключа. Таблиця у другій нормальній формі 2НФ

Вищенаведена таблиця (рисунок 1) знаходиться у другій нормальній формі з наступних причин:

  • таблиця знаходиться у першій нормальній формі 1НФ;
  • неключовий атрибут (Кількість випущених моделей) неприводимо залежить від первинного ключа (МаркаМодель – “Рік випуску“);
  • у таблиці відсутні часткові залежності.

 

4. Приклади приведення таблиці до другої нормальної форми шляхом додавання поля-лічильника

Приклад 1. Задано таблицю обліку співробітників, яка має наступну структуру.

Таблиця обліку співробітників. Структура

Ключем відношення обрано атрибути НомерПосада (рисунок 2).

Бази даних. Друга нормальна форма 2 НФ. Часткова залежність неключового атрибуту від ключа відношення

Рисунок 2. Часткова залежність неключового атрибуту Оклад від ключа відношення НомерПосада

Від займаної посади залежить розмір посадового окладу працівника. Отже, між частиною ключа відношення (атрибут Посада) та неключовим атрибутом Оклад існує функціональна залежність. Це є часткова залежність. Тому таблиця не знаходиться у другій нормальній формі.

Щоб привести таблицю до другої нормальної форми 2НФ потрібно ввести додаткове ключове поле як показано на рисунку 3.

Бази даних. Друга нормальна форма 2НФ. Додавання нового поля-лічильника. Усунення часткової залежності

Рисунок 3. Додавання нового поля ID, яке є ключем відношення. Усунення часткової залежності

Після введення додаткового поля, часткові залежності усунуті. Таблиця приведена до другої нормальної форми 2НФ.

Приклад 2. Нехай задано таблицю обліку прочитаних занять у навчальному закладі.

Таблиця обліку занять в НЗ

У таблиці ключем відношення обрано атрибути “Номер аудиторії” – “Номер заняття” – “Дата” – “Викладач“. На рисунку 4 показано цю залежність.

Бази даних. Часткова залежність неключового атрибуту від ключа відношення

Рисунок 4. Часткова залежність неключового атрибуту Дисципліна від ключа відношення

Атрибут Дисципліна залежний від атрибуту Викладач. Це пояснюється тим, що за конкретним викладачем закріплено конкретну дисципліну. Оскільки, атрибут Викладач є частиною первинного ключа, то атрибут Дисципліна залежний від частини первинного ключа. Отже, існує часткова залежність між первинним ключем і атрибутом Дисципліна.

Щоб привести таблицю до другої нормальної форми 2НФ потрібно додати додаткове поле-лічильник і зробити його ключовим. Після внесених змін таблиця має вигляд як показано на рисунку 5.

Бази даних. Нормалізація. Таблиця у другій нормальній формі 2НФ

Рисунок 5. Таблиця у другій нормальній формі 2НФ

 


Близькі за змістом теми