Нормалізація. Друга нормальна форма 2НФ
Перед вивченням даної теми рекомендується ознайомитись з наступними темами:
- Перша нормальна форма (1НФ). Приведення таблиць до першої нормальної форми. Приклади
- Функціональні залежності. Побудова схем функціональних залежностей. Приклади
Зміст
- 1. Друга нормальна форма. Визначення
- 2. Способи приведення таблиці до другої нормальної форми 2НФ
- 3. Приклад таблиці у другій нормальній формі. Залежність неключового атрибуту від складеного ключа
- 4. Приклади приведення таблиці до другої нормальної форми шляхом додавання поля-лічильника
- Близькі за змістом теми
Пошук на інших ресурсах:
1. Друга нормальна форма. Визначення
Таблиця (відношення) відповідає другій нормальній формі, якщо:
- таблиця приведена до першої нормальної форми 1НФ;
- у таблиці відсутні часткові залежності. Це означає, що кожен неключовий атрибут (поле) таблиці неприводимо залежить від первинного ключа таблиці (ключа відношення).
Друга нормальна форма має актуальність тільки для тих відношень, в яких є складені (композитні) ключі.
⇑
2. Способи приведення таблиці до другої нормальної форми 2НФ
Як відомо, первинний ключ може бути простий або складений. Якщо ключ складений (композитний), то буває важко уникнути часткових залежностей. Одне з полів може функціонально залежати від частини первинного ключа (залежати від деяких атрибутів ключа).
Якщо таблиця має складений (композитний) ключ і містить часткові залежності, то можна використати наступні способи приведення:
- ввести додаткове поле-лічильник (counter), яке буде первинним ключем. Це поле містить унікальні значення, які ідентифікують кожен рядок таблиці. Оскільки первинний ключ не є складеним, то немає і часткових залежностей. Після вводу додаткового поля-лічильника між цим полем-лічильником і будь-яким іншим полем таблиці встановлюється однозначна відповідність;
- розірвати вихідну таблицю на декілька таблиць таким чином, щоб ключові атрибути (ключові поля) розійшлись по різних відношеннях. Цей спосіб також може бути використаний у вищих нормальних формах.
⇑
3. Приклад таблиці у другій нормальній формі. Залежність неключового атрибуту від складеного ключа
Демонструється залежність атрибуту від складеного (композитного) ключа. На рисунку 1 зображена таблиця випуску різних моделей автомобілів у різні роки.
Ключем відношення є атрибути Марка–Модель–Рік випуску. Атрибут “Кількість випущених моделей” неприводимо залежить від ключа.
Рисунок 1. Функціональна залежність атрибуту “Кількість випущених моделей” від ключа. Таблиця у другій нормальній формі 2НФ
Вищенаведена таблиця (рисунок 1) знаходиться у другій нормальній формі з наступних причин:
- таблиця знаходиться у першій нормальній формі 1НФ;
- неключовий атрибут (Кількість випущених моделей) неприводимо залежить від первинного ключа (Марка – Модель – “Рік випуску“);
- у таблиці відсутні часткові залежності.
⇑
4. Приклади приведення таблиці до другої нормальної форми шляхом додавання поля-лічильника
Приклад 1. Задано таблицю обліку співробітників, яка має наступну структуру.
Ключем відношення обрано атрибути Номер – Посада (рисунок 2).
Рисунок 2. Часткова залежність неключового атрибуту Оклад від ключа відношення Номер–Посада
Від займаної посади залежить розмір посадового окладу працівника. Отже, між частиною ключа відношення (атрибут Посада) та неключовим атрибутом Оклад існує функціональна залежність. Це є часткова залежність. Тому таблиця не знаходиться у другій нормальній формі.
Щоб привести таблицю до другої нормальної форми 2НФ потрібно ввести додаткове ключове поле як показано на рисунку 3.
Рисунок 3. Додавання нового поля ID, яке є ключем відношення. Усунення часткової залежності
Після введення додаткового поля, часткові залежності усунуті. Таблиця приведена до другої нормальної форми 2НФ.
Приклад 2. Нехай задано таблицю обліку прочитаних занять у навчальному закладі.
У таблиці ключем відношення обрано атрибути “Номер аудиторії” – “Номер заняття” – “Дата” – “Викладач“. На рисунку 4 показано цю залежність.
Рисунок 4. Часткова залежність неключового атрибуту Дисципліна від ключа відношення
Атрибут Дисципліна залежний від атрибуту Викладач. Це пояснюється тим, що за конкретним викладачем закріплено конкретну дисципліну. Оскільки, атрибут Викладач є частиною первинного ключа, то атрибут Дисципліна залежний від частини первинного ключа. Отже, існує часткова залежність між первинним ключем і атрибутом Дисципліна.
Щоб привести таблицю до другої нормальної форми 2НФ потрібно додати додаткове поле-лічильник і зробити його ключовим. Після внесених змін таблиця має вигляд як показано на рисунку 5.
Рисунок 5. Таблиця у другій нормальній формі 2НФ
⇑
Близькі за змістом теми
- Нормалізація. Поняття та необхідність застосування. Аномалії модифікації. Приклади
- Перша нормальна форма (1НФ). Приведення таблиць до першої нормальної форми. Приклади
- Функціональні залежності. Побудова схем функціональних залежностей. Приклади
⇑