Анализ корректности формирования представления данных

МАТЕМАТИКА

Вестн. Ом. ун-та. 2010. №4. С. 16-19.

УДК 519.72 С. В. Зыкин

Омский филиал Института математики им. С.А. Соболева СО РАН, Омский государственный университет им. Ф. М. Достоевского

А.Н. Полуянов

Омский филиал Института математики им. С.Л. Соболева СО РАН

АНАЛИЗ КОРРЕКТНОСТИ ФОРМИРОВАНИЯ ПРЕДСТАВЛЕНИЯ ДАННЫХ*

Рассматривается задача проверки корректности формирования многомерного представления данных. Для этого предлагается алгоритм предварительного анализа промежуточного представления, который позволяет сократить суммарные вычислительные затраты при проверке свойства соединения отношений базы данных без потери информации. Приведено доказательство корректности работы алгоритма.

Ключевые слова: базы данных, многомерные представления, гиперкуб, вычислительные затраты.

1. Введение

Проблема формирования различных представлений данных является актуальной в задачах анализа данных: регрессионного, кластерного, дискриминантного и т. д. Традиционным способом решения этой проблемы является построение гиперкубического (многомерного) представления данных [1-3], используемое в технологии оперативной аналитической обработки данных OLAP (online analytical processing). Существуют различные подходы к реализации технологии OLAP:

• технология MOLAP - исходное представление данных хранится (дополняется, модифицируется) в виде многомерных кубов данных;

• технология ROLAP - исходное представление данных хранится в виде реляционной базы данных, а многомерное представление формируется динамически;

• технология HOLAP - исходное представление использует реляционные таблицы для хранения базовых данных и многомерные таблицы для агрегатов.

Предлагаемый в данной статье подход наиболее близок к технологии ROLAP. Однако имеется довольно существенное отличие: для реализации этой технологии требуется преобразование схемы базы данных (БД) к иерархическому виду («звезда» или «снежинка»), при этом возможно дублирование компонентов схемы и расщепление схемы на подсхемы. Кроме того, предполагается, что атрибуты корневых отношений будут являться мерами (значениями в рабочей области гиперкуба), а атрибуты других отношений будут использованы для формирования измерений (координат гиперкуба). Такое требование нарушает все возможные требования к схеме базы данных: неизбыточность, непротиворечивость, и самое главное, независимость данных.

* Работа выполнена по проекту РФФИ № 0907-00059-а

© С.В. Зыкин, А.Н. Полуянов, 2010

В наших исследованиях за основу принимается следующий принцип: схема исходной базы данных должна быть неизменной, а все сложности формирования гиперкубических представлений должны решаться алгоритмическим способом. Это снимает ограничения на структуру гиперкуба и не требует преобразования схемы исходной БД. Кроме того, предлагается отказ от постоянного хранения и сопровождения склада данных и формирование представлений непосредственно из баз данных на основе формального определения моделей данных и универсальных алгоритмов преобразования данных.

Общая последовательность преобразований из реляционного представления в гиперкубическое выглядит следующим образом:

=> 2\/=> ОС,

где - реляционное представление

данных, Тк1 - промежуточное представление данных в виде таблицы соединений, ОС - гиперкубическое представление данных.

Для формирования ОС использование промежуточного представления данных Т1 [4] позволяет достаточно эффективно управлять содержимым гиперкуба. Кроме того, Т1 существует и единственно для любой исходной БД.

2. Формирование иредсталений данных

Пусть Л, 2?з, • • •, Ик - произвольное множество отношений реляционной БД.

Определение 1 (существующего

МЯк, где IX - операция естественного соединения [5], будем называть существующим соединением, если для совокупности схем Яг, г=1,...,/с, существует хотя бы одна перестановка VI, Уг, Ук схем Л, К-2, Ик такая, что

г\ Ц+1 ф 0^=1,...,к-1.

Замечание: Предложенное в определении ограничение на схемы К1, Ия, ..., Ик является более слабым, чем ограничение квазистягиваемости пересечений [6], которое используется для формирования полусоединений.

Таблицей соединения Т%1 будем называть таблицу, которая определена на множестве атрибутов А1, Ая, ..., Ап, и по-

лучена объединением всех возможных существующих естественных соединений отношений Л, #2, ..., 11к исходной реляционной БД. Для каждого кортежа и каждого существующего соединения формируется кортеж Тк1 такой, что *А] = и[АЛ, если атрибут А] принадлежит соединению, и </Дг/ = етр в противном случае. При этом пустое значение етр не равно любому другому значению, в том числе неопределенному и пустому. Каждому кортежу таблицы соединения ставится в соответствие битовый вектор Щ) = (ЬЮ, ъю,1ф)), где Щ = 1, если реализация /7 схемы Яу участвует в текущем соединении, и 1](Ь) = О в противном случае (l<^< к).

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

Кратко рассмотрим принципы формирования результирующего гиперкуби-ческого представления данных ОС. Для этого будем интерпретировать Т%1 и ОС (в двумерном случае) как реляционные отношения. Пусть X - множество атрибутов из Тк1 без изменения входящих в результирующее представление, У - множество атрибутов из Т.У, значения которых становятся именами атрибутов в результирующем представлении. Значения атрибутов X и У становятся значениями измерений. Пусть Z - множество атрибутов из Тк1, значения которых, дополненные пустыми значениями, располагаются в рабочей области ОС. На множествах X, У, Z накладываются естественные ограничения: Хп 7 = 0,Хп 2 = 0, У Г) г = 0.

