Выбор ответа Middle Проектирование и нормализация обновлено
Нарушение второй нормальной формы
Вопрос
Таблица order_items(order_id, product_id, qty, product_title) с первичным ключом (order_id, product_id). Какая нормальная форма нарушена и почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 2НФ: producttitle зависит от части ключа. Во 2НФ каждая неключевая колонка должна зависеть от всего составного ключа.
Варианты ответа
- 2НФ:
product_titleзависит от части ключаправильный ответ - 1НФ: в таблице составной первичный ключ
- 3НФ:
qtyзависит отproduct_title - Ничего: все колонки зависят от ключа
Разбор
Во 2НФ каждая неключевая колонка должна зависеть от всего составного ключа. Название товара определяется одним product_id, поэтому при переименовании товара его придётся менять во всех заказах. Составной ключ 1НФ не нарушает, 1НФ про атомарность значений. qty зависит от пары заказ-товар, а не от названия.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Проектирование и нормализация»
- Денормализация
- Нормализация
- Суррогатный ключ
- Связь многие ко многим
- Тип для денег
- ON DELETE CASCADE
- Цена в позиции заказа
- Уникальность с мягким удалением