← Назад к вопросам
Какие знаешь требования третьей нормальной формы?
2.0 Middle🔥 241 комментариев
#Требования и их анализ
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Третья нормальная форма (3NF)
Определение
Таблица находится в 3NF если:
- Находится в 2NF
- Нет транзитивных зависимостей
Транзитивная зависимость
Это когда non-key атрибут зависит от другого non-key атрибута, а не от PK.
Пример нарушения
Таблица Author:
- author_id (PK)
- author_name
- country_id
- country_name (зависит от country_id, не от author_id) ✗
Проблема: country_name зависит от country_id (транзитивная зависимость)
Исправление
Таблица Author:
- author_id, author_name, country_id
Таблица Country:
- country_id, country_name
Теперь нет транзитивных зависимостей
Реальный пример из PrepBro
❌ Нарушение: Question:
- question_id
- title
- profession_id
- profession_name (зависит от profession_id, не от question_id)
✓ Исправлено: Question: (question_id, title, profession_id) Profession: (profession_id, profession_name)
Проблемы при нарушении
Annomaly обновления:
- Изменить profession_name → обновить все Question'ы
- Риск inconsistency
Annomaly удаления:
- Удалить Question → потеря информации о profession
Правило 3NF
"Каждый атрибут зависит от ключа, целого ключа и только от ключа"
Требования 3NF
✓ В 2NF ✓ Нет транзитивных зависимостей ✓ Все non-key атрибуты зависят только от PK