Ответ
Теория описывает шесть основных нормальных форм, но на практике чаще всего используются первые три.
Основные нормальные формы:
- Первая НФ (1НФ): Отсутствие составных и повторяющихся атрибутов (все значения атомарны).
- Вторая НФ (2НФ): Выполнена 1НФ, и все неключевые атрибуты полностью зависят от всего составного первичного ключа.
- Третья НФ (3НФ): Выполнена 2НФ, и отсутствуют транзитивные зависимости (неключевые атрибуты не зависят от других неключевых атрибутов).
Пример нарушения 3НФ:
-- customer_name зависит от customer_id, а не напрямую от order_id
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
customer_id INT,
customer_name VARCHAR(100) -- Нарушение 3НФ
);
Решение: Вынести customer_name в отдельную таблицу Customers.
Дополнительные НФ:
- Нормальная форма Бойса-Кодда (НФБК/BCNF): Усиленная версия 3НФ для случаев со множественными потенциальными ключами.
- Четвертая НФ (4НФ): Устранение нетривиальных многозначных зависимостей.
- Пятая НФ (5НФ): Устранение зависимостей по соединению.
- Шестая НФ (6НФ): Доменно-ключевая нормальная форма (каждая нетривиальная зависимость является следствием ограничений ключей и доменов).