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