Какие существуют нормальные формы?
Нормальные формы — последовательные уровни требований к структуре отношений, каждый из которых устраняет определённый вид избыточности. Каждая следующая форма включает требования предыдущей.
Основные нормальные формы
| Форма | Требование | Что устраняет |
|---|---|---|
| 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 — бонус. Частая ошибка — заучить определения, но не суметь привести пример нарушения каждой формы.