Денормализация - Denormalization
Эта статья нужны дополнительные цитаты для проверка.Май 2008 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Денормализация это стратегия, используемая на ранее -нормализованный база данных для повышения производительности. В вычисление, денормализация - это попытка улучшить производительность чтения база данных, за счет потери некоторой производительности записи, добавив избыточный копии данных или путем группировки данных.[1][2] Часто мотивируется спектакль или же масштабируемость в реляционный программное обеспечение базы данных необходимость выполнения очень большого количества операций чтения. Денормализация отличается от ненормализованная форма в том, что преимущества денормализации могут быть полностью реализованы только на модели данных, которая в противном случае нормализована.
Выполнение
А нормализованный дизайн часто «хранит» разные, но связанные части информации в отдельных логических таблицах (называемых отношениями). Если эти отношения физически хранятся в виде отдельных файлов на диске, создание базы данных запрос который извлекает информацию из нескольких отношений ( присоединиться к операции ) может быть медленным. Если соединяется много отношений, это может быть чрезмерно медленным. Есть два способа справиться с этим.
Поддержка СУБД
Один из способов - сохранить нормализованный логический дизайн, но разрешить система управления базами данных (СУБД) для хранения дополнительной избыточной информации на диске для оптимизации ответа на запрос. В этом случае ответственность за обеспечение согласованности любых избыточных копий лежит на программном обеспечении СУБД. Этот метод часто реализуется в SQL как проиндексированные представления (Microsoft SQL Server ) или же материализованные представления (Oracle, PostgreSQL ). Представление может, среди прочего, представлять информацию в формате, удобном для запросов, а индекс гарантирует, что запросы к представлению оптимизированы физически.
Реализация DBA
Другой подход - денормализовать логический дизайн данных. При осторожном подходе можно добиться аналогичного улучшения ответа на запрос, но за счет затрат - теперь разработчик базы данных несет ответственность за то, чтобы денормализованная база данных не стала противоречивой. Это делается путем создания правил в базе данных под названием ограничения, которые определяют, как следует поддерживать синхронизацию избыточных копий информации, что может легко сделать процедуру денормализации бессмысленной. Это увеличение логического сложность структуры базы данных и дополнительной сложности из-за дополнительных ограничений, которые делают этот подход опасным. Кроме того, ограничения вводят компромисс, ускорение чтения (ВЫБРАТЬ
в SQL) при замедлении записи (ВСТАВЛЯТЬ
, ОБНОВИТЬ
, и УДАЛИТЬ
). Это означает, что денормализованная база данных при большой нагрузке записи может предложить хуже производительности, чем его функционально эквивалентный нормализованный аналог.
Денормализация в сравнении с ненормализованными данными
Модель денормализованных данных - это не то же самое, что модель данных, которая не была нормализована, и денормализация должна происходить только после того, как был достигнут удовлетворительный уровень нормализации и были созданы все необходимые ограничения и / или правила для работы с внутренними аномалии в конструкции. Например, все отношения находятся в третья нормальная форма и любые отношения с объединением и многозначными зависимостями обрабатываются соответствующим образом.
Примеры методов денормализации включают:
- «Сохранение» количества элементов «многие» в отношении «один ко многим» в качестве атрибута отношения «один»
- Добавление атрибутов в отношение из другого отношения, с которым оно будет соединено
- Звездные схемы, которые также известны как модели измерения фактов и были расширены на схемы снежинок
- Готовое резюме или Кубы OLAP
С продолжающимся резким увеличением всех трех: хранилища, вычислительной мощности и пропускной способности на всех уровнях, денормализация в базах данных превратилась из необычной или расширенной техники в обычное дело или даже в норму. Например, одним специфическим недостатком денормализации было то, что она просто «использует больше памяти» (то есть буквально больше столбцов в базе данных). Во всех системах, кроме самых огромных, которые можно вообразить, этот конкретный аспект стал неактуальным; опасность использования большего объема памяти не является проблемой.
Смотрите также
Рекомендации
- ^ Г. Л. Сандерс и С. К. Шин. Влияние денормализации на производительность СУБД. В материалах конференции HICSS, январь 2001 г.
- ^ С. К. Шин и Г. Л. Сандерс. Стратегии денормализации для извлечения данных из хранилищ данных. Системы поддержки принятия решений, 42 (1): 267-282, октябрь 2006 г.