Метод вертикальной кластеризации отношений реляционных баз данных

УДК 004.65 НГО ТХАНЬ ХУНГ

МЕТОД ВЕРТИКАЛЬНОЙ КЛАСТЕРИЗАЦИИ ОТНОШЕНИЙ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ

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

Ключевые слова вертикальная кластеризация отношений, целевая функция, оценочный критерий, вероятность кэш-попадания, эвристический алгоритм.

Введение. Под вертикальной кластеризацией некоторого отношения мы понимаем декомпозицию без потерь его на два или более отношений, которые содержат непересекающиеся, за исключением ключевых атрибутов, подмножества атрибутов исходного отношения. В случае, если некоторое подмножество атрибутов чаше используются в запросах, чем подмножество остальных атрибутов, то эта техника может в среднем уменьшить объем данных, которые должны быть обработаны при заданном множестве запросов. В результате кластеризация приводит к повышению производительности кэш-системы в отдельности и всей системы в целом.

Как указано в [1], многие алгоритмы кластеризации были разработаны на основе статистической и образной классификации и анализа. Они группируют данные, используя различные критерии. Наиболее часто используемым критерием является квадратическая ошибка. Недостаток этих алгоритмов заключается в их трудоемкости и малоэффективности. Кроме того, их оценочные критерии не связаны ни с каким показателем системного исполнения, что вызывает некоторое недоверие к полученному результату. В [2] авторы разработали комплексный метод, в котором сначала выбираются потенциальные схемы кластеризации (варианты декомпозиции отношения). Затем эти схемы анализируются устройством оптимизации, построенным в данной системе управления базами данных (СУБД). После чего выбирается наилучшая схема для проведения кластеризации. Этот метод представляет большой интерес, но он слишком сложен для реализации. Кроме того, реализация устройства оптимизации существенно зависит от текущей настройки СУБД и от самого алгоритма оптимизации. Постановка задачи. Принимая во внимание то, что существует тесная связь между кластеризацией и производительностью кэш-системы, необходимо сформулировать оценочный критерий для вертикальной кластеризации отношений вероятности кэш-попадания и разработать эффективный алгоритм поиска оптимальной схемы декомпозиции по этому критерию. Как и в большинстве алгоритмов в этой области, рассмотренных в [1], в качестве входных данных принимается матрица вероятностей использования атрибутов (Attribute Usage Matrix). Дополнительными входными данными

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

Спецификации кэш-системы и системы баз данных. Рассматриваем некоторую базу данных (БД), отношения которой уже находятся в 5-й форме нормализации (5НФ) [3]. Пусть R - некоторое отношение, А - множество его атрибутов, К А - единственный потенциальный ключ, который является первичным ключом. Пусть А \ К и, следовательно, отношение не является полностью ключевым.

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

Поэтому запрос может быть определен как тройка (R,А ,Ю ), где R -

некоторое отношение, А - подмножество запрошенных атрибутов, Ю -номер кортежа. Допустим, что выбор кортежей не зависит от выбора отношения, от выбора подмножества атрибутов и подчиняется равномерному закону. Пусть имеется Q различных запросов к базе данных. Статистическая информация о вероятностях их выполнения описывается значениями

Р » Р2 »к , PQ ,

где р{ - вероятность вызова запроса qi;

Р + Р2 + к + РQ = 1 , 0 Рг 1, 1 І £ .

Относительно рассматриваемого отношения вероятности использования атрибутов описаны в табл.1, где величина иь- принимает значение

Р1, если запрос qi требует атрибут а}., и ноль, в противном случае.

Таблица 1

Матрица вероятностей использования атрибутов

Атрибуты Запросы а1 а2 ам

ии и12 и1М

q2 и21 и22 и2 М

qQ иб1 иб 2 идм

Пусть размер кэш-памяти для данного отношения ограничен длиной L байтов. Запись и чтение из кэша выполняются по кортежам. Кортеж загружается в кэш целиком, если, по крайней мере, один из его атрибутов востребован. В начале работы кэш-память пуста. Во время работы она заполняется кортежами. Для текущего запроса, если копия требуемого кортежа присутствует в кэше, тогда обращение к внешней памяти не происхо-

дит. В противном случае кортеж извлекается с диска, и его копия размещается в часть кэш-памяти, выделенная для данного отношения (если кэш-память не выделяется для данного отношения, то ее кортежи не будут кэшироваться вообще). В первом случае, мы говорим, что было кэш-попадание, а во втором - кэш-промах. После того как кэш-память заполняется, новый кортеж должен вытеснить один из имеющихся в нем кортежей. Так как период, пока кэш-память не заполнена, является переходным, то целевую функцию построим без учета этого периода. Будем считать, что стратегия замены, реализуемая в данной СУБД, является рандомизацией, т.е. выбор позиции, где хранится замещаемый при очередном промахе кортеж, подчиняется равномерному закону распределения вероятностей.

Описанные предположения сделаны в результате дедуктивного анализа литературы [1], [2], [3], [4]. Заметим, что эти предположения, за исключением сведения о вероятностях использования атрибутов, сформулированы только с целью математических выводов и испытания достоверности предполагаемого оценочного критерия, а не для требования к области его применения.

Метод реализации вертикальной кластеризации отношений.

Рассмотрим вертикальную кластеризацию отношения R на два отношения

R1 и R2. Обозначим множества атрибутов этих отношений А, А1, А2 соответственно. Кластеризация реализуется так, что верны следующие соотношения:

Используя метод имитации вертикальной кластеризации, создадим для отношений R1 и R2 постоянные таблицы Т1 и Т2 соответственно. При этом номера кортежей таблицы Т сохраняются для соответствующих кортежей подтаблиц Т, Т2. Запросы, обращающиеся к исходному отношению R, будут переписаны, чтобы реализовать обращения к отношениям R и R. Если допустить, что любой запрос содержит, по крайней мере, один из неключевых атрибутов, тогда некоторый исходный запрос (КА ,Ю ) заменяется только по одному из трех вариантов:

1) одним запросом к отношению R1, (R1 ,А ,Ю ), если все атрибуты исходного запроса присутствуют в А1, т.е. (А А1);

2) одним запросом к отношению R2, (R2,А ,Ю ) , если все атрибуты исходного запроса присутствуют в А2, т.е. (А А2);

3) двумя запросами (R ,А А1 ,Ю ) и (R2 ,А (А 2 \К ) ,Ю ) одновременно в тех случаях, когда не ключевые атрибуты подмножества А частично присутствуют и в А1 , и в А2 , т.е.

1(4 А) ) ((4 А) К).

Кэш-память, отводимая для кэширования R, теперь разделена на две части для кэширования отношений R1 и R2. Размеры этих частей являются параметрами кластеризации.

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

и - {и.} - матрица вероятностей использования атрибутов отношения R;

N - число кортежей отношений R, R1, R2;

М - число атрибутов отношения R;

Р - вероятность того, что к СУБД обращается ¡-й запрос,

/- 1,2,к, 0 ;

А1 А - подмножества атрибутов, которые востребованы ¡-ым запросом;

1. - длина >го атрибута отношения R, у - 1,2, к,М ;

4 42 - длины кортежей соответствующих отношений R, R1

, т;

LR, LR1, LR2 - размеры частей кэш-памяти, отведенных для кэширования отношений т , т, R2, где LR1 + LR2 - LR ;

NR, NR1, NR2 - количества позиций кэш-памяти, где хранятся кортежи соответствующих отношений R, R1, R2 ;

оператор [ ] - оператор получения целой части вещественного

числа.

Вероятность кэш-попадания для кэширования исходного отношения. Обращение к кэш-памяти будет успешным (кэш-попадание) только в

том случае, если востребованный кортеж является одним из NR кортежей, копия которых уже присутствуют в кэше. Так как выборы кортежей подчиняются равномерному закону и не зависят друг от друга, то вероятность кэш-попадания одна и та же для каждого запроса и равна:

N

PR - — ,

R N

где - тт N, — - тт М, -----------------------R—

1К I.

V г.а . А 7 .

Вероятность кэш-попадания для кэширования проекций-отношений. Обозначим случаи, когда исходный запрос заменен по первому, второму, третьему вариантам событиями С, С1, С2 соответственно; случай,

когда поиск исходного требуемого кортежа в кэше завершается успешно событием В. Согласно формуле полной вероятности вероятность кэш-попадания оценивается как:

3

Р^, -

R1R2

v= 1

Для v=1 исходный запрос (ДЛ ,ID) заменяется запросом

(R1 ,Л ,ID ). Поэтому поиск кортежа, определяемого двойкой (R,ID) , завершится успешно тогда и только тогда, когда поиск кортежа, определяемого двойкой (R1 ,ID), завершится успешно. Аналогично случаю, рассмотренному в (2), имеем следующее выражение:

p

где NRi = min N, —^R1 = min N, ——— .

lR1 lj

V J:a  A

J j i

Из условия замены исходного запроса очевидно следующее выра-

Pt .

V i: Д . A v у

г 1

Для v = 2, аналогично предыдущему обсуждению, получим:

p

жение:

p

где Nr2 = min N, = min N, ——— ;

lR 2 lJ

V i: a A i2

Р

" гЛ г A2

В случае v = 3 исходный запрос (R,Л ,ID ) заменяется двумя

запросами (R1 ,Л A1 ,ID ) и (R ,Л (A 2 \K ) ,ID ) одновременно, и

поиск кортежа ( R, ID) завершится успешно тогда и только тогда, когда

оба поиска кортежей ( R1, ID) и ( R2, ID) завершатся успешно одновременно. Таким образом, верно следующее:

Р ( B 1 C )= Р ( BR1) Р ( BR 2 )= N N;

р

Из свойства полной группы вероятность наступления события Сз вычисляется как:

Р

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

Р^ - N Р

Обозначим:

Р

а - —-—-; Ь - —-—-; с - —L-г^-

N N N2

Формулу (9) можно переписать следующим образом:

- а NR1 + Ь NR 2 + С NR1 NR 2 .

Целевая функция для поиска наилучшей схемы кластеризации отношений. Для проведения кластеризации необходимо решить следующую задачу (будем называть задачей (*)):

Пусть даны: множество атрибутов А, количество кортежей N,

матрица и, длины атрибутов I. и размер кэш-памяти LR .

Найти наилучшую схему для проведения кластеризации данного отношения.

Любая схема кластеризации полностью идентифицируется четырьмя параметрами А1, А2,NR1, NR2. Качество схем будем оценивать формулой (11). Чем больше значение оценочного критерия (11), тем выше производительность кэш-системы. Поэтому наилучшая схема кластеризации является решением задачи дискретного программирования (в дальнейшем будем называть ее задачей (**)):

Р

С ограничениями:

А1 - А А , А - А2 К, \А\> |К|;

NR1 +^1 NR 2 ^ 2 ^ ;

N1 0, N 2 0;

NR1, NR2 - целые.

Так как предлагаемый оценочный критерий не трудоемок для вычисления, задача (**) может быть решена с помощью алгоритма полного перебора для входных данных с небольшой размерностью. При больших

значениях величины М и интервалов варьирования NR1, NR2 необходимо разработать более эффективный алгоритм.

Алгоритм поиска наилучшей схемы полным перебором. Задачу дискретного программирования (**) можно решить методом полного

перебора [5]. Сначала перебираем все допустимые пары (A1, A2) по условию (13), потом для каждого из найденных вариантов перебираем все допустимые пары (NR1,Nr2) по условиям (14), (15) и (16). Заметим, что при фиксации значения A1, что следует из условия (13), значение A2 автоматически фиксируется. По (13) имеем (2M K - l) допустимых пар значений

( A1 , A2 ) . При фиксации значения NR1 , значение NR2 , которое обеспечивает максимум целевой функции (12), должно быть определено выражением

Nr2 = min N, —R - Nri1ri

lR 2

Lr R +1

Значит после фиксации пары (A1, A2) имеем min N, —

lR1

допустимых пар (NR1,NR2), потенциально обеспечивающих максимум (4). Таким образом, алгоритм полного перебора должен реализовать не менее

(2M- K - i) min N, — + 1 вычислений формулы (12).

lR

Например, рассмотрим отношение R с шестью атрибутами, где a1

- ключевой атрибут. Длины атрибутов - 30, 37, 51, 21, 46, 11 (байт). Матрица вероятностей использования атрибутов (табл.2).

Таблица 2

Пример матрицы вероятностей использования атрибутов

Атрибуты Запросы a1 a2 a3 a4 a5 a6 6

q .194 0 .194 .194 0 .194

42 .089 .089 0 0 0 .089

q .281 .281 0 0 .281 0

Чл .157 .157 0 0 .157 .157

Ч .279 0 0 0 .279 .279

Размер кэш-памяти, выделенной для данного отношения, равен 2°°° (байт). Число кортежей равно 2°°.

Для этого примера наилучшая схема кластеров:

А1 - {а1,а2,а5,а6}, А2 - {а1,а3,а4} , NR1 - 16, NR2 - 0 .

С этой схемой вероятность кэш-попадания, рассчитанная по формуле (12), равна 0.06448, и она возросла на 1.29 (раз) относительно случаю без кластеризации, вероятность кэш-попадания при котором равна 0.05. Программное моделирование предложенного метода кластеризации. Испытание достоверности предлагаемого оценочного критерия было выполнено с помощью программного моделирования. Данное программное средство реализовано на Delphi и предоставляет следующие возможности:

- генерировать случайные длины атрибутов рассматриваемого отношения и матрицу вероятностей их использования;

- решить задачу (**) полным перебором;

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

- моделировать работу кэш-системы с возможностью выбора той или иной стратегии замещения (было реализовано 4 стратегий: рандомизация, Clock, LRU и LFU [6]);

- моделировать системы кластеризации отношений, как описано

выше;

- вычислить средние значения экспериментальных кэш-попаданий и их дисперсию.

Для каждого набора входных данных для задачи (*) производили поиск наилучшей схемы алгоритмом полного перебора. Статистическим моделированием были получены производительности кэш-системы при 1000 потоках запросов, длина каждого потока равна 5000 запросов. Во всех этих случаях относительная ошибка экспериментального среднего от теоретического значения по формуле (13) составила менее 2.5%. При моделировании других стратегий был получен аналогичный результат.

Эвристический алгоритм, аппроксимирующий решения задачи (**). Исследуя свойства решений задачи (**), полученных алгоритмом полного перебора, было замечено, что почти во всех случаях либо

NRj = min N, ^ , либо K2 = min N, -LL , т.е. почти вся часть кэш-

lRj lR 2

памяти, отведенная для исходного отношения, передается на кэширование только одной из проекций-отношений. Из данного факта мы предполагаем

кэшировать только отношение Rj из схемы кластеризации, а другое отношение совсем не кэшируем. Таким образом, будем аппроксимировать решение задачи (**) решением задачи (***):

P

Vi:AiCA1 j " j-.Oj Aj

С ограничениями:

Aj = A2 A , Aj = A K, N > \K\;

lr

Nri = min N, -R ;

1R1

Nr2 = 0 .

Эвристический алгоритм находит множество А1 путём последовательного отбора его атрибутов. Вначале А1 = A. На каждой итерации будет удален из подмножества А1 атрибут aj K с длиной ^, оценка при-

надлежности к подмножеству А1 которого принимает наименьшее значение. Эта оценка вычисляется по формуле:

PUi = ,,.„А Pil1'

t.CI. . I

После удаления атрибута aj будут обнуляться все элементы i-й строки матрицы U, где utj > 0. На данной же итерации из множества А1

удаляются также все атрибуты a А1 (a K) , где ^г = 0. Полу-

v ' " i:a А .

r г

ченное при данной итерации разбиение (А,, (А \ А,) K) является одним из интересуемых вариантов разбиения. Итерационный процесс повторяется до тех пор, пока |А, | > |К|. Вычисляется оценочный критерий (17) для разбиения (А, K) и для всех разбиений, полученных во всех итерациях. Наилучшая схема разбиения из них является решением задачи (***).

Таким образом, данный алгоритм реализует не более

итераций, поэтому он во много раз эффективнее, чем алгоритм полного перебора.

Для анализа эффективности эвристического алгоритма к разработанному программному средству был добавлен модуль, который его реализует. С помощью полученной программы было произведено 5000 экспериментов. В каждом эксперименте были сгенерированы входные данные задачи (*). Затем решена задача (*) с помощью алгоритма полного перебора и эвристического алгоритма. Анализ результатов показывает, что эвристический алгоритм даёт одну и ту же схему кластеризации, что и алгоритм полного перебора в более чем 90% экспериментов. Для класса эвристических алгоритмов [7] такой процент совпадений решений, на наш взгляд, является достаточно приемлемым.

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

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

1. Sharma Chakravarthy, Jaykumar Muthuraj, Ravi Varadarajan, Shamkant B. Navathe. An Objective Function for Vertically Partitioning Relations in Distributed Databases and its Analysis. In Distributed and Parallel Databases 2(2): 183-207(1994).

2. Sanjay Agrawal, Vivek Narasayya, Beverly Yang. Integrating Vertical and Horizontal Partitioning into Automated Physical Database Design. In SIG-MOD 2004, June, 2004.

3. К. Дж. Дейт. Введение в системы баз данных. 7-е издание /К.Дж.Дейт. - М., СПб, Киев: Вильямс, 2001.

4. Вильям Пэйдж, Дэвид Остин, Виллард Берд II, Николас Чейз и др. Специальное издание: Использование Oracle8/8I. Вильямс, 2000.

5. Ковалев М.М. Дискретная оптимизация - Целочисленное программирование /М.М.Ковалев.- М.: УРСС, 2003.

6. Таненбаум Э. Современные операционные системы /Э.Таненбаум.

- СПб: Питер, 2004.

7. Natallia Kokash. An introduction to heuristic algorithms. 2005// http://dit.unitn.it/~kokash/documents/ Heuristic algorithms.pdf

Материал поступил в редакцию 1.08.08.

NGO THANH HUNG

VERTICAL PARTITIONING RELATIONS METHOD IN RELATIONAL DATABASE

In this paper we introduce a new objective function for vertical partitioning relations in relational databases. It has been built with the new evaluative criterion: cache hit probability. Also present heuristic algorithm for finding the optimal partitioning schema.

Index terms: vertical partitioning, objective function, evaluation criterion, cache hit probability, heuristic algorithm.

НГО Тхань Хунг (р. 1980), аспирант кафедры «Программное обеспечение вычислительной техники и автоматизированных систем» ДГТУ по научной специальности 05.13.01 «Системный анализ, управление и обработка информации» (2005-2008). Окончил ДГТУ (2005) по специальности «Программное обеспечение вычислительной техники и автоматизированных систем».

Научные интересы: методы повышения производительности кэш-систем и систем управления распределенными базами данных.

Автор 7 научных работ.