П’ята нормальна форма (5NF), також відома як нормальна форма Джонсона, є однією з форм нормалізації в реляційних базах даних, яка фокусується на усуненні аномалій оновлення, зберігання та видалення, які можуть виникнути в результаті зайвої інформації.
-
Без надмірної інформації: Відносини не повинні містити жодних надмірних даних. Це означає, що таблиця не повинна містити атрибутів, які не є залежними від первинного ключа.
-
Розбиття на менші таблиці: Якщо таблиця має складні множинні залежності (коли один атрибут залежить від інших комбінованих атрибутів), таблиця має бути розділена на менші таблиці таким чином, щоб ці залежності були відображені.
-
Використання зовнішніх ключів: Зовнішні ключі повинні використовуватися для зв’язування таблиць. Це дозволяє підтримувати цілісність даних.
Припустимо, у вас є таблиця, яка зберігає інформацію про студентів, курси та викладачів, де кожен студент може реєструватися на кілька курсів, які викладають кілька викладачів.
| Студент_ID | Курс_ID | Викладач_ID |
|------------|---------|--------------|
| 1 | 101 | 1001 |
| 1 | 102 | 1001 |
| 1 | 101 | 1002 |
| 2 | 101 | 1001 |
| 2 | 102 | 1002 |
Ця таблиця може бути не в 5NF, оскільки залежності між деякими атрибутами є множинними. Щоб привести її до 5NF, потрібно розділити її, наприклад, на три таблиці:
- Таблиця студентів, курсів:
| Студент_ID | Курс_ID |
|------------|---------|
| 1 | 101 |
| 1 | 102 |
| 2 | 101 |
| 2 | 102 |
- Таблиця курсів і викладачів:
| Курс_ID | Викладач_ID |
|---------|--------------|
| 101 | 1001 |
| 101 | 1002 |
| 102 | 1001 |
| 102 | 1002 |
- Таблиця студентів і викладачів (якщо потрібно):
| Студент_ID | Викладач_ID |
|------------|--------------|
| 1 | 1001 |
| 1 | 1002 |
| 2 | 1001 |
| 2 | 1002 |
Приведення бази даних до 5NF може вимагати значних змін у структурі таблиць, проте це призводить до збільшення цілісності даних і зменшення ризику помилок. В MySQL для впровадження нормалізації ви можете використовувати SQL-запити для створення та модифікації таблиць.