Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационные технюлогии / Мои лекции (итог) / Лекция №12_Многомерные_БД.docx
Скачиваний:
38
Добавлен:
08.03.2015
Размер:
84.37 Кб
Скачать

Реализация

Многомерные базы данных реализуют в двух основных формах.

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

  • Реляционные системы OLAP (ROLAP) [5] для хранения данных используют реляционные базы данных, а также применяют специализированные индексные структуры, такие как битовые карты, чтобы добиться высокой скорости выполнения запросов.

Системы MOLAP, как правило, позволяют добиться более эффективного использования дискового пространства, а также меньшего времени ответов при обработке запросов.

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

В ROLAP, как правило, используются схемы «звезда» и «снежинка» [5], при которых данные хранятся в таблицах фактов и таблицах измерений. Таблица фактов содержит одну строку для каждого факта в кубе. Для каждого измерения отводится отдельный столбец, содержащий значение параметра для конкретного факта, а также столбец для каждого измерения, которое содержит внешний ключ, ссылающийся на таблицу измерений для конкретного измерения.

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

Рис. 3. Схема «звезда» для куба продаж. Информация со всех уровней в измерении хранится в одной таблице измерений, например, названия продуктов и типы продуктов хранятся в таблице «Продукт»

Таблица фактов в схеме «звезда» в нашем примере содержит цены продаж для одной конкретной продажи и соответствующие значения измерений. Она включает столбец внешнего ключа для каждого из трех измерений: продукт, местоположение и время. Таблицы измерений имеют соответствующие ключевые столбцы и по одному столбцу для каждого уровня измерений, например, «Идентификатор местоположения», «Город» и «Страна». Для уровня T столбца не требуется, поскольку в нем всегда содержится одно и то же значение. Столбец ключа таблицы измерений, как правило, представляет собой искусственный целочисленный ключ без какой-либо семантики. Это позволяет избежать некорректной трактовки ключей, обеспечить более эффективное использование памяти и лучшую поддержку обновлений измерений, чем при работе с информативными ключами, получаемыми из систем-источников [5].

На более высоком уровне данных возникнет избыточность. Например, поскольку в мае 2001 года 31 день, значение 2001 будет повторено 31 раз. Поскольку измерения, как правило, занимают 1-5% всего пространства, требуемого для хранения куба, такая избыточность не вызывает нехватки памяти. Кроме того, централизованная поддержка обновления измерений гарантирует согласованность. Таким образом, использование денормализованных таблиц измерений, необходимых для поддержки упрощенного формулирования запросов, которые к тому же эффективно вычисляются, часто дает дополнительные преимущества.

Схема «снежинка» содержит по одной таблице для каждого уровня измерений, избегая избыточности, что может оказаться весьма полезным в некоторых ситуациях. Каждая из таблиц измерений содержит ключ, столбец с текстовыми описаниями значений уровней, возможно, столбцы для свойств уровней. Таблицы более низких уровней могут также содержать внешний ключ для доступа к более высокому уровню. Например, таблица дней на рис. 4 содержит целочисленный ключ, дату и внешний ключ для связи с таблицей месяцев.

Рис. 4. Схема «снежинка» для куба продаж. Информация из различных уровней в измерении хранится в различных таблицах. Например, названия продуктов и типы продуктов хранятся в таблицах «Продукт» и «Тип» соответственно