Практична робота №12. Нормалізація реляційних таблиць до 3НФ і BCNF
Мета
Навчитися визначати функціональні залежності, приводити відношення до 3НФ і BCNF та обґрунтовувати декомпозицію.
Підготовка
Перед виконанням опрацюйте пов'язані лекції:
Завдання
- Візьміть відношення з практичної №7/№8 (наприклад
enrollments) або запропоноване викладачем не нормалізоване відношення. - Запишіть усі функціональні залежності предметної області та визначте кандидатні ключі.
- Перевірте відношення на відповідність 1НФ, 2НФ, 3НФ і BCNF. Для кожного етапу фіксуйте, які залежності порушують норм форму.
- Виконайте декомпозицію до 3НФ, а потім до BCNF. Для кожного кроку:
- назвіть усунуту залежність;
- запишіть отримані відношення з ключами;
- поясніть, чи зберігаються всі факти (безвтратність) та залежності.
- Побудуйте SQL-скрипт, який створює нормалізовану схему із зовнішніми ключами, що з'єднують розкладені таблиці.
- На прикладі покажіть, як одна з аномалій зникає після нормалізації.
Вимоги до результату
- Карта функціональних залежностей.
- Кроки декомпозиції 1НФ → 2НФ → 3НФ → BCNF із поясненнями.
- SQL-скрипт нормалізованої схеми.
- Приклад зникнення аномалії.
Питання для захисту
- У чому різниця між 3НФ і BCNF?
- Що таке неключовий детермінант?
- Коли декомпозиція може втратити залежність?
- Як перевірити, що декомпозиція безвтратна?
