Разница между нормализацией и денормализацией

Разница между нормализацией и денормализацией
Разница между нормализацией и денормализацией

Видео: Разница между нормализацией и денормализацией

Видео: Разница между нормализацией и денормализацией
Видео: Базы данных. 1,2,3 нормальные формы. 2024, Апрель
Anonim

Нормализация против денормализации

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

Что такое нормализация?

Нормализация - это процесс, который выполняется для минимизации избыточности, которая присутствует в данных в реляционных базах данных. Этот процесс в основном разделит большие таблицы на более мелкие с меньшим количеством избыточностей (так называемые «нормальные формы»). Эти меньшие таблицы будут связаны друг с другом четко определенными отношениями. В хорошо нормализованной базе данных любое изменение или модификация данных потребует изменения только одной таблицы. Первая нормальная форма (1NF), вторая нормальная форма (2NF) и третья нормальная форма (3NF) были введены Эдгаром Ф. Коддом. Нормальная форма Бойса-Кодда (BCNF) была введена в 1974 году Коддом и Раймондом Ф. Бойсом. Были определены высшие нормальные формы (4NF, 5NF и 6NF), но они используются редко.

Таблица, соответствующая 1NF, гарантирует, что она действительно представляет отношение (т. Е. Не содержит никаких повторяющихся записей) и не содержит никаких атрибутов с реляционными значениями (т. Е. Все атрибуты должны иметь атомарные значения). Чтобы таблица соответствовала 2NF, она должна соответствовать 1NF, и любой атрибут, который не является частью какого-либо ключа-кандидата (т. Е. Неосновные атрибуты), должен полностью зависеть от любого из ключей-кандидатов в таблице. Согласно определению Кодда, таблица считается находящейся в 3NF тогда и только тогда, когда эта таблица находится во второй нормальной форме (2NF), и каждый атрибут в таблице, который не принадлежит ключу кандидата, должен напрямую зависеть от каждого кандидатный ключ этой таблицы. BCNF (также известный как 3.5NF) улавливает некоторые аномалии, которые не рассматриваются 3NF.

Что такое денормализация?

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

В чем разница между нормализацией и денормализацией?

- Нормализация и денормализация - два совершенно противоположных процесса.

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

- Нормализация проводится для предотвращения аномалий баз данных.

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

- Часто рекомендуется «нормализовать, пока не станет больно, денормализовать, пока не сработает».

Рекомендуем: