СП.АРМНаши публикации → Аналитическая обработка данных в интерпретации расширенной реляционной модели RM/T

Аналитическая обработка данных в интерпретации расширенной реляционной модели RM/T

19.12.2008

Тимофеев Д.В.
Санкт-Петербургский институт информатики и автоматизации РАН
В данной работе рассматривается интеграция аналитической обработки данных в иерархиче-скую модель данных с горизонтальными связями, которая является интерпретацией расширен-ной реляционной модели RM/T.
1. Введение
В работе [1] была предложена интерпретация расширенной реляционной модели данных RM/T [2]. Согласно этой интерпретации молекулярные типы RM/T могут быть описаны структурой дерева с горизонтальными связями, дерево должно быть логическим, что позволит легко решать задачи переструктуризации дерева. Для такой структуры должна поддерживаться возможность представления горизонтальных связей в виде логических деревьев. Суррогаты должны служить для упорядочивания кортежей. Также было предложено использовать для описания этой интерпретации модели данных RM/T модель данных XML, наконец, было представлено краткое описание разработанной расширенной модели данных, основанной на модели данных RM/T, для описания которой используется модель данных XML.
В разработанной расширенной модели данных иерархическая модель данных в варианте XML наложена как вторичная поверх реляционной. Это позволяет сохранить строгость реляционной модели и привнести в неё дополнительные преимущества иерархической модели, а также использовать для описания модели как реляционную алгебру, так и языки и стандарты платформы XML: XML [3], Relax NG [4], Schematron [5], DOM [6], XPath [7, 8], XQuery [9].
Основными структурными компонентами разработанной модели данных являются понятие, объект, экземпляр объекта, код экземпляра объекта, отображение.
Объекты соответствуют типам элементов XML-документа, экземпляры объектов – отдельным элементам, а понятия – атрибутам элементов. С другой точки зрения объекты соответствуют реляционным отношениям, экземпляры объектов – кортежам отношений, а понятия – атрибутам отношений (рис. 1).


Рис 1. Структурные компоненты модели данных

Если с точки зрения XML позиция элемента это ключ естественный, то чисто с реляционной точки зрения он видится как ключ суррогатный. В разработанной модели данных этот ключ называется кодом экземпляра объекта.
Для описания связей понятий с объектами, а также связей между объектами вводится ещё одна структура – отображение. Отображение включает схему дерева объектов и дерево экземпляров. Дерево объектов соответствует схеме ХML-документа и может быть описано с помощью языка Relax NG [4], а дерево экземпляров – множеству ХML-документов, удовлетворяющих этой схеме.
Базу данных предлагается моделировать как совокупность деревьев информационных объектов с горизонтальными связями и со специфичным для каждого объекта набором понятий.
Для идентификации отображений, объектов и понятий предлагается использовать уникальные в пределах базы данных короткие коды. Относительно этих кодов определяются ограничения це-лостности и операции.
Так как задачей является построение логической структуры с возможностью переструктуризации, то и иерархические связи, и горизонтальные связи реализуются только на основе значений понятий, таким образом, все связи являются информационными.
В код экземпляра помимо первичного позиционного ключа объекта, включаются также внешние ключи, ссылающиеся на экземпляры-предки данного экземпляра (рис. 2).


Рис. 2. Реализация иерархических связей

