Вопрос с собеседования · Базы данных

Что требуют первые три нормальные формы?

MiddleМоделирование данныхSQL
Ещё спрашивают так:
  • Что такое 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.
  • Когда денормализация оправдана и чем за неё платят?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования