Monday, October 15, 2007

О ненормальных

В данном случае речь идет, конечно, о реляционных базах данных. Это один из интересных трендов последнего времени - критиковать процесс нормализации и, соответственно, отказываться от него везде, где можно. Цель - все тажа борьба за скорость исполнения. Идея простая - при любых реализациях выборка данных из одного отношения работает быстрее, чем join для нескоьких нормализованных таблиц. Из практического опыта могу подтвердить, что на том же MySQL разница иногда довольно существенная.

Вот типичный пример использования зависимых доменов в таблице (вместо двух связанных таблиц) и триггеров для борьбы с аномалиями обновления. Решать, нужна нормализация или нет и до какого уровня - это, конечно, зависит от конкретного проекта. Но в целом, это работающий подход, который нужно иметь в виду (в запасе) при проектировании высоконагруженных систем.

P.S. но к процессу борьбы с нормализацией не имеют, конечно, никакого отношения подобного рода "разработки" :-)

No comments: