Нужна ли нормализация базы данных?

Является ли нормализация базы данных "вещью?"

Когда я учился во время курса по базам данных, нас учили всем уровням нормализации и говорили, что мы всегда должны это делать.

Теперь, со всем движением NoSQL, кажется, что нормализация уже не является чем-то занятием?

Ответы

Ответ 1

Это зависит от того, какие типы приложений используют базу данных.

Для приложений OLTP (в основном, для ввода данных, со многими INSERT, UPDATE и DELETES вместе с SELECT), нормализованный, как правило, хорошо.

Для приложений OLAP и отчетов приложения нормализация не помогает. Запросы SELECT будут выполняться намного быстрее против денормализованной схемы, которая может быть достигнута с помощью представлений.

Вы также можете найти полезную информацию в этих очень популярных похожих вопросах:

Должен ли я нормализовать свою БД или нет?

Что касается баз данных, это "Нормализовать для правильности, денормализовать для производительности" правильную мантру?

Каково влияние ресурсов на нормализацию базы данных?

Как убедить кого-то нормализовать базу данных?

Действительно ли лучше использовать нормализованные таблицы?

Ответ 2

NoSQL не является серебряной пулей: это просто технология, которая может обеспечить гораздо лучшую пригодность для определенных обстоятельств. Для реляционных данных RDBMS не уходит в ближайшее время.

Ответ 3

да, для транзакционной системы всегда нормализуется, или, скорее всего, у вас будут большие головные боли дальше по дороге. Для базы данных, которая будет использоваться для отчетности /OLAP, денормализация схемы может быть очень полезной.

Ответ 4

Эмпирическое правило "ПРИСОЕДИНЯЙТЕСЬ ДОСТОВЕРЯТЬ НА ПРОЦЕДУЮ ПРОЦЕДУРЫ" Я использую это при создании базы данных для большого или малого проекта. Таблицы, в которых хранятся данные, такие как имена пользователей, адреса и т.д., Всегда должны быть нормализованы, так как к ним обращаются совсем недавно, как вы учили, используя приведенные примеры. В последние годы данные web2.0, приложения, мобильные службы и т.д. Фактически фактически представляют собой другой тип данных, который с избытком кода памяти еще ниже, он может сэкономить вычислительную мощность, чтобы сохранить их на одной и той же "таблице", а не нормализуя его.