Нужна ли нормализация базы данных?
Является ли нормализация базы данных "вещью?"
Когда я учился во время курса по базам данных, нас учили всем уровням нормализации и говорили, что мы всегда должны это делать.
Теперь, со всем движением NoSQL, кажется, что нормализация уже не является чем-то занятием?
Ответы
Ответ 1
Это зависит от того, какие типы приложений используют базу данных.
Для приложений OLTP (в основном, для ввода данных, со многими INSERT, UPDATE и DELETES вместе с SELECT), нормализованный, как правило, хорошо.
Для приложений OLAP и отчетов приложения нормализация не помогает. Запросы SELECT будут выполняться намного быстрее против денормализованной схемы, которая может быть достигнута с помощью представлений.
Вы также можете найти полезную информацию в этих очень популярных похожих вопросах:
Должен ли я нормализовать свою БД или нет?
Что касается баз данных, это "Нормализовать для правильности, денормализовать для производительности" правильную мантру?
Каково влияние ресурсов на нормализацию базы данных?
Как убедить кого-то нормализовать базу данных?
Действительно ли лучше использовать нормализованные таблицы?
Ответ 2
NoSQL не является серебряной пулей: это просто технология, которая может обеспечить гораздо лучшую пригодность для определенных обстоятельств. Для реляционных данных RDBMS не уходит в ближайшее время.
Ответ 3
да, для транзакционной системы всегда нормализуется, или, скорее всего, у вас будут большие головные боли дальше по дороге. Для базы данных, которая будет использоваться для отчетности /OLAP, денормализация схемы может быть очень полезной.
Ответ 4
Эмпирическое правило "ПРИСОЕДИНЯЙТЕСЬ ДОСТОВЕРЯТЬ НА ПРОЦЕДУЮ ПРОЦЕДУРЫ" Я использую это при создании базы данных для большого или малого проекта. Таблицы, в которых хранятся данные, такие как имена пользователей, адреса и т.д., Всегда должны быть нормализованы, так как к ним обращаются совсем недавно, как вы учили, используя приведенные примеры. В последние годы данные web2.0, приложения, мобильные службы и т.д. Фактически фактически представляют собой другой тип данных, который с избытком кода памяти еще ниже, он может сэкономить вычислительную мощность, чтобы сохранить их на одной и той же "таблице", а не нормализуя его.