Классика баз данных - статьи

       

В отличие от этого, основным


В отличие от этого, основным действием в хранилище данных является выполнение непредвиденных запросов, которые часто бывают достаточно сложными. Поэтому хранилище данных обычно подвергается периодической загрузке новых данных, перемежающейся с выполнением непредвиденных запросов.

Что касается схем хранилищ данных, то стандартной премудростью является создание таблицы фактов, содержащей информацию вида «кто, что, когда и где» по поводу каждой оперативной транзакции. Например, на рис. 1 показана схема хранилища данных типичного розничного торговца. В центральной таблице фактов хранится запись для каждого отдельного предмета, который сканируется кассиром в каждом магазине торговой сети.


Рис. 1. Типичная схема «звезда»

Кроме того, в хранилище данных хранятся таблицы измерений, содержащие информацию о каждом магазине, каждом покупателе, каждом продукте и каждом промежутке времени. В действительности, в таблице фактов содержится внешний ключ для каждого из этих измерений, и естественным результатом является схема «звезда». Такие звездообразные схемы повсеместны в средах хранилищ данных, но они практически не встречаются в средах OLTP. Хорошо известно, что приложения хранилищ данных лучше работают при использовании битовых (bit-map) индексов, в то время как пользователи OLTP-приложений предпочитают индексы на основе B-деревьев. Причины очень просты: битовые индексы являются более компактными и быстрее работают в условиях рабочей нагрузки, свойственной хранилищам данных, но не могут хорошо работать в средах OLTP. В результате многие поставщики поддерживают в своих продуктах СУБД и индексы на основе B-деревьев, и битовые индексы.

Кроме того, в мире хранилищ данных полезная тактика оптимизации основывается на материализованных представлениях, но они никогда не используются в мире OLTP. В средах OLTP широко распространены обычные («виртуальные») представления.

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


Содержание  Назад  Вперед