Научная статья на тему 'Новый алгоритм разделения узла для R-дерева, основанный на двойной сортировке'

Новый алгоритм разделения узла для R-дерева, основанный на двойной сортировке Текст научной статьи по специальности «Математика»

CC BY
226
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗЫ ДАННЫХ / ДВОЙНАЯ СОРТИРОВКА

Аннотация научной статьи по математике, автор научной работы — Коротков А. Е.

Хранение пространственных данных и обработка пространственных запросов актуальные задачи для современных баз данных. Эффективность обработки пространственного запроса зависит от нижлежащей индексной структуры. R-дерево одна из самых известных индексных структур, предназначенная для хранения пространственных данных. Существуют различные версии R-деревьев, и одно и наиболее частых их отличий между собой -это алгоритм разделения узла. Некоторые алгоритмы разделения узла для двуи более мерных R-дерево содержат одномерное разделение узла в качестве составной части. Проблема разделения узла в одномерном R-дереве может показаться слишком тривиальной, чтобы рассматриваться отдельно, поскольку одномерные интервалы могут быть разделены на базе их сортировки. Однако, если рассмотреть эту проблему детально, существующие алгоритмы для одномерного разделения узла не идеально работают в сложных случаях. В данной работе вводится новый алгоритм разделения узла, основанный на двух сортировках, для одномерного случая, который может обрабатывать подобные сложные случаи лучше. Также вводится алгоритм разделения узла для двухи более мерных R-деревьев, который основан на предложенном одномерном алгоритме. Тесты выявляют значительно лучшее поведение предложенных алгоритмов по сравнению с известными в случае сильно пересекающихся данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Новый алгоритм разделения узла для R-дерева, основанный на двойной сортировке»

электронное научно-техническое издание

НАУКА и ОБРАЗОВАНИЕ

Эл № ФС77 - 30569. Государственная регистрация №0421100025. ISSN 1994-0408

Разделение узла при индексировании интервалов 77-30569/307963

# 01, январь 2012 А.Е. Коротков

УДК 004.65

Национальный исследовательский ядерный университет "МИФИ"

aekorotkov@gmail.com

1. Введение

Индексирование интервалов — актуальная задача для современных баз данных (БД). Наиболее часто потребность в индексировании интервалов возникает в темпоральных БД [1]. Такие БД имеют дело с временным интервалом, заданным временем начала и временем завершения актуальности записи. Для того, чтобы темпоральная БД могла эффективно извлекать ««срезы»» данных за определенный момент времени, временные интервалы должны быть проиндексированы с использованием соответствующей структуры данных.

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

Существуют различные подходы к решению проблемы индексирования интервалов. Временной индекс [2,3] представляет адаптацию B-дерева для индексирования интервалов, однако эта структура данных требует O(n2) (n — число индексируемых интервалов) памяти, а время добавления нового интервала в индекс — O(n), что неприемлемо для многих приложений. В работе [4] предлагается другая индексная структура на основе B-дерева, занимающая O(n • log(n)) памяти, вставка в которую требует O(log(n)) времени. R-дерево [5], изна-

чально предназначенное для доступа к многомерным данным, имеет дело с объектами, обладающими протяженностью. Поэтому одномерное Я-дерево может быть применено для индексирования интервалов [6]. Я-дерево занимает О(п) памяти, вставка новой записи в Я-дерево требует 0(1од(и)) времени.

Производительность поисковых операций в одномерном Я-дереве сильно зависит от двух параметров: степени покрытия и степени пересечения. Степень покрытия в Я-дереве определяется как общая длина всех интервалов, хранящихся в узлах определенного уровня. Степень пересечения Я-дерева определяется как общая длина области, содержащейся как минимум в двух интервалах, расположенных в узлах определенного уровня. Высокая степень покрытия и высокая степень пересечения означают плохую структуру Я-дерева, потому что требуется просканировать множество путей для того, чтобы обработать поисковый запрос (многопутевой поиск), а это означает низкую производительность поиска. Очевидно, что минимизация как степени пересечения, так и степени покрытия очень важны для производительности Я-дерева [7].

