Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по БД (ВФ) / !Все ответы по БД v0.2.13.docx
Скачиваний:
189
Добавлен:
10.05.2014
Размер:
3.32 Mб
Скачать

34. Методы доступа к данным. Многоходовые деревья.

Основой бинарного дерева является корневая вершина, слева от которой находятся элементы меньше чем элемент в корневой вершине, справа элемент больше. При переходе к правому или левому элементу структура остаётся такой же, за исключением того, что корневая вершина только одна и не имеет предков, элемент у которого есть предки, но нет потомков называется листом, а элемент с предками и потомками называется вершина. У вершины может быть 0-2 потомка.

Многоходовые деревья по структуре похожи на бинарные, за исключением того факта, что в одной вершине хранится больше одного ключа и оно имеет больше 2-х потомков. Для B дерева: в узле дерева степени n содержится минимум n-1, максимум 2n-1 ключей и j+1 потомок, где j=количеству ключей в узле. Ключи в узле упорядочены по возрастанию. В остальном структура в таких деревьях аналогична обычным бинарным деревьям. Структура ключа на рисунке. Должно выполняться условие { K(Pi-1)} <Ki< {K(Pi)}.

Бывают следующие типы многоходовых деревьев: B, B+, Красно-Чёрные деревья и др.

35. Методы доступа к данным. Сбалансированные деревья. Структура, правила следования. Основные свойства.

Сбалансированное многоходовое дерево. Узлы В-дерева могут иметь свободное пространство, что упрощает операции вставки и удаления

1. Все пути от корня до любых листьев имеют одинаковую длину h, называемую также высотой В-дерева.

2. В каждой вершине дерева, за исключением корня, должно располагаться минимум n-1, максимум 2n-1 ключей.

3. В корне В-дерева может располагаться минимум 1, максимум 2n-1 ключей.

4. Любая вершина дерева, за исключением листьев, имеющая j ключей, должна иметь j+1 подчиненную вершину.

Последнее условие означает, что промежуточные вершины В-дерева имеют от n до 2n указателей на подчиненные вершины, а корень дерева – от 2 до 2n указателей.

Правила следования.

1. Ключи записей в текущем узле упорядочены по возрастанию

2. Записи в узле P0 имеют ключи, меньшие, чем ключ записи R1

3. Записи в узле Pk имеют ключи, большие, чем ключ записи Rk

4. Записи в узле Pj, 1 _ j _ k – 1, имеют ключи, большие, чем ключ записи Rj, и меньшие, чем ключ записи Rj + 1

Структура вершины В-дерева

Обозначим записи, размещенные в одной вершине дерева, через R1, R2, …, Rj, а указатели на подчиненные вершины через P0, P1, P2, …, Pj. Тогда структура вершины будет следующей:

P0 R1 P1 R2 P2 … Pj-1 Rj Pj

Правила следования:

1. Ключи записей в текущей вершине упорядочены по возрастанию, т.е. ключ записи R1 меньше ключа записи R2, который, в свою очередь, меньше ключа записи R3, и т.д.

2. Записи в подчиненной вершине, на которую указывает P0, имеют ключи, меньшие, чем ключ записи R1.

3. Записи в подчиненной вершине, на которую указывает Pj, имеют ключи, большие, чем ключ записи Rj.

4. Записи в подчиненной вершине, на которую указывает Pi (0 < i < j), имеют ключи, большие, чем ключ записи Ri, и меньшие, чем ключ записи Ri+1.

Ниже приведены примеры В-деревьев степени 1 и степени 2.

Структура узла B-дерева может выглядеть так:

  • Текущее количество ключей в узле

  • Значения ключей и сопутствующая ключам информация

  • Указатели на дочерние узлы (для листьев здесь NULL)

  • Указатель на родительский узел