Такой иерархический позиционный первичный ключ определяет уникальность экземпляра не только в пределах родительского экземпляра, но и в пределах любого экземпляра-предка. Используя метод редукции ключа, можно получить доступ к любому предку данного экземпляра объекта. Поэтому, несмотря на избыточность данных, такой ключ является наиболее предпочтительным, он позволяет реализовать и поддерживать иерархические связи автоматически.
Горизонтальные связи реализуются пользователем с помощью механизмов пользовательских потенциальных и внешних ключей объектов.
В модели данных предусматриваются ограничения целостности: ограничения типов и понятий, ограничения объектов и ограничения базы данных. Ограничения целостности могут быть описаны с помощью языка Schematron [5]. Благодаря выбранной структуре кодов экземпляров, правила целостности сущностей и правила ссылочной целостности для иерархических связей поддерживаются автоматически.
В модели данных предлагается поддерживать не только спецификационные операции, но и навигационные операции манипулирования данными, так как они предоставляют большую гибкость и свободу в реализации конкретных задач. Навигационные операции соответствуют низкоуровневым операциям модели DOM [6] с некоторыми расширениями. Спецификационные операции соответствуют реляционной алгебре с расширением операций на деревья объектов. Спецификационные операции могут быть описаны с помощью языка XQuery [9].
Для логической переструктуризации дерева предлагаются механизмы ссылочных и виртуальных объектов.
В данной работе рассматривается аналитическая обработка данных в разработанной модели данных. Аналитическая обработка связана с получением многомерного представления данных, такое представление в свою очередь может быть описано древовидной структурой, то есть, основной структурой предложенной модели данных, поэтому интеграция аналитической обработки в модель данных выглядит целесообразной.
Конкретной задачей работы является представление механизма интеграции аналитической обработки в разработанную модель данных.
2. Аналитическая обработка данных
Ещё с давних времён в обработке информации выделялись два уровня: оперативный и аналити-ческий. Аналитическая обработка заключается в группировании и обобщении (агрегации) дан-ных в любом виде, необходимом аналитику [10]. Группирование обычно выполняется в соот-ветствии со многими различными критериями.
Аналитическую обработку предлагается выполняться в рамках одного отображения. Смысл аналитической обработки состоит в установлении функциональной зависимости множества Y, получаемого из множества значений одного понятия D, от множеств X1, X2, …, Xn, получаемых из множеств значений других понятий A1, A2, … An: Y(X1, X2, …, Xn). Под функциональной за-висимостью Y(X1, X2, …, Xn) понимается, что одному элементу x1i, x2i, … xni соответствует один и только один элемент yi.
Предполагается, что можно одновременно построить несколько функций от одних и тех аргу-ментов: Y1(X1, X2, … Xn), Y2(X1, X2, … Xn), …, Ym(X1, X2, … Xn), задав их на значениях понятий D1, D2, …, Dm и понятий A1, A2, … An.
Переменные X1, X2, … Xn являются независимыми, а переменная Y – зависимой. Зависимость может быть представлена в виде многомерного массива или гиперкуба. Независимые перемен-ные составляют размерность массива и называются измерениями. Значения зависимых пере-менных содержатся в ячейках массива и называются мерами (фактами).
Агрегирование
Одно значение понятия A может быть связано с 0, 1 или несколькими значениями понятия D. При построении функциональной зависимости Y(X) значения A, не связанные ни с одним зна-чением из D, могут быть отброшены, а оставшиеся значения A, в простейшем случае, могут об-разовать множество X. В более сложном варианте X может быть агрегировано из A, типичный пример – округление, при котором несколько A округляются до одного и того же X. Таким об-разом, устанавливается функциональная зависимость X=X(A) (рис. 3).
Для значений X, связанных с несколькими значением из D, проводится агрегирование этих зна-чений D в один элемент Y. Наиболее часто употребляемые варианты агрегирования – просто количество связанных значений (Num), их сумма (Sum), минимальное из значений (Min), мак-симальное из значений (Max), их среднее арифметическое (Mid). Таким образом, устанавлива-ется функциональная зависимость Y=Y(D) (рис. 3).


Рис. 3. Агрегация

Часто возникает необходимость в дополнительном преобразовании значений до их агрегирова-ния. Для этого в данной работе предлагается задавать различные выражения аналитики.
В общем случае выражения аналитики могут использоваться:
для дополнительного преобразования значений А до их агрегирования в X;
для агрегирования значений А в X;
для дополнительного преобразования значений D до их агрегирования в Y.
В выражении можно пользоваться различными функциями, а также переменными, в частности переменной Z, содержащей значение текущего понятия.
Приведём два примера:
Если значения A представляют собой ширину, то каждое из них может быть умножено на дли-ну (однозначно определяемое значение некоторого понятия, связанного с A), затем произведе-ние может быть округлено до целочисленной величины и использовано в качестве X:
$int(Z * $$Get(”Length”))
Если значения из D находятся в строковом формате, то, для возможности их агрегации к сред-нему арифметическому, они предварительно должны быть преобразованы к числовому виду:
$select(Z=”ПЕРВАЯ”:1, Z=”ВТОРАЯ”:2, Z=”ТРЕТЬЯ”:3, 1:0)
Результаты
Как было отмечено ранее, зависимости функций Y1(X1, X2, …, Xn), Y2(X1, X2, …, Xn), …, Ym(X1, X2, …, Xn) могут быть представлены в виде многомерного массива. В данной работе предлага-ется записывать результаты аналитической обработки в массив вида:
Analytics(A1, x1, A2, x2, …, An, xn, D1) = y1
Analytics(A1, x1, A2, x2, …, An, xn, D2) = y2
Analytics(A1, x1, A2, x2, …, An, xn, Dm) = ym
Analytics(A1, x1, A2, x2, D1) = y1
Analytics(A1, x1, A2, x2, D2) = y2
Analytics(A1, x1, A2, x2, Dm) = ym
Analytics(A1, x1, D1) = y1
Analytics(A1, x1, D2) = y2
Analytics(A1, x1, Dm) = ym
Analytics(D1) = y1
Analytics(D2) = y2
Analytics(Dm) = ym
Здесь:
Аi – код понятия аналитического среза (измерения);
xi – значение понятия аналитического среза Аi;
Dj – код понятия анализируемого признака (меры);
yj – значение понятия анализируемого признака Dj.
Таким образом, в такой массив записываются не только значения, но и коды понятий.
Следует отметить, что если задать аналитические срезы как последовательность A1, A2, … An, то группировка будет производиться по следующим сочетаниям:
(A1, A2, … An)
(A1, A2, …)

