Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000259.doc
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
1.27 Mб
Скачать

5.3.3. Организация индексов в виде b-tree (в-деревьев)

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

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

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

На первом уровне число блоков равно числу блоков основной области (12 500 блоков). Второй уровень образуется из неплотного индекса, число блоков индексной области в этом случае равно 172 блокам. Теперь над вторым уровнем снова построим неплотный индекс. Длина индексной записи по-прежнему будет равна 14 байтам. Количество индексных записей в одном блоке равно 73. Определим, сколько блоков необходимо для хранения ссылок на 172 блока:

KIB3 = KIB2 / KIZB = 172 / 73 = 3 блока.

Над третьим уровнем строим новый, и на нем будет всего один блок, в котором будет всего три записи. Число уровней в построенном дереве равно четырем, и соответственно количество обращений к диску для доступа к произвольной записи равно четырем (рис. 5.5). Это не максимально возможное число обращений, а всегда одно и то же, одинаковое для доступа к любой записи.

Тд = Rуровней = 4.

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

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

1 уровень -

12 500 блоков

2 уровень -

172 блока

3 уровень -

3 блока

4 уровень -

1 блок

Неплотный индекс

Основная

область

4 уровень

3 уровень

2 уровень

1 уровень

Рис. 5.5. Построенное В-дерево

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