Визначення
Третя нормальна форма (3НФ) — це нормальна форма, яка використовується в нормалізації баз даних. 3НФ була вперше визначена в 1971 році Едгаром Коддом. За визначенням Кодда, таблиця знаходиться в 3НФ тоді і тільки тоді, коли виконуються наступні умови:
- Таблиця знаходиться в 2НФ.
- Кожен неключовий атрибут таблиці повинен бути функціонально залежним від первинного ключа.
Пояснення умов
- 2НФ: Таблиця знаходиться в 2НФ, якщо вона знаходиться в 1НФ і жоден неключовий атрибут не є частково залежним від первинного ключа.
- Функціональна залежність (ФЗ): ФЗ між наборами атрибутів A і B означає, що кожному значенню A відповідає одне і тільки одне значення B.
Перехід до 3НФ
Щоб перевести таблицю в 3НФ з 2НФ, виконайте такі кроки:
- Визначте всі неключові атрибути, які функціонально залежні від частини первинного ключа.
- Створіть нову таблицю для кожного набору атрибутів, які функціонально залежні від частини первинного ключа.
- Вставте нові таблиці в схему бази даних.
- Установіть зв'язки між таблицями за допомогою ключового атрибута.
Приклад
Розглянемо таблицю "Замовлення", яка містить такі атрибути:
- Номер замовлення (первинний ключ)
- Ім'я клієнта
- Адреса клієнта
- Ім'я продукту
- Кількість продукту
Ця таблиця не знаходиться в 3НФ, оскільки атрибут "Адреса клієнта" функціонально залежить лише від частини первинного ключа ("Ім'я клієнта").
Щоб перевести цю таблицю в 3НФ, ми створимо нову таблицю "Клієнти" з атрибутами "Ім'я клієнта" та "Адреса клієнта". Таблиця "Замовлення" буде оновлена, щоб містити лише атрибути "Номер замовлення", "Ім'я клієнта", "Ім'я продукту" та "Кількість продукту".
Переваги 3НФ
Нормалізація бази даних до 3НФ забезпечує ряд переваг:
- Усунення надмірності даних: Запобігає дублюванню даних, зберігаючи кожен фрагмент даних лише в одному місці.
- Покращена цілісність даних: Гарантує, що кожне значення даних зберігається в правильному місці, що знижує ризик помилок.
- Гнучкість: Дозволяє легко додавати, видаляти та змінювати дані без порушення цілісності бази даних.
- Ефективність: Покращує ефективність запитів, оскільки дані організовані в логічну структуру.
Третя нормальна форма є важливою нормалізаційною формою, яка допомагає гарантувати цілісність, гнучкість та ефективність баз даних. Нормалізація баз даних до 3НФ сприяє усуненню надмірності, покращенню цілісності даних та підвищенню загальної якості бази даних.
Поширені запитання
- Які переваги 3НФ порівняно з 2НФ?
- Усунення надмірності даних
- Покращення цілісності даних
- Гнучкість
- Ефективність
- Як визначити, чи знаходиться таблиця в 3НФ?
- Перевірити, чи виконуються умови 2НФ
- Перевірити, чи кожен неключовий атрибут функціонально залежить від первинного ключа
- Як перевести таблицю в 3НФ?
- Визначити залежні атрибути
- Створити окремі таблиці для залежних атрибутів
- Установити зв'язки між таблицями
- Які недоліки 3НФ?
- Потенційне збільшення кількості таблиць
- Можливе зниження продуктивності при певному типі запитів
- Коли слід використовувати 3НФ?
- Коли цілісність, гнучкість та ефективність мають важливе значення
- Для баз даних із складними зв'язками та великими обсягами даних