_Доклады БГУИР_
2010 № 1 (47)
УДК 551.50
МНОГОМЕРНАЯ МОДЕЛЬ МЕТЕОРОЛОГИЧЕСКИХ ДАННЫХ ДЛЯ АНАЛИТИЧЕСКОЙ ОБРАБОТКИ
ВС. МУХА, АН. КОЗЯЧИЙ
Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь
OAO "ИнтэксСофт" Кобяка, 8/4, офис 7, Гродно, Беларусь
Поступила в редакцию 25 апреля 2009
Приводятся теоретические положения, лежащие в основе многомерной модели данных, терминология OLAP-систем согласуется с терминологией теории многомерных матриц, разрабатывается структура многомерной модели метеорологических данных и программное средство, реализующее эту модель.
Ключевые слова: OLAP, многомерная модель данных, многомерные матрицы, метеорологические данные.
Введение
В настоящее время серьезное внимание уделяется концепциям построения и средствам реализации информационных систем, ориентированных на аналитическую обработку данных [1]. Аналитическая обработка предполагает быстрый доступ к большим объемам данных и выполнение большого объема вычислений, причем используемые данные чаще всего должны быть упорядочены во времени. Это накладывает определенные ограничения на способы их хранения, т.е. на базы данных, наиболее распространенными из которых в настоящее время являются реляционные. Несмотря на то что существование реляционных баз данных, а также их использование, в том числе и для аналитической обработки данных, не подвергается сомнению, осуществляется поиск других подходов к организации баз данных. Одним из них является многомерный подход. Впервые он был представлен для широкого обсуждения основоположником теории реляционных баз данных Э. Коддом [2], где была определена также категория OLAP-систем (Online Analytical Processing). Из 12 правил оценки OLAP-систем, представленных Э. Коддом в этой работе, важнейшим является многомерность модели данных.
Теоретические основы многомерной модели данных
В основе многомерной модели данных лежит понятие многомерной матрицы [3,4]. Многомерной (р -мерной ) (щ хп2 х...хпр)-матрицей называется система элементов а^^ i ,
/а = 1, па , а = 1, р. расположенных в точках р -мерного пространства, определяемого осями координат \ . Обозначается р -мерная матрица как
A = (akhr..ip)> '«=1>Иа> Ъ = \,р. (1)
Переменные \,12,...,1р многомерной матрицы называются индексами. Каждый индекс /а многомерной матрицы принимает значения от 1 до па. В случае различных чисел щ, п2 ,..., пр матрица называется гиперпрямоугольной. Если г\ = п2 = ... = пр = п. то матрица называется гиперквадратной или р -мерной матрицей п -го порядка.
Совокупность элементов матрицы А (1) с фиксированными значениями /(/, ,..., /(/ индексов / ,/ ,..., /а (1 < от < р - 1. 1 < а, <... < ат < р) называется т -кратным сечением матрицы А (1) ориентации ,) ■ Это сечение представляет собой (р — от) -мерную
матрицу. Например, сечение двухкратной ориентации (/(;, /(,) матрицы А (1) представляет собой (р — 1) -мерную матрицу
Н-(Ь......)-(а , , )
"'а-! ''а+1 '-'гР-1 'гР+1 " ' -1р ' \ ~ • -4-1 -'а 4+1 "4-1 -!Р -гр+1 " • ¿р
"р-1'Р' р+1 "
М -кратное сечение матрицы А (1) ориентации (/(/ ,•••,/„ ^ со значениями индексов /,' ,/,' ,...,/* будем обозначать в виде В = (А), , , . Множество всех возможных
да -кратных сечений матрицы Л (1) ориентации /г/|, совпадает, очевидно, с исходной
матрницей Л, т.е. матрицу А можно представить с помощью ее сечений в виде
л = ...............
Совокупность р индексов (1Х,12,...,1 ) р -мерной матрицы будем называть мультиин-дексом или р -мультииндексом и обозначать ^ = (/,,..., //(). С применением мультииндексов многомерную матрицу (1) можно записать в виде
А = (%>)> *(Р)=(к>Ч>->*Р)-
Если каждому индексу \,12,...,1р р -мерной матрицы А (1) присвоить определенное значение, то мы получим упорядоченную последовательность значений (/'*, /С,..., 1р) (кортеж), которую будем называть значением мультииндекса 1(р) = (\,...,1р) и обозначать
1*р) = (цЛ'г >•••> 1р) • Значения 1*р) мультииндекса /, р) можно упорядочить каким-либо образом
и поставить в соответствие множеству целых чисел. Эти числа будем называть скалярными значениями мультииндекса.
Во многих случаях полезно определять структуру многомерной матрицы. Для этого мультииндекс ¡(р) = (\,12,...,1 р) разбивают на составляющие мультииндексы 1,5,с следующим образом:
где
1 = (11,12,...,1к), 5 = с = (с1,с2,...,с11),
причем к + X + Ц = р, и каждое из чисел кД.ц может быть равным нулю. Матрица А (1) с такой структурой индексов записывается в виде
А = А«^)=(а1,,с)- (2)
Пусть А — матрица структуры (2), и 1(1> ,1(2> ,...,1(п *, ,я(2>
сп',с'2',...,с'" 1 — упорядоченные значения мультииндексов 1,5,с этой матрицы. Клеточно-диагональная матрица
2 -А\ао А(1) А(2> А(п0'>}
■^кХч) и1а£> (к,0,ц) > (к,0,ц )> ' ' '' (кДц) '
составленная из элементов матрицы А , где диагональные клетки // = 1,2,...,//''. —
двухмерные (п(к) х ) -матрицы,
называется , -ассоциированной с матрицей А. Ассоциированная матрица А/ к ■ и)
вполне представляет исходную многомерную матрицу А = А/к } и). так как содержит все ее
элементы. Ассоциированные матрицы можно использовать для графического изображения многомерных матриц.
Матрица Ат = (а^( ). /(; = 1, п(/ , а = \,р , элементы которой связаны с элементами матрицы А (1) соотношениями
ат =а. . . , (3)
где — какая-нибудь перестановка индексов /', ,/2,..., //(. называется транспониро-
ванной относительно матрицы Л соответственно подстановке Т ■
Ч-Л'
и обозначается
1' 2'^
как /)' или /Г
Организация многомерной модели данных
В связи с тем что терминология теории многомерных матриц является достаточно устоявшейся и общепринятой, желательно, чтобы терминология ОЬЛР-систем и многомерных баз данных согласовывалась с теорией многомерных матриц.
Под многомерной моделью данных в ОЬЛР-системе будем понимать организацию данных в виде многомерной матрицы, или, иначе, в виде гиперпрямоугольника. Случай гиперквадрата (гиперкуба по терминологии работы [1]) является скорее исключением, чем правилом. Для организации гиперпрямоугольника данных необходимо определить оси координат (индексы) /»-мерного пространства и данные, располагаемые в узлах сетки гиперпрямоугольника. Значения индексов будем называть также метками на осях координат. Значению /,р) = (ц ,12,...,г )
мультииндекса будет соответствовать упорядоченный по осям набор меток. Оси выбираются таким образом, чтобы значение мультииндекса однозначно определяло данные. Данные чаще всего представляет собой строки, аналогичные строкам реляционной таблицы данных, так что мультииндекс является составным ключом этой таблицы. Выбор осей осуществляется для каждой подсистемы ОЬЛР-системы на интуитивном уровне и не представляет трудностей. При описанном способе построения модели данных не нужно выполнять нормализацию таблиц данных, что существенно упрощает процесс проектирования многомерной базы данных по сравнению с реляционной.
При организации осей их наименования можно использовать в качестве начальных значений индексов (начальных меток осей). В этом случае значение I (р)=(1,1,...Д) мультииндекса (начало координат) будет указывать на наименования осей, и физически многомерная модель
данных будет состоять их двух файлов, один из которых определяет оси с их наименованиями, а другой — данные, соответствующие этим осям.
OLAP-системы, использующие многомерную модель данных, получили название MOLAP-систем, в отличие от ROLAP-систем, использующих реляционную модель данных.
Кроме задач аналитической обработки данных (расчет статистических характеристик, прогнозирование и др.) в MOLAP необходимо решать вопросы манипулирования данными: ввод или загрузка данных, отображение данных (формирование текстовых отчетов), удаление данных. В свою очередь эти операции связаны с такими операциями, как формирование сечений и вращение.
В MOLAP-системе можно организовать ввод данных в интерактивном режиме. Однако в системах, предназначенных для обработки больших объемов данных, это вряд ли целесообразно. Чаще всего данные хранятся в реляционных базах данных, электронных таблицах или в текстовых файлах. В этом случае следует организовать автоматический импорт данных из этих источников. Поскольку эти источники представляют собой двухмерные массивы данных, которые могут быть помещены в определенные двухмерные сечения гиперпрямоугольника, то необходимо формировать сечения в соответствии с определением сечения, приведенным выше, т.е. путем выбора определенных меток осей.
Формирование текстовых отчетов состоит в отображении на бумагу (на плоскость) информации, содержащейся в гиперпрямоугольнике. Это можно сделать путем формирования
двухмерной матрицы А(к п Лк.О, ) -ассоциированной с имеющейся /»-мерной матрицей Лк.о,^- Целесообразно, например, использовать матрицу А{ 1.
(р-1,0,1)-
ассоциированную с р -мерной матрицей А( ч п и .
Большое разнообразие отчетов можно получить путем вращения данных. Операция вращения представляет собой не что иное, как операцию транспонирования многомерной матрицы в соответствии с некоторой подстановкой, и определяется формулой (3). Важно иметь в виду, что при выполнении операции транспонирования имеющегося гиперпрямоугольника данных необходимо также соответствующим образом переформировать имеющиеся данные. Отчет формируется после выполнения операции вращения.
Многомерная модель метеорологических данных
Приведенные рекомендации были положены в основу создания MOLAP-системы для аналитической обработки метеорологических данных.
В настоящее время метеорологические данные доступны в виде отдельных таблиц с данными, как это имеет место, например, в http://gismeteo.ru или http://pogoda.by. Имеющиеся таблицы с данными относятся к определенной метеостанции. Это затрудняет выполнение параллельной обработки данных, т.е. одновременной обработки данных ряда метеостанций. Кроме того, данные обычно относятся к фиксированному интервалу времени (году, месяцу). Это затрудняет обработку данных за произвольные интервалы времени. Указанных недостатков лишена многомерная модель метеорологических данных.
Структура файла осей многомерной модели метеорологических данных представлена в
табл. 1.
Таблица 1. Структура файла осей многомерной модели метеорологических данных
Наименование оси Метеостанция Год Месяц День Час
Номер оси Ось 1 Ось 2 Ось 3 Ось 4 Ось 5
Позиция в файле 1 2 3 4 5
Таким образом, в качестве осей многомерной модели метеорологических данных нами выбраны метеостанция, год, месяц, день, час, так как они однозначно определяют данные. Файл осей данных выглядит следующим образом: Метеостанция,26850,...,26666, Год,1998,1999,...,2009,
Месяц,1,2,3,4,5,6,7,8,9,10,П,12,
День,1,2,3,...31,
Час,0,3,6,9,12,15,18,21,
Метеостанции определяются принятым во Всемирной метеорологической организации (ВМО) кодом. Так, 26850 — это Минск, 26666 — Витебск. Метеорологические данные собираются с периодичностью в 3 ч, начиная с 0 ч по Гринвичу, что отражено в оси "Час".
Структура файла данных многомерной модели метеорологических данных (многомерной базы данных) представлена в табл. 2.
Таблица 2. Структура файла данных многомерной модели метеорологических данных
Данные Позиция в файле
Скалярное значение мультииндекса 1
Температура воздуха 2
Атмосферное давление на уровне моря 3
Направление ветра 4
Скорость ветра 5
Относительная влажность воздуха 6
Количество облаков 7
Атмосферное давление на уровне станции 8
Величина барической тенденции 9
Атмосферное давление на уровне моря 10
Величина барической тенденции 11
Строки файла данных (на примере двух строк) выглядят следующим образом:
1,0,0,0,0,0,0,0,0
17266,18.5,1016.7,40,4,40.3,9999,9999,0.5
Первая строка со скалярным значением мультииндекса 1 (ему соответствует векторное значение мультииндекса 1 (р)=(1,1,...,1)) соответствует началу координат и указывает на наименования осей. По определению эта строка не содержит данных, поэтому они обозначены как нулевые. Значение 9999 означает, что данные отсутствуют. В частности, во второй строке отсутствуют данные о количестве облаков и атмосферном давлении на уровне моря.
Описанная многомерная модель метеорологических данных была реализована в виде программного средства. Импорт данных в многомерную модель организован из текстовых файлов, структура которых приведена в табл. 3.
Таблица 3. Структура файла данных для импорта в многомерную базу данных
Данные Позиция в файле
Номер (код) метеостанции 1
Дата наблюдения 2
Срок наблюдения 3
Форма (количество) облаков 4
Направление ветра 5
Скорость ветра 6
Температура 7
Относительная влажность 8
Атмосферное давление на уровне станции 9
Атмосферное давление на уровне моря 10
Величина барической тенденции 11
Были реализованы также такие процедуры, как изменение длин осей, удаление данных, формирование текстовых отчетов, вращение, просмотр осей. Программное средство подтвердила свою работоспособность.
MULTIDIMENSIONAL MODEL OF METEOROLOGICAL DATA FOR
ANALYTICAL PROCESSING
VS. MUKHA, A.N. KOZYACHIY
Abstract
The theoretical bases of multidimensional data model are given. OLAP-systems terminology with the terminology of multidimensional matrix theory is coordinated. The structure of multidimensional model of meteorological data is designed.
Литература
1. Сахаров АА. // Системы управления базами данных. 1996. № 3. С. 44-59.
2. CoddE.F., CoddS.B., Salley C.T. Providing OLAP to User-Analyst: An IT Mandate - E.F. Codd Associates. 1993.
3. Муха В. С. Анализ многомерных данных. Минск, 2004.
4. Соколов Н.П. Введение в теорию многомерных матриц. Киев, 1971.