Что требуют первые три нормальные формы?
- Что такое 1НФ, 2НФ и 3НФ?
1НФ — атомарные значения, нет списков в ячейке. 2НФ — нет частичной зависимости неключевых полей от части составного ключа. 3НФ — нет транзитивных зависимостей (неключевое поле не зависит от другого неключевого).
- 1НФ: не «телефоны: 123, 456», а отдельная таблица телефонов
- 2НФ: в позициях заказа (order_id, product_id) название товара зависит только от product_id — вынести
- 3НФ: город зависит от индекса, а не от клиента — вынести
А ещё «Каждое неключевое поле зависит от ключа, всего ключа и ничего, кроме ключа»
Подробно
Практический смысл всех трёх один: каждый факт хранится в одном месте, поэтому аномалии вставки, обновления и удаления становятся невозможными. Нарушение 2NF: в таблице позиций заказа с ключом (заказ, товар) лежит название товара, зависящее только от товара, — и оно дублируется в каждой позиции. Нарушение 3NF: в таблице сотрудников рядом с кодом отдела лежит его название, которое зависит от кода, а не от сотрудника; переименование отдела потребует обновить все строки. Стоит помнить и продолжение: BCNF усиливает 3NF для случаев с несколькими перекрывающимися ключами-кандидатами. На практике проектируют до 3NF, а денормализуют потом и осознанно.
Что хотят услышать
- Определение каждой формы с примером.
- Какие аномалии они устраняют.
Частые ошибки
- Заучивать формулировки без примера аномалии.
- Считать нормализацию самоцелью и нормализовать витрины для чтения.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓1NF: значения атомарны, без списков в одной ячейке
- ✓2NF: неключевой атрибут не зависит от части составного ключа
- ✗3NF: в таблице не более трёх внешних ключей и ни одного составного первичного ключа
- ✓3NF: нет транзитивных зависимостей между неключевыми атрибутами
Что спросят дальше
- Приведите пример аномалии обновления при нарушении 3NF.
- Когда денормализация оправдана и чем за неё платят?
Разбор темы
- Моделирование данных и целостность
Ключи и constraints, нормальные формы простыми словами, осознанная денормализация и каскадные действия.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.