
- •2 Модели и типы данных
- •2.1 Иерархическая модель данных
- •2.2. Сетевая модель данных
- •2.3. Реляционная модель данных
- •2.4. Многомерная модель данных
- •2.5. Объектно-ориентированная модель данных
- •2.6. Объектно- реляционная модель данных
- •2.7. Типы данных
- •2.8. Выбор моделей данных
- •2.9. Вопросы реализации баз данных на физическом уровне
- •2.9.1 Методы физического доступа
- •2.9.2 Сравнение методов последовательного и прямого доступа
- •2.9.3Поиск в файлах с помощью хэша
- •2.9.3.1 Сущность метода хэширования
- •2.9.3.2Стратегия разрешения коллизий с областью переполнения
- •2.9.3.3Разрешения коллизий при стратегии свободного замещения
- •2.9.4Поиск с помощью индексных файлов
- •2.9.4.1Типы индексных файлов
- •2.9.4.2 Файлы с плотным индексом или индексно-прямые файлы
- •2.9.4.2 Файлы с неплотным индексом или индексно-последовательные файлы
- •2.9.5 Организация данных на основе использования в-деревьев
- •2.9.5.1 Терминология и разновидности графов типа «дерево»
- •2.9.5.2 Индексирование на основе в-деревьев
- •2.9.5.3 Индексирование и поиск на основе использования двоичных деревьев
- •2.10 Выводы по итогам обзора моделей данных и методов доступа
2.4. Многомерная модель данных
Многомерный подход к представлению данных в базе появился практически одновременно с реляционным, но реально работающих многомерных СУБД (МСУБД) долго было очень мало. С середины 90-х годов интерес к ним стал приобретать массовый характер.
Толчком послужила в 1993 году программная статья одного из основоположников реляционного подхода Э. Кодда. В ней сформулированы 12 основных требований к системам класса OLAP (OnLine Analytical Processing - оперативная аналитическая обработка, см. п 1.3.1), важнейшие из которых связаны с возможностями концептуального представления и обработки многомерных данных. Многомерные системы позволяют оперативно обрабатывать информацию для проведения анализа и принятия решения.
В развитии концепций ИС выделяют следующие два направления:
•OLTPсистемы оперативной (транзакционной) обработки;
• OLAPсистемы аналитической обработки (системы поддержки принятия решений).
Реляционные СУБД предназначались для OLTPсистем и в этой области были весьма эффективны. ВOLAPсистемах они показали себя несколько неповоротливыми и недостаточно гибкими. Более эффективными здесь оказываются многомерные СУБД (МСУБД).
Многомерные СУБД являются узкоспециализированными СУБД, предназначенными для интерактивной аналитической обработки информации.Oсновные понятия, используемые в этих СУБД: агрегируемость,историчность и прогнозируемость данных.
Агрегируемостъ данных означает рассмотрение информации на различных уровнях ее обобщения. В информационных системах степень детальности представления информации для пользователя зависит от его уровня:аналитик, пользователь-оператор, управляющий, руководитель,
Историчность данных предполагает обеспечение высокого уровня статичности (неизменности) собственно данных и их взаимосвязей, а также обязательность привязки данных ко времени.
Статичность данных позволяет использовать при их обработке специализированные методы загрузки, хранения, индексации и выборки.
Временная привязка данных необходима для частого выполнения запросов, имеющих значения времени и даты в составе выборки. Необходимость упорядочения данных по времени в процессе обработки и представления данных пользователю накладывает требования на механизмы хранения и доступа к информации. Так, для уменьшения времени обработки запросов желательно, чтобы данные всегда были отсортированы в томпорядке, в котором они наиболее часто запрашиваются.
Прогнозируемость данных подразумевает задание функций прогнозирования и применение их к различным временным интервалам.
Многомерность модели данных означает не многомерность визуализации цифровых данных, а многомерное логическое представление структуры информации при описании и в операциях манипулирования данными.
По сравнению с реляционной моделью многомерная организация данных обладает более высокой наглядностью и информативностью. Для иллюстрации на рис. 2.6 приведены реляционное (а) и многомерное(б) представления одних и тех же данных об объемах продаж автомобилей.
Рис. 2.6. Реляционное и многомерное представление данных
Если речь идет о многомерной модели данных (ММД) с мерностью больше двух, то не обязательно визуально информация представляется в виде многомерных объектов (трех-, четырех- и более мерных гиперкубов). Пользователю и в этих случаях более удобно иметь дело с двухмерными таблицами или графиками.Данные при этом представляют собой «вырезки» (точнее, «срезы») из многомерного хранилища данных, выполненные с разной степенью детализации.
Итак, хранилище данных в OLAPсистеме (ХДOLAP) является многомерной базой данных (МБД), а самаOLAPсистема — многомернойСУБД. В ХДOLAP можно условно выделить электронный архив, хранящий детальные ретроспективные данные, и агрегированные (обработанные) данные.
ХД OLAP реализуется с помощью ММД, которая имеет несколько разновидностей [12]: собственно многомерная (Multidimensional OLAP—MOLAP), реляционная (Relational OLAP — ROLAP), гибридная (Hibrid OLAP — HOLAP).
MOLAP предполагает формирование так называемого многомерного куба (гиперкуба). Трехмерный куб показан на рис. 2.7.
Важные понятия ММД - измерение и ячейка.
Каждая из координат куба называется Измерением. Измерение (Dimension) — это множество однотипных данных, определяющих одну из граней гиперкуба. Примерами наиболее часто используемых временных измерений являются Дни, Месяцы, Кварталы и Годы. В качестве географических измерений широко употребляются Города, Районы, Регионыи Страны. В многомерной модели данных измерения играют роль индексов, служащих для идентификации конкретных значений в ячейках гиперкуба.
Ячейка (Cell) или показатель — это поле, значение которого однозначно определяется фиксированным набором измерений. Тип поля чаще всего определен как цифровой. В зависимости от того, как формируются значения некоторой ячейки, обычно она может быть переменной (значения изменяются и могут быть загружены из внешнего источника данных или сформированы программно) либо формулой (значения, подобно формульным ячейкам электронных таблиц, вычисляются по заранее заданным формулам).
Таким образом, аналогом MOLAP можно считать задание функции, например, z=f(x,y). В ММД координаты x и y – это измерения, а z – значение-результат. В примере на рис. 2.6б каждое значение ячейки Объем продаж однозначно определяется комбинацией временного измерения (Месяц продаж) и модели автомобиля. На практике зачастую требуется большее количество измерений. Пример трехмерной модели данных приведен на рис. 2.7.
Рис. 2.7. Пример трехмерной модели
Измерения реализуются с помощью индексов, которые позволяют резко увеличить скорость доступа к данным. По разным оценка эта скорость в 10-100 раз выше, чем в реляционной модели данных. Значение результата в ММД помещается в ячейке на пересечении соответствующих значений измерений. Однако за увеличенную скорость доступа приходится платить увеличенным объемом памяти. Соотношение между полезным и потребным объемами памяти в ММД в 5-10 раз больше, чем в реляционной модели данных. Кроме того, в ММД много пустых ячеек, и требуются специальные эффективные программы хранения значений Null. Желательно удаление пустых ячеек.
В существующих МСУБД, реализующих MOLAP,используются два основных варианта (схемы) организации данных: гиперкубическая и поликубическая.
В поликубической схеме предполагается, что в БД может быть определено несколько гиперкубов с различной размерностью и с различными измерениями в качестве граней. Примером системы, поддерживающей поликубический вариант БД, является сервер Oracle Express Server.
В случае гиперкубической схемы предполагается, что все показатели определяются одним и тем же набором измерений. Это означает, что при наличии нескольких гиперкубов БД все они имеют одинаковую размерность и совпадающие измерения. Очевидно, в некоторых случаях информация в БД может быть избыточной (если требовать обязательное заполнение ячеек).
В случае ММД применяется ряд специальных операций, к которым относятся: формирование среза (сечение), вращение, агрегация (свертка) и дезагрегация (детализация) данных.
«Срез» (Slice) представляет собой подмножество гиперкуба, полученное в результате фиксации одного или нескольких измерений. Формирование «срезов» выполняется для ограничения используемых пользователем значений, так как все значения гиперкуба практически никогда одновременно не используются. Например, если ограничить значения измерения Модель автомобиля в гиперкубе (рис. 2.7) маркой «Жигули», то получится двухмерная таблица продаж этой марки автомобиля различными менеджерами по годам.
Операция «вращение» (Rotate) применяется при двухмерном представлении данных. Суть ее заключается в изменении порядка измерений при визуальном представлении данных. Так, «вращение» двумерной таблицы, показанной на рис. 2.6б, приведет к изменению ее вида таким образом, чтопо оси X будет марка автомобиля, а по оси Y — время.
Операцию «вращение» можно обобщить и на многомерный случай, если под ней понимать процедуру изменения порядка следования измерений. В простейшем случае, например, это может быть взаимная перестановка двух произвольных измерений.
Операции «агрегация» (DrillUp) и «детализация» (DrillDown) означаютсоответственно переход к более общему и к более детальному представлению информации пользователю из гиперкуба.
Для иллюстрации смысла операции «агрегация» предположим, что у нас имеется гиперкуб, в котором помимо измерений гиперкуба, приведенного на рис. 2.7, имеются еще измерения: Подразделение, Регион, Фирма, Страна. Заметим, что в этом случае в гиперкубе существует иерархия (снизу вверх) отношений между измерениями: Менеджер, Подразделение, Регион, Фирма, Страна.
Пусть в описанном гиперкубе определено, насколько успешно в 1995 году менеджер Петров продавал автомобили «Жигули» и «Волга». Тогда, поднимаясь на уровень выше по иерархии, с помощью операции «агрегация» можно выяснить, как выглядит соотношение продаж этих же моделей на уровне подразделения, где работает Петров.
В ROLAP используются реляционные составляющие. Возможны две схемы структуры: «звезда» (без ветвления «лучей» - связей от центральной таблицы) и «снежинка» (с возможностью ветвления «лучей»). В любой схеме выделяются одна центральная фактографическая таблица реляционного типа, в которой собственно и хранятся данные, и несколько справочных таблиц, каждая из которых характеризует одну из размерностей куба.
ROLAP позволяет дать характеристику размерности ХДOLAP (табл. 2.1).
Таблица 2.1
Размерность хранилища данных
Размерность |
Предельный объем, Гбайт |
Число строк в фактографической таблице, млн |
Маленькая |
3 |
1-10 |
Средняя |
25 |
11-100 |
Большая |
200 |
101-999 |
Сверхбольшая |
Более 200 |
1000 и более |
Сравнение MOLAP и ROLAP дает следующие результаты:
MOLAP обладает высоким быстродействием, но возникают проблемы с хранением больших объемов данных;
ROLAP не имеет ограничений на объем данных, однако обладает гораздо меньшим быстродействием.
Отсюда возникла идея построения модели HOLAP, совмещающей достоинства MOLAP и ROLAP. Дело в том, что все данные ХД OLAP одновременно никогда не используются. Каждый раз требуется лишь их часть. В связи с этим целесообразно данные разделить на предметные подобласти, которые называют киосками (магазинами, витринами, рынками) данных. Киоск данных – специализированное тематическое хранилище, обслуживающее одно из направлений деятельности фирмы.
В этом случае центральное хранилище может быть реализовано с использованием реляционной БД, как в ROLAP, а основные данные хранятся в многочисленных киосках, каждый из которых реализован на основе MOLAP.
Основным достоинством ММД является удобство и эффективность аналитической обработки больших объемов данных, связанных со временем. При организации обработки аналогичных данныхна основе реляционной модели происходит нелинейный рост трудоемкости операций в зависимости от размерности БД и существенное увеличение затрат оперативной памяти на индексацию.
Недостатком многомерной модели данных является ее громоздкость для простейших задач обычной оперативной обработки информации.
Примерами систем, поддерживающих ММД, являются Essbase (Arbor Software), Media Multi-matrix (Speedware), Oracle Express Server(Oracle) иCache(InterSystems). Некоторые программные продукты, например Media/MR (Speedware), позволяют одновременно работать с многомерными и с реляционными БД. В СУБД Cache, в которой внутренней моделью данных является многомерная модель, реализованы три способа доступа к данным: прямой (на уровне узлов многомерных массивов), объектный и реляционный.