Нормализация является абсолютной. База данных следует нормальным формам или нет. Есть полдюжины нормальных форм. Главным образом, у них есть имена, как с первого по пятый. Плюс есть нормальная форма Бойса-Кодда.
Нормализация существует только с одной целью - предотвратить "аномалии обновления".
Нормализация не субъективна. Это не суждение. Каждая таблица и взаимосвязь между таблицами либо соответствует, либо не соответствует обычной форме.
Следовательно, вы не можете быть "чрезмерно нормализованными" или "недостаточно нормализованными".
Сказав это, нормализация приводит к снижению производительности. Некоторые люди выбирают различные способы денормализации для улучшения производительности. Наиболее распространенной разумной денормализацией является нарушение 3NF и включение полученных данных.
Распространенной ошибкой является разрыв 2NF и дублирование функциональной зависимости между ключом и неключевым значением. Это требует дополнительных обновлений или, что еще хуже, запускает параллельные копии.
Денормализация транзакционной базы данных должна быть индивидуальной.
Хранилище данных также редко следует каким-либо из правил нормализации транзакций, поскольку оно (по сути) никогда не обновляется.
«Чрезмерная нормализация» может означать, что база данных слишком медленная из-за большого количества объединений. Это также может означать, что база данных переросла оборудование. Или что приложения не были разработаны для масштабирования.
Наиболее распространенная проблема здесь заключается в том, что люди пытаются использовать транзакционную базу данных для составления отчетов, когда транзакции продолжаются. Блокировка транзакций мешает составлению отчетов.
«Недостаточная нормализация», однако, означает, что имеются нарушения NF и выполняется ненужная обработка для обработки реплицированных данных и исправления аномалий обновления.