← Назад к вопросам

Какие знаешь требования третьей нормальной формы?

2.0 Middle🔥 241 комментариев
#Требования и их анализ

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Третья нормальная форма (3NF)

Определение

Таблица находится в 3NF если:

  1. Находится в 2NF
  2. Нет транзитивных зависимостей

Транзитивная зависимость

Это когда 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