Gymterview
middle

Какие существуют нормальные формы?

Нормальные формы — последовательные уровни требований к структуре отношений, каждый из которых устраняет определённый вид избыточности. Каждая следующая форма включает требования предыдущей.

Основные нормальные формы

Форма Требование Что устраняет
1NF Все атрибуты атомарны (неделимы), нет повторяющихся групп Составные и многозначные атрибуты
2NF 1NF + все неключевые атрибуты зависят от ключа целиком, а не от его части Частичные зависимости от составного ключа
3NF 2NF + неключевые атрибуты не зависят друг от друга (нет транзитивных зависимостей) Транзитивные зависимости
BCNF Каждый детерминант функциональной зависимости является потенциальным ключом Зависимости, где детерминант не ключ

Примеры

Нарушение 1NF (неатомарный атрибут):

id name phones
1 Иванов +7-111, +7-222

Исправление: вынести телефоны в отдельную таблицу.

Нарушение 2NF (частичная зависимость):

student_id course_id student_name grade
1 101 Иванов 5

student_name зависит только от student_id, а не от полного ключа (student_id, course_id).

Нарушение 3NF (транзитивная зависимость):

id department_id department_name
1 10 ИТ

department_name зависит от department_id, а не напрямую от id.

Высшие нормальные формы

Форма Требование Применение
4NF Нет независимых многозначных зависимостей Устранение связей «многие-ко-многим» между независимыми атрибутами
5NF Каждая нетривиальная зависимость соединения определяется потенциальным ключом Теоретический предел декомпозиции без потерь
6NF Отношение неприводимо (не может быть разбито без потерь) Хронологические (темпоральные) базы данных
DKNF Все ограничения являются следствием ограничений доменов и ключей Теоретический идеал

На практике для большинства систем достаточно 3NF или BCNF. Формы выше 3NF применяются редко и в специфических случаях.

На собеседовании: интервьюер ожидает уверенного объяснения 1NF-3NF с примерами. Формы выше 3NF — бонус. Частая ошибка — заучить определения, но не суметь привести пример нарушения каждой формы.