
2. СУБД
фактографических
нпформациоииых
систем
го поля нужной записи. При этом определяется ссылка (номер)
страницы-потомка (внутренней или листовой);
— в оперативную память считывается страница-потомок.
Если она внутренняя, то ее обработка производится аналогич-
но корневой. Если страница-потомок является листовой, то она
последовательно просматривается до нахождения нужного зна-
чения индексируемого поля. При этом определяется номер стра-
ницы файла данных, которая содержит нужную запись;
— если при просмотре листовой страницы нужное значе-
ние индексируемого поля не находится, то поиск считается от-
рицательным, т. е. принимается решение
о
том, что строки-кор-
тежа с требуемым значением индексируемого поля в таблице-
отношении (файле данных) нет.
Анализ данного алгоритма показывает, что при поиске нуж-
ного значения индексируемого поля по индексу в виде Б-дерева
требуется такое количество страничных обменов между внеш-
ней и внутренней памятью, которое равно уровню Б-дерева
плюс единица. При достаточно большом значении п, а это, как
уже отмечалось, наиболее распространенная ситуация, уровень
т Б-дерева невелик (т » 2..3), и, следовательно, количество
страничных индексных обменов с памятью также невелико. При
этом сбалансированность Б-дерева обусловливает одинаковые
затраты по доступу к любой записи с любым значением индек-
сируемого поля. Сбалансированность Б-деревьев обеспечива-
ется легко алгоритмизируемым правилом их построения (рос-
та) при включении нового значения индексируемого поля.
Включение нового значения индексируемого поля осуше-
ствляется следуюшим образом.
а Производится поиск требуемого значения в сушествую-
шем Б-дереве. При его отсутствии поиск, естественно, закан-
чивается отрицательным результатом, но в оперативной памя-
ти остается листовая страница, куда, следовательно, и необхо-
димо поместить новое значение индексируемого поля.
• Если листовая страница не заполнена полностью, в нее
записывается новое значение индексируемого поля и указатель
72