Полезны ли нормальные формы для бизнеса или это только техническая история
Что проверяют
Умеете ли вы перевести проектное решение на язык рисков и денег, и не превратилась ли для вас нормализация в догму. Ждут, что назовёте и пользу, и границу, где нормальные формы начинают мешать.
Как отвечать
Смысл нормализации простой: один факт хранится в одном месте. Отсюда следует эффект, понятный без всякой техники. Если адрес клиента продублирован в пяти таблицах, рано или поздно в документ попадёт устаревший, и это уже не баг в коде, а претензия клиента и разбирательство.
Объясняйте через аномалии, они звучат понятно для любого собеседника:
- при обновлении: поменяли в одном месте, забыли в другом, данные разошлись;
- при вставке: нельзя завести поставщика, пока у него нет ни одного товара;
- при удалении: удалили последний заказ и потеряли сведения о клиенте.
Дальше обозначьте границу. Третьей нормальной формы обычно достаточно для базы, в которую активно пишут. Для отчётов и аналитики нормализация мешает: там строят витрины и сознательно дублируют данные. И отличайте денормализацию от фиксации факта: цена в заказе на момент покупки обязана храниться копией, иначе прошлые чеки поедут вслед за прайсом.
Где спотыкаются
Сводят пользу к экономии места на диске. Диск дешевле часа разбирательств, реальная выгода в целостности и в единственной точке правды.
Оправдывают дублирование производительностью, не назвав, чем поддерживают согласованность: триггером, материализованным представлением, пересчётом по расписанию. Денормализация без такого механизма это отложенный инцидент, который найдёт поддержка, а не тесты.
Путают нормальные формы со скоростью запросов. Третья нормальная форма ничего не обещает про чтение, скорость дают индексы и план запроса. Обратная ошибка тоже частая: защищают строгую нормализацию в аналитическом хранилище, где она только плодит соединения таблиц.