101
реполнения и считывать соответствующую запись. Данный способ тре-
бует больших затрат времени по сравнению с первым способом в том
случае, когда записи переполнения не связаны в цепочки; но при много-
кратном включении групп записей опасность возникновения очень
больших цепочек здесь отсутствует.
Методы включения записей, основанные на резервировании
Метод, основанный на резервировании участков пространства (на-
пример фиксированной части каждого блока) в файле для ожидаемого
включения новых элементов данных, называется методом распре-
деленной свободной памяти. Хотя, применяя данный метод, можно из-
бежать записей переполнения, целесообразно периодически выполнять
процедуры восстановления заполненных резервных позиций.
Наличие некоторого объема свободной памяти в каждом управ-
ляемом интервале приводит к тому, что большая часть вновь поступаю-
щих записей умещается в пределах соответствующих интервалов. Тем
не менее, неизбежны случаи нехватки распределенной свободной памя-
ти в интервалах для включения новых записей. В таких случаях осу-
ществляется «расщепление» интервала. Предположим, что необходимо
включить запись с некоторым значением ключевого поля. В соответст-
вии со значением ключевого поля определяется интервал, в который
следует включить запись. Но, так как интервал уже полностью заполнен,
поэтому осуществляется его расщепление: половина его записей пере-
сылается в свободный интервал, входящий в состав той же управляемой
области.
Резюмируя, перечислим способы включения в файл новых запи-
сей:
1. При включении новых записей файл перезаписывается с разме-
щением записей в соответствующих местах.
2. Записи размещаются в области переполнения, которая находит-
ся либо в той же области (файле), что и основная область, либо - в от-
дельной независимой области (файле). При этом для обеспечения досту-
па могут использоваться цепочки, указатели из индекса к каждой записи
переполнения, отдельные индексы для каждого блока области перепол-
нения.
3. Записи размещаются в распределенной свободной памяти,
которая резервируется при создании базы на уровне физических или
логических областей в пространстве файла. При переполнении
первоначально зарезервированной области происводится ее
расщепление.