Выбор ответа Junior Проектирование и нормализация спрашивают часто обновлено

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

Вопрос

Таблица employees(id, name, department_id, department_name). Что с ней не так?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Нарушена 3НФ: транзитивная зависимость через отдел. Транзитивная зависимость id → departmentid → departmentname нарушает 3НФ: переименование отдела потребует обновить всех его сотрудников, а пропущенная строка оставит в базе два разных названия.

Варианты ответа

  1. Нарушена 1НФ: имя отдела не атомарно и повторяется
  2. Нарушена 3НФ: транзитивная зависимость через отделправильный ответ
  3. Нарушена 2НФ: ключ фактически составной
  4. Всё в порядке, это нормальная денормализация

Разбор

Транзитивная зависимость id → department_id → department_name нарушает 3НФ: переименование отдела потребует обновить всех его сотрудников, а пропущенная строка оставит в базе два разных названия. Название отдела атомарно, и ключ тут простой (id), так что 1НФ и 2НФ ни при чём. Денормализация бывает оправдана, но её делают сознательно и с механизмом синхронизации, а не по умолчанию.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.