Схема ОС строится из Т%1 по следующему правилу:

Бсщт^ =! х, у, г; => Бещос) =

= { X, Оот(У) х &} }, где БсИ. - схема отношения, Бот - множество допустимых значений атрибутов, х - декартово произведение.

Для того чтобы в рабочей области ОС представлении не появилось лишних значений [8], необходимо, чтобы множество отношений Л, Яг, ..., удовлетворяло свойству соединения без потери информации (СБПИ) [5].

18

3. Аназиз корректности представлений данных

Для полноты изложения рассмотрим правило проверки свойства СБПИ [5]. Пусть задано множество функциональных зависимостей Р.

Шаг 1. Строим начальную таблицу, содержащую к строк и п столбцов. На пересечении г-ой строки и 7-ого столбца ставим символ а/, если атрибут А] принадлежит отношению R^, иначе - Ьг/.

Шаг 2. Выполняем очередную итерацию - последовательно просматриваем все зависимости из Р. Для текущей зависимости Х-^У<ЕР выбираем строки из таблицы, которые совпадают по атрибутам X (совпадать могут символы а/ и Ы]). Если для какой-либо строки атрибут А/*, принадлежащий У, имеет значение а/*, то значение Ьу* в выделенных строках заменяется на Щк Если для всех строк атрибут А]*, принадлежащий У, имеет различные значения Ьу, то значения Ьу* в выделенных строках отождествляются (заменяются на одно какое-либо значение Ьг*у* из выделенных строк). Если после очередной итерации появилась строка, состоящая из одних а/, то декомпозиция р обладает свойством соединения без потерь информации. Если после очередной итерации не было сделано ни одной подстановки и в таблице отсутствует строка, состоящая из а/, то декомпозиция не обладает свойством соединения без потерь информации. Конец проверки.

Сформулируем и докажем достаточно простое, но важное утверждение.

Теорема 1. Если множество отношений R={Rl, 2?з, • • •, 11к} не образует существующее соединение, то оно не обладает свойством СБПИ на множестве зависимостей Р.

Доказательство. Отсутствие существующего соединения для отношений Л гарантирует, что найдется множество отношений R'={R'l, Я'з,..., К'р/, для которого выполнено: RЬR, то есть разность

R"=R—R'^0, и Я"г1Я-0. Тогда строки в таблице проверки свойства СБПИ строки, соответствующие И', и строки, соответствующие Я", не будут иметь совпадающих значений. Следовательно, выполнить подстановку в И" за счет строк из И', и наоборот, будет невозможно. А поскольку других строк в таблице нет, то множество

___________________С.В. Зыкин, А.Н. Полуянов

отношений R не обладает свойством СБПИ.

Рассмотрим алгоритм проверки существования соединения.

Вход: множество отношений R, mas -массив с номерами отношений, для которых осуществляется проверка существования соединения. Считаем, что элементы массива нумеруются с 1. к - число элементов массива.

Выход: flag_exist = 1 - если соединение существует, flag_exist = О если соединение не существует.

Алгоритм:

gran = 2;

for

{

for

{

if

{

temp = mas[ gran ]; mas[ gran ] = mas[ j ]; mas[ j ] = temp; gran = gran + 1;

}

}

if

{

flag_exist = 1;

break;

}

elseif

{

flag_exist = 0;

break;

}

}

if (flag_exist == 1) ргт1Ц“Соединение существует”);

else ргт1Ц“Соединение не существует”);

Теорема 2. На выходе алгоритма flag_exist = 1 тогда и только тогда, когда множество отношений R = {Rl, R2Rk} образует существующее соединение.

Доказательство. Докажем, что если на выходе алгоритма flag_exist = 1, то существует перестановка, указанная в определении. Каждый раз при увеличении gratl В алгоритме Rmasforan/ ИМвеТ Не пустое пересечение С Rmas[l] Rmas[2] U ••• U Rmas[gran-1]. ТаКИМ образом, вСЛИ На ВЫходе алгоритма flag_exist = 1, то в массиве mas содержатся номера всех отношений из R, и эти номера задают пере-

становку, которая удовлетворяет определению.

2. Если на выходе алгоритма fla.g_ex.ist = О, то на какой-то итерации цикла алгоритма for (i = 1; i < k; i++) было выполнено условие gran = i+1, из алгоритма следует что в этом случае условие (Rmas[i] П Rmastf}) Ф 0 Не ВЫПОЛНИЛОСЬ V U 1 < i < gran, V J: gran < j < k, поскольку в циклах была проверена истинность условия (Rmas[iJ П Rmastf]) Ф 0 ДЛЯ СХвМ Rmaspi 1 < i < gran, Rmasui gran < j < k и при этом gran не увеличилось, а это в свою очередь означает, что набор отношений Ri, R2, ..., Rk можно разбить на два множества

А = Rmas[lJ U Rmas[2J (->* • •• Rmas[gran-1],

В Rmas[gran] ^ J^mas[gran+1]^ • • • ^ Rmas[k],

такие, что A n В =0. Докажем, что перестановки, удовлетворяющей определению, не существует. Предположим, что перестановка существует. Возможны два варианта:

Vi е А. Найдем в перестановке первое по порядку отношение, принадлежащее В. Пусть это будет Vs. По определению [Vl V2 U ... Vs-l) n Vg№. Но т.к. Vi V2 ... и Vs-ieA, VseB, получаем противоречие с тем, что А гл В = 0.

Vi е В. Найдем в перестановке первое по порядку отношение, принадлежащее А. Пусть это будет Vs. По определению (Vl V2VJ ... VJ Vs-l) n Vs Ф 0. Но Т.К. Vl U V2U ... U Vs-l € B, Vs € А, получаем противоречие с тем, что А гл В = 0.

Таким образом, доказано, что алгоритм корректно проверяет существование соединения.

Следствие: Если существует одна перестановка из определения, то существует как минимум к различных перестановок. Это следует из того, что перестановка может начинаться с любого из к отношений.

С математической точки зрения разработанный алгоритм является аналогом алгоритма поиска в ширину на графах [9]. Однако алгоритм проверки существования соединения отношений существенно отличается от алгоритма поиска в ширину тем, что на вход алгоритма подается не полностью построенный граф, а только его вершины, при работе алгоритма строятся только те ребра, которые необходи-

мы для проверки свойства существования соединения отношений.

4. Заключение

Анализ рассмотренного алгоритма показал, что самая трудоемкая операция -проверка пересечений. Она в алгоритме выполняется к(к-1)/2 раз. Аналогичные по сложности операции при проверке свойства СБПИ выполняются примерно пк(1+к) раз (учитывалось, что минимальное покрытие множества функциональных зависимостей [5] по мощности примерно равно количеству отношений). При проверке свойства СБПИ могут использоваться многозначные зависимости [5] и зависимости соединений [6]. Поскольку п не менее чем на порядок больше, чем к, и примерно 70 % комбинаций отношений на схеме БД не образуют существующее соединение, то применение рассмотренного алгоритма перед проверкой свойства СБПИ дает существенный выигрыш в результирующем количестве операций при формировании GC.

ЛИТЕРАТУРА

[1] Pedersen T. B. A foundation for capturing and querying complex multidimensional data // Information Systems. 2001. V. 26. № 5. P. 383-423.

[2] Giorgini P. Goal-oriented requirement analysis for data warehouse design // In: Proceedings of the 8th ACM International Workshop on Data Warehousing and OLAP: DOLAP'05. 2005. P. 47-56.

[3] Li H.-G., Yu H., Agrawal D., Abbadi A.E. Progressive ranking of range aggregates // Data & Knowledge Engineering. 2007. V. 63. № 1. P. 4-25.

[4] Зыкин С. В. Формирование гиперкубического представления реляционной базы данных // Программирование. 2006. № 6. С. 71-80.

[5] Ульман Дж. Основы систем баз данных. М. : Финансы и статистика, 1983. 334 с.

[6] Мейер Д. Теория реляционных баз данных. М. : Мир, 1987. 608 с.

[7] Полуянов А. Н. Автоматизация формирования гиперкубического представления данных // Системы управления и информационные технологии. 2008. Т. 2. С. 289-293.

[8] Miller L. Data Warehouse Modeler: A CASE Tool for Warehouse Design // Thirty-First Annual Hawaii International Conference on System Sciences. 1998. V. 6. P. 42-48.

[9] Альфред А. Структуры данных и алгоритмы. М. : Вильямс, 2000. 384 с.