Введение

Вариант деревьев R, используемых для индексации пространственных данных.

В обработке данных деревья R* являются вариантом деревьев R, применяемым для индексации пространственных данных. Деревья R* имеют несколько более высокую стоимость построения, чем стандартные деревья R, так как данные могут потребовать повторной вставки, но в результате получается дерево с обычно более высокой скоростью обработки запросов. Как и стандартное дерево R, оно может хранить как точечные, так и пространственные данные. Оно было предложено Норбертом Бекманом, Хансом Петером Кригелем, Ральфом Шнайдером и Бернхардом Зигером в 1990 году.

Выступление

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

Алгоритм и сложность

Дерево R* использует тот же алгоритм, что и обычное R-дерево для операций запроса и удаления. При вставке дерево R* использует комбинированную стратегию: для листовых узлов минимизируется перекрытие, а для внутренних узлов – увеличение размера и площадь. При разделении дерево R* использует топологическое разделение, которое выбирает ось разделения на основе периметра, а затем минимизирует перекрытие. Помимо улучшенной стратегии разделения, дерево R* также пытается избежать разделений, повторно вставляя объекты и поддеревья в дерево, что вдохновлено концепцией балансировки B-дерева. В худшем случае сложность запроса и удаления идентична R-дереву. Стратегия вставки в дерево R* сложнее, чем линейная стратегия разделения R-дерева, но менее сложна, чем квадратичная стратегия разделения для страницы заданного размера объектов, и оказывает незначительное влияние на общую сложность. Общая сложность вставки остаётся сопоставимой с R-деревом: повторные вставки затрагивают максимум одну ветвь дерева и, следовательно, по сложности сопоставимы с выполнением разделения в обычном R-дереве. Таким образом, в целом сложность дерева R* такая же, как и у обычного R-дерева. Реализация полного алгоритма должна учитывать множество крайних случаев и неоднозначных ситуаций, которые здесь не рассматриваются.