"176
Глава
9.
Физические модели
баз
данных
В
первом
случае,
должен быть задан процент первоначального заполнения бло-
ков,
но
только
применительно
к
основной области.
В MS SQL
server
этот про-
цент называется Full-factor
и
используется
при
формировании
кластеризованных
индексов.
Кластеризованными
называются
как раз
индексы,
в
которых
исход-
ные
записи физически упорядочены
по
значениям
первичного
ключа.
При
вне-
сении
новой записи индексная область
не
корректируется.
Количество
обращений
к
диску
при
добавлении
новой
записи равно количеству
обращений,
необходимых
для
поиска соответствующего блока плюс одно обра-
щение,
которое
требуется
для
занесения измененного блока
на
старое место.
Тдобэышм
"
lo&N
+
1
+
1
обращений.
Уничтожение записи происходит путем
ее
физического
удаления
из
основной
области,
при
этом
индексная
область
обычно
не
корректируется, даже если уда-
ляется
первая запись блока.
Поэтому
количество
обращений
к
диску
при
удале-
нии
записи такое
же, как и при
добавлении новой
записи.
Организация
индексов
в
виде
B-tree
(В-деревьев)
Калькированный
термин
«В-дерево»,
в
котором смешивается
английский
сим-
вол
«В»
и
добавочное слово
на
русском
языке,
настолько устоялся
в
литературе,
посвященной
организации
физического
хранения данных,
что я не
решусь
его
корректировать.
Встретив как-то термин
«Б-дерево»,
я
долго
его
трактовала,
потому
что
привык-
ла уже к
устоявшемуся
обозначению. Поэтому будем работать
с
этим термином.
Построение В-деревьев связано
с
простой идеей
построения
индекса
над
уже
построенным индексом. Действительно, если
мы
построим
неплотный
индекс,
то
сама
индексная
область
может быть рассмотрена
нами
как
основной
файл,
над
которым надо снова построить неплотный
индекс,
а
потом
снова
над
новым
индексом строим следующий
и так до
того
момента, пока
не
останется
всего
один индексный
блок.
Мы в
общем
случае
получим
некоторое дерево, каждый
родительский
блок
ко-
торого связан
с
одинаковым количеством подчиненных
блоков,
число которых
равно
числу индексных записей,
разметаемых
в
одном
блоке.
Количество
обра-
щений
к
диску
при
этом
для
поиска любой
записи
одинаково
п
равно
количест-
ву
уровней
в
построенном
дереве. Такие
деревья
называются
сбалансирован-
ными
(balanced)
именно
потому,
что
путь
от
корня
до
любого
листа
н
этом дре-
ве
одинаков.
Именно
термин
«сбалансированное»
от
английского
«balanced»-
-
«сбалансированный,
взвешенный*-
и дал
название
данному методу
организации
индекса.
Построим подобное дерево
для
нашего примера
и
рассчитаем
для
него количе-
ство уровней
и,
соответственно,
количество
обращений
к
диску.
На
первом уровне число блоков равно числу блоков
основной
области,
это
нам
известно,
-
оно
равно
12500
блоков.
Второй
уровень
образуется
из
неплотного
индекса,
мы
его
тоже
уже
строили
и
вычислили,
что
количество
блоков
индекс-