(A1, A2)
(A1)
()
Соответственно, для каждого сочетания будут вычисляться анализируемые признаки.
Такой массив в свою очередь предлагается представлять в виде дерева:
В этом дереве A1, A2, … An являются кодами объектов, x1, x2, … xn – кодами экземпляров, D1, D2, … Dm – кодами понятий объектов, y1, y2, … ym – значениями понятий.
Таким образом, массив содержит как дерево объектов, так и дерево экземпляров, соответст-вующее этому дереву объектов.
Подобная структура называется физическим деревом, так как иерархическая организация дан-ных в ней представлена явно. Соответственно, предложенные ранее структуры определяют ло-гическое дерево, в котором иерархическая организация данных представляется с помощью ко-дов экземпляров.
По такому массиву может быть автоматически построено специальное отображение аналитики.
Рассмотрим пример.
Имеется объект АВ (поставки) с понятиями S (коды поставщиков), P (коды деталей), QTY (ко-личество поставок) (рис. 4).


Рис 4. Пример аналитической обработки

Если установить первый аналитический срез по понятию S, второй – по понятию P, в качестве анализируемого признака задать понятие QTY и выбрать функцию агрегирования Sum, то мож-но будет ответить на следующие запросы:
определить общее количество поставок по поставщикам и деталям;
определить общее количество поставок по поставщикам;
определить общее количество поставок.
В результате выполнения аналитического запроса будет создан следующий массив:
Analytics(”S”,”S1″,”P”,”P1″,”QTY”)=300
Analytics(”S”,”S1″,”P”,”P2″,”QTY”)=200
Analytics(”S”,”S1″,”QTY”)=500
Analytics(”S”,”S2″,”P”,”P1″,”QTY”)=300
Analytics(”S”,”S2″,”P”,”P2″,”QTY”)=400
Analytics(”S”,”S2″,”QTY”)=700
Analytics(”S”,”S3″,”P”,”P2″,”QTY”)=200
Analytics(”S”,”S3″,”QTY”)=200
Analytics(”S”,”S4″,”P”,”P2″,”QTY”)=200
Analytics(”S”,”S4″,”QTY”)=200
Analytics(”QTY”)=1600
Этот массив может быть представлен в виде отображения (рис. 5).


Рис. 5. Отображение аналитики

В этом отображении объекты А1, А2 будут иметь тип массив. Такой объект является виртуаль-ным [11], так как он используется для представления данных, не существующих в базе данных. Операция для получения следующего кода экземпляра и значений понятия экземпляров вирту-ального объекта создаётся автоматически.
С помощью XQuery этот аналитический запрос может быть описан следующим образом:
let $view := doc(”view.xml”)
return
{
for $s in distinct-values($view//ab/@s)
order by $s
return
{
for $p in distinct-values($view//ab[@s = $s]/@p)
order by $p
return
}
}
В примере аналитические срезы и анализируемый признак заданы на понятиях одного объекта, однако в общем случае они могут задаваться на понятиях различных объектов, находящихся на различных уровнях иерархии.
3. Реализация
Предложенная модель данных является основой разработанного инструмента для построения и использования информационных систем qWORD-XML [12]. В инструменте аналитическую об-работку предлагается выполнять в рамках отображения (экранной формы). Отображение поми-мо всего прочего предоставляет собой визуальное средство для аналитической обработки дан-ных и для предоставления результатов этой обработки. Дополнительно предлагается возмож-ность предоставления результатов аналитической обработки в виде перекрёстной таблицы или в виде различных диаграмм.
Рассмотрим, реализацию описанного выше аналитического запроса. Исходные данные пред-ставлены в отображении на рис. 6.


Рис. 6. Отображение с исходными данных

Аналитический запрос задаётся в колонках дерева объектов (рис. 7).


Рис. 7. Аналитический запрос

Перед выполнением аналитической обработки можно организовать предварительный поиск данных по объектам и значениям их понятий. Условия поиска задаются в колонке Условия.
Колонка A предназначена для пометки понятий, значения которых будут использованы в каче-стве аналитических срезов. Возможно задание сразу нескольких аналитических срезов (A1, A2 и т.д.). В данном случае первый срез A1 задаётся по кодам поставщиков (s), а второй A2 – по ко-дам деталей (p).
Колонка D предназначена для пометки понятий, значения которых будут использованы в каче-стве анализируемых признаков. В данном случае маркером D помечено понятие количество по-ставок (qty).
В колонках Num, Sum, Min, Max, Mid с помощью маркера Y выбирается, какие агрегирующие функции использовать – просто количество значений, их сумма, минимальное из значений, максимальное из значений, их среднее арифметическое. В данном случае подсчитывается сум-ма (Sum).
Колонка Аналитика предназначается для записи выражений аналитики.
Результаты расчёта аналитики записываются в многомерный массив (глобал). По такому мас-сиву может быть автоматически построено специальное отображение аналитики (рис. 8).


Рис. 8. Отображение с результатами аналитики

Объекты A1, A2 в отображении имеют тип массив, т.е. ссылаются на физическое дерево.
Кроме того, результаты расчёта аналитики могут быть представлены в виде перекрёстной таб-лицы (рис. 8) или в виде различных графических изображений (рис. 9).


Рис. 8. Перекрёстная таблица Рис. 9. Столбиковая диаграмма

4. Заключение
С помощью предложенного механизма физического дерева, представляющего результаты аналитической обработки и совмещающего дерево объектов и дерево экземпляров в рамках единой структуры хранения, решается задача интеграции аналитической обработки данных в предложенную модель – по такому массиву может быть автоматически построено специальное отображение с результатами расчёта аналитики.
Благодаря реализованной модели данных, а также унификации хранения, обработки и пред-ставления данных, инструмент qWORD-XML представляет собой удобную среду для быстрой и простой разработки, простого сопровождения и использования информационных систем.
С помощью инструмента qWORD-XML были разработаны Автоматизированная информацион-но-аналитическая система по проблемам инвалидности и инвалидов (АИС МСЭ) и Информаци-онно-аналитическая система органов социальной защиты населения субъекта федерации (АИС «Соцзащита»).
Литература:

1 Тимофеев Д.В. Использование платформы XML для описания расширенной реляционной модели данных RM/T. / В сб. науч. трудов Информационные технологии и системы (управление, экономика, транспорт) под ред. Истомина Е.П, Марлея В.Е., Скобелевой И.П. – СПб.: ООО «Андреевский издательский дом», 2006. – с. 137-145.
2 Кодд Э.Ф. Расширение реляционной модели для лучшего отражения семантики. http://www.osp.ru/dbms/1996/05/163.htm
3 Extensible Markup Language (XML) 1.0. http://www.w3.org/TR/REC-xml/
4 Relax NG. http://relaxng.org/
5 The Schematron. http://xml.ascc.net/resource/schematron/
6 Document Object Model (DOM). http://www.w3.org/DOM/
7 XML Path Language (XPath) Version 1.0. http://www.w3.org/TR/xpath
8 XML Path Language (XPath) 2.0. http://www.w3.org/TR/xpath20/
9 XQuery 1.0: An XML Query Language. http://www.w3.org/TR/xquery/
10 Баргесян А.А. и др. Методы и модели анализа данных: OLAP и Data Mining. – СПб.: БХВ-Петербург, 2004. – 336 с.
11 Тимофеев Д.В. Реализация логической переструктуризации в интерпретации расширенной реляционной модели данных RM/T
12 Долженков А., Тимофеев Д. Семантический инструмент построения баз данных. «Открытые системы», №01/2006

Прием комментариев прекращен.