Качество Я-дерева сильно зависит от алгоритма разделения узла. Задача разделения узла состоит в том, чтобы разделить записи переполненного узла на две группы, которые затем образуют два новых узла. Алгоритм разделения узла во многом определяет степень пересечения и степень покрытия Я-дерева. В свою очередь эти параметры определяют вероятность того, что запрос будет использовать сканирование дерева по нескольким путям. Существуют следующие параметры, с помощью которых можно оценить качество разделения узла:

• степень пересечения ограничивающих интервалов. Меньшая степень пересечения интервалов приводит к меньшей вероятности многопутевого поиска;

• покрытие ограничивающих интервалов. Покрытие разделения — это общая площадь ограничивающих интервалов. В целом меньшее покрытие приводит к меньшей вероятности многопутевого поиска в том случае, когда запрашиваемая площадь относительно большая [8];

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

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

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

• квадратичный алгоритмом Гутмана [5];

• алгоритмами, основанными на сортировке по левой границе, правой границе или середине интервала [6].

2. Предлагаемый алгоритм

Определения. В одномерном алгоритме разделения входные элементы содержат множество I интервалов ж^: I = {ж^}. Интервал х определяется своими верхней и нижней границами: ж = (/¿, и^). Общая нижняя граница это I = ш1п{/^}, а общая верхняя граница — и = шах{м^}. Вначале мы ограничим рассмотрение теми разделениями, где одна из групп содержит общую нижнюю границу, а другая — общую верхнюю границу. Для этого класса разделений назовем пару (а, Ъ) разделяющей парой, если любой интервал из I содержится либо в интервале (1, а), либо в интервале (Ъ, и): Уж(ж Е I ^ (ж С (1, а)) V (ж С С (Ъ,и)). Другими словами, а и Ъ — это соответственно верхняя и нижняя границы групп в некотором разделении из рассматриваемого класса.

Будем называть разделяющую пару (а, Ъ) угловой разделяющей парой, если

(аЕ{иг}) Л (ЪЕ{/,})ЛУ£((£<а) ^Зж(жЕI^ (жС (М)Л (жС (Ъ,и))))^

V V* ((* > Ъ) ^ Зж(ж Е I ^ (ж С (1, а)) Л (ж С (*, и)))).

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

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

Случаи превосходства. Рассмотрим некоторые примеры, которые иллюстрируют случаи, где рассмотрение всех угловых разделяющих пар может иметь превосходство над другими алгоритмами разделения, которые могут быть применены к одномерному случаю. Пример 1 иллюстрирует случай превосходства над алгоритмом, основанном на сортировке по середине. Разделение, для которого есть угловая разделяющая пара представлено на рис. 1. Это разделение сочетает в себе оптимальное соотношение числа элементов и хорошую степень пересечения. Разделение с оптимальным соотношением числа элементов, которое может быть получено с помощью алгоритма, основанного на сортировке по середине, показано на рис. 2. Здесь степень пересечения хуже, чем в предыдущем разделении, потому что алгоритм сортировки по середине не может поместить интервал 5 в правую группу и одновременно поместить интервал 4 в левую группу, так как середина интервала 5 правее, чем середина интервала 4. Разделение с хорошей степенью пересечения, которое может быть получено с помощью алгоритма сортировки по середине, представлено на рис. 3. Здесь степень пересечения хорошая, потому что интервал 4 помещен в левую группу, но соотношение числа элементов не оптимально, потому что интервал 5 помещен в левую группу.

1

2 1

Рис. 1. Пример 1, разделение на основе угловой разделяющей пары

Рис. 2. Пример 1, сортировка по середине, наилучшее соотношение

3

4

ШШ1

2

3

______________^л______________

4

I 6

Г~ 7 ______________________ 8

1 I

2

3

4

1_____________________Ц5П_________________

6 I

7

I 8

Рис. 3. Пример 1, сортировка по середине, наилучшая степень пересечения

Пример 2 иллюстрирует случай превосходства над алгоритмом, основанным на сортировке по левой границе. На рис. 4 представлено разделение, для которого есть угловая разделяющая пара. Это разделение сочетает в себе оптимальное соотношение числа элементов и хорошую степень пересечения. Разделение с оптимальным соотношением числа элементов, которое может быть получено с помощью алгоритма, основанного на сортировке по левому краю, показано на рис. 5. Здесь степень пересечения хуже, чем в предыдущем разделении, потому что алгоритм сортировки по левой границе не может поместить интервал 5 в правую группу и одновременно поместить интервалы 3 и 4 в левую группу, так как левая граница интервала 5 правее, чем левые границы интервалов 3 и 4. Разделение с хорошей степенью пересечения, которое может быть получено с помощью алгоритма сортировки по левой границе, представлено на рис. 6. Здесь степень пересечения хорошая, потому что интервал 5 помещен в правую группу, но соотношение числа элементов не оптимально, потому что интервалы 3 и 4 также помещены в правую группу. Нет смысла отдельно рас-

2

5

6 I

7

!_____________________ 8

Рис. 4. Пример 2, разделение на основе угловой разделяющей пары

1

2

5

!_____________________________Г^^________________________

6 I

7

!.________________ 8

Рис. 5. Пример 2, разделение на основе угловой разделяющей пары

1 ~

I 2 ___________________

6 I

7

!______________________ 8

Рис. 6. Пример 2, сортировка по левой границе, наилучшая степень пересечения

сматривать алгоритм на основе сортировки по верхней границе, поскольку он симметричен алгоритму на основе сортировки по нижней границе.

Пример 3 иллюстрирует случай превосходства над Гуттмановским алгоритмом разделения. На рис. 7 представлено разделение, для которого есть угловая разделяющая пара. Это разделение сочетает в себе оптимальное соотношение числа элементов и хорошую степень пересечения. На рис. 8 представлено разделение, которое может быть получено с помощью Гуттмановского алгоритма с т = 3. Как соотношение числа элементов, так и степень пересечения не оптимальны. Интервалы 1 и 8 были выбраны семенами. После этого, интервалы 2, 3, 4, 5 были добавлены к левой группе, потому что для них значения разницы в приросте размеров групп было максимальным. После этого остальные интервалы были добавлены к правой группе для того, чтобы сделать минимальное число интервалов в группе не меньше т.

1

ел

3

!__________________________________________4

Рис. 7. Пример 3, разделение на основе угловой разделяющей пары

Рис. 8. Пример 3, Гутмановское разделение (т = 3)

Алгоритм. Алгоритм 2 Бпишега1еСогпег8рН1Ра1гв перечисляет все угловые разделяющие пары. Алгоритм основан на использовании двух массивов:

первый содержит входные элементы, отсортированные по нижней границе, а второй содержит их же, но отсортированных по верхней границе. В главном цикле данного алгоритма делаются итерации по двум массивам одновременно так, что свойство разделяющей пары сохраняется. Когда угловая разделяющая пара найдена, вызывается алгоритм 3 ConsiderSplit. Этот алгоритм принимает ограничивающие интервалы групп и максимальное число элементов, которое может быть размещено в группы, в соответсвии с заданными ограничивающими интервалами, в качестве входных параметров. Максимальное число элементов, которые могут быть размещены в группах определяется по индексам в отсортированных массивах, откуда извлекаются границы разделяющих пар. Алгоритм ConsiderSplit ищет разделения с наименьшей степенью пересечения групп, где минимальное число элементов в группе больше или равно m. Когда разделение с нулевым пересечением возможно, то алгоритм выбирает разделение, где расстояние между ограничивающими интервалами групп наибольшее. Это свойство достигается за счёт того, что переменной overlap разрешается принимать отрицательные значения. Заметим, что если некоторые элементы могут быть размещены в обе группы, то алгоритм ConsiderSplit рассматривает разделение, где распределение элементов по группам наиболее близко к равномерному.

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

Алгоритм 1 DoubleSortSplit Вход: Переполненный узел

Выход: Два новых узла, в каждом из которых не менее m элементов

1: Вызвать EnumerateSplitPairs для того, чтобы найти угловую разделяющую пару с наименьшим пересечением.

2: Распределить между группами те интервалы, которые могут быть размещены только в одну группу.

3: Отсортировать остальные элементы по серединам их интервалов.

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

Алгоритм 2 EnumerateCornerSplitPairs Вход: Набор интервалов

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

2: Отсортировать интервалы по верхней границе, записать результат в массив b

3: si ^ (a[0].l,b[0].u) 4: s2 ^ (a[0].l,b[n — 1].u) 5: i ^ 0 6: j ^ 0

7: -Делать итерации до тех пор, пока не встретится первое разделение, полученное с помощью угловой разделяющей пары." 8: while b[j].u = si.u and j < n do 9: j ^ j + 1 10: end while

11: considerSplit (si, j, s2, n — i) 12: while i < n do

13: prevs2J ^ s2.l 14: next si-u ^ si.u 15: next-i ^ i

16: -Найти следующее значение верхней границы s1 и соответствующее значение нижней границы s2, которое образует с ним угловую разделяющую пару."

17: while next л < n and nexts2J = s2.l do 18: nextsi-u ^ max {next si-u, a[nextJ].u"

19: next J ^ next J + 1

20: if next J > n then

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

21: break

22: end if

23: next_s2_l ^ a[next_i].l

24: end while

25: if next J > n and next_s1_u = s1.u then

26: break

27: end if

28: -Все промежуточные значения нижней границы s2 образуют угловую разделяющую пару с предыдущим значением верхней границы s1."

29: while j < n and b[j].u < next_s1_u do

30: if b[j].u > s1.u and b[j].u < next_s1_u then

31: sl.u ^ b[j]

32: considerSplit (s1, j + 1,s2,n — i)

33: else

34: s1.U ^ b[j]

35: end if

36: j ^ j + 1

37: end while

38: -Переход к следующим значениям верхней границы s1 и нижней границы s2."

39: s1.u ^ next_s1_u

40: s2.l ^ next_s2_l

41: if next_i < n then

42: i ^ next_i

43: considerSplit (s 1, j, s2, n — i)

44: else

45: considerSplit (s1,j,s2,n — i)

46: break

47: end if

48: end while

Алгоритм 3 ConsiderSplit

Вход: Ограничивающие интервалы групп si и s2, числа ni и n2, которые представляют собой максимальные числа элементов, которые могут быть размещены в каждой из групп.

Выход: Обновленная информацию о том, какое оптимальное разбиение найдено на данный момент 1: overlap ^ (si.u — s2.l)/(s2.u — si.l) 2: if ni > m and n2 > m and overlap < best.overlap then 3: best-overlapi ^ overlap 4: bestsi ^ si 5: bests2 ^ s2 6: best-ni ^ ni 7: best-n2 ^ n2 8: end if

3. Тесты производительности

Экспериментальный стенд. Все тесты проводились на компьютере с процессором Core 2 Duo 3 GHz с 2 GB оперативной памяти и ОС Ubuntu 10.10 32bit. Для реализации R-дерева с различными алгоритмами разделения узлов был использован фреймворк GiST [9] в СУБД PostgreSQL. GiST обобщает различные поисковые деревья, включая R-дерево.

Наборы данных. Каждый набор данных содержит 106 случайно сгенерированных интервалов. Размер интервалов подчиняется нормальному закону распределения с нулевым математическим ожиданием и среднеквадратичным отклонением, которое обеспечивает требуемую степень пересечения интервалов. Под степенью пересечения интервалов подразумевается среднее число интервалов, которые будут содержать случайную точку в диапазоне [0; 1). Степень пересечения интервалов варьировался экспоненциально от 1 до 104. Распределение середины интервалов зависит от типа набора данных следующим образом.

• Равномерный набор данных. Середины интервалов подчиняются равномерному закону распределения на интервале [0; 1).

• Нормальный набор данных. Середины интервалов подчиняются стандартному нормальному закону распределения.

• Равномерный набор данных с кластерами. Вначале генерируется 500 середины кластеров, которые подчиняются равномерному закону распределения на интервале [0; 1). После этого для каждой середины кластера генерируется 2000 середин интервалов, сдвиг которых относительно середины кластера подчиняется равномерному закону распределения на интервале [0; 6 * 10-4).

• Нормальный набор данных с кластерами. Вначале генерируется 500 середин кластеров, которые подчиняются стандартному нормальному закону распределения. После этого для каждой середины генерируется 2000 середин интервалов, сдвиг которых относительно середины кластера подчиняется нормальному закону распределения с нулевым математическим ожиданием и среднеквадратичным отклонением 6 * 10-4.

Результаты тестирования. Тесты показывают, что все алгоритмы, основанные на сортировке, работают почти одинаково. Поэтому здесь представлен только один подобный алгоритм, основанный на сортировке по середине интервала. Следующие алгоритмы разделения узлов были включены в тесты для одномерного случая:

• квадратичный гуттмановский алгоритм [5];

• алгоритм, основанный на сортировке по середине интервала [6];

• предложенный алгоритм, основанный на двойной сортировке.

Для того чтобы сравнить эффективность индексных структур, полученных с помощью различных алгоритмов разделения узла, измерялось число доступа к узлам при выполнении запроса. Для тестирования было сгенерировано 100 маленьких интервалов размером 10-5, и измерялось число доступов к узлам дерева для извлечения всех интервалов из тестового набора данных, которые пересекаются с данным интервалом. На рисунке 9 представлено сравнение среднего числа доступов к узлам. Для более наглядного сравнения, представлено не абсолютное значение, а отношения значения для конкретного алгоритма к среднему значению по всем рассматриваемым алгоритмам. Измерения были проделаны для 4-х наборов данных, представленных выше, с различными уровнями пересечения. На рисунке 10 приведено сравнение времени создания дерева. Данными представлены тем же способом, что и число доступов к узлам:

1.4

¡Г 0.6

Степень пересечения (в) Нормальный набор данных

1.4

0.8

100

101 102 103

Степень пересечения

104

1.6

1.2

0.6

Степень пересечения (г) Нормальный набор данных с кластерами

У 0.6

100

101 102 103

Степень пересечения

104

|_Квадратичный Гуттмана • Сортировки Двойной сортировки

Рис. 9. Сравнение числа доступов к узлам при поиске для различных одномерных алгоритмов разделения

1.4

1.2

1

1

0.8

0.8

2

4

4

10

10

10

10

10

10

10

10

10

10

1.4

1.2

1.2

1

1

0.8

отношение времени создания для конкретного алгоритма к среднему времени создания.

Мы можем видеть, что число доступов к узлам, необходимое для поиска в дереве, построенном с использованием разделения узла на основе двойной сортировки, почти никогда не оказывается больше, чем при использовании других алгоритмов. При высокой степени пересечения данных наблюдается существенное превосходство алгоритма на основе двойной сортировки, до 50% в сравнении с алгоритмом, основанном на сортировке, и до 2 раз по сравнению с Гуттмановским квадратичным алгоритмом. Мы можем видеть, что время создания дерева при использовании алгоритма, основанного на двойной сортировке, меньше, чем при использовании Гуттмановского квадратичного алгоритма, но,

100 101 102 103 104 °'6 100 101 102 103 104

Степень пересечения Степень пересечения

|_Квадратичный Гуттгмана • Сортировки Двойной сортировки

Рис. 10. Сравнение времени создания дерева для различных одномерных алгоритмов разделения

в среднем, несколько выше, чем при использовании алгоритма, основанного на сортировке.

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

В данной работе предлагается новый алгоритм разделения узлов для одномерного Я-дерева, основанный на двойной сортировке. Этот алгоритм позволяет лучше обрабатывать сложные случаи. Тесты показывают превосходство предложенного алгоритма в отношении числа доступов к узлам дерева по сравнению с квадратичным Гуттмановским алгоритмом и с алгоритмом, основанном на одной сортировке. Наибольшее превосходство достигается при сильном пересечении исходных данных, благодаря способности предложенного алгоритма лучше обрабатывать сложные случаи.

Список литературы

1. Temporal databases: theory, design, and implementation / Ed. by A. U. Tansel, J. Clifford, S. Gadia et al. Redwood City, CA, USA: Benjamin-Cummings Publishing Co., Inc., 1993.

2. Elmasri R. The time index: An access structure for temporal data / R. Elmasri, G. T. J. Wuu, Y.-J. Kim // Proc. 16th Int. Conf. on Very Large Data Bases. VLDB '90. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1990. P. 1-12.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Ang C.-H. The interval b-tree / C.-H. Ang, K.-P. Tan // Inf. Process. Lett. 1995. January. V. 53. P. 85-89.

4. Nascimento M.A. Indexing valid time databases via b+-trees / M.A. Nascimento, M.H. Dunham // IEEE Trans. on Knowl. and Data Eng. 1999. November. V. 11. P. 929-947.

5. GuttmanA. R-trees: a dynamic index structure for spatial searching / A. Guttman // SIGMOD Rec. "— 1984. "— June. "— Vol. 14. "— Pp. 47-57. .

6. Kolovson C.P. Segment indexes: Dynamic indexing techniques for multidimensional interval data / C.P. Kolovson, M. Stonebraker // SIGMOD Conference / Ed. by J. Clifford, R. King. ACM Press, 1991. P. 138-147.

7. Brakatsoulas S. Revisiting r-tree construction principles / S. Brakatsoulas, D. Pfoser, Y. Theodoridis // Proc. 6th East European Conf. on Advances in Databases and Information Systems. ADBIS '02. London: Springer-Verlag, 2002. P. 149-162.

8. Al-Badarneh A.F. A new enhancement to the r-tree node splitting / A.F. Al-Badarneh, Q. Yaseen, I. Hmeidi // J. Information Science. 2010. V. 36, No 1. P. 3-18.

9. Hellerstein J.M. Generalized search trees for database systems / J.M. Hellerstein, J.F. Naughton, A. Pfeffer//Proc. 21th Int. Conf. on Very Large Data Bases. VLDB '95. San Francisco: Morgan Kaufmann Publishers Inc., 1995. P. 562-573.

electronic scientific and t echnical periodical

SCIENCE and EDUCATION

El № FS77 - 30569. №0421100025. ISSN 1994-0408

Node Splitting on Intervals Indexing 77-30569/307963

# 01, January 2012 A. E. Korotkov

National research nuclear university "MEPhl"

aekorotkov@gmail.com

Indexing of intervals is important task for modern databases. There are various index types for intervals indexing, while one-dimensional R-tree is one of them. The main problem of R-tree is overlap of its node predicates. High level of such overlap leads to search query performance slowdown. This paper presents new algorithm for one-dimensional R-tree node splitting, which allows decreasing overlap of node predicates. This algorithm is based on using two sorting simultaneously, which makes it handle some sophisticated cases better.

References

1. Temporal databases: theory, design, and implementation / Ed. by A. U. Tansel, J. Clifford, S. Gadia et al. Redwood City, CA, USA: Benjamin-Cummings Publishing Co., Inc., 1993.

2. Elmasri R. The time index: An access structure for temporal data / R. Elmasri, G. T. J. Wuu, Y.-J. Kim // Proc. 16th Int. Conf. on Very Large Data Bases. VLDB '90. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1990. P. 1-12.

3. Ang C.-H. The interval b-tree / C.-H. Ang, K.-P. Tan // Inf. Process. Lett. 1995. January. V. 53. P. 85-89.

4. Nascimento M.A. Indexing valid time databases via b+-trees / M.A. Nascimento, M.H. Dunham // IEEE Trans. on Knowl. and Data Eng. 1999. November. V. 11. P. 929-947.

5. GuttmanA. R-trees: a dynamic index structure for spatial searching / A. Guttman // SIGMOD Rec. "— 1984. "— June. "— Vol. 14. "— Pp. 47-57. .

6. Kolovson C.P. Segment indexes: Dynamic indexing techniques for multidimensional interval data / C.P. Kolovson, M. Stonebraker // SIGMOD Conference / Ed. by J. Clifford, R. King. ACM Press, 1991. P. 138-147.

7. Brakatsoulas S. Revisiting r-tree construction principles / S. Brakatsoulas, D. Pfoser, Y. Theodoridis // Proc. 6th East European Conf. on Advances in Databases and Information Systems. ADBIS '02. London: Springer-Verlag, 2002. P. 149-162.

8. Al-Badarneh A.F. A new enhancement to the r-tree node splitting / A.F. Al-Badarneh, Q. Yaseen, I. Hmeidi // J. Information Science. 2010. V. 36, No 1. P. 3-18.

9. Hellerstein J.M. Generalized search trees for database systems / J.M. Hellerstein, J.F. Naughton, A. Pfeffer//Proc. 21th Int. Conf. on Very Large Data Bases. VLDB '95. San Francisco: Morgan Kaufmann Publishers Inc., 1995. P. 562-573.

i Надоели баннеры? Вы всегда можете отключить рекламу.