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