Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БДЗиЭС / Базы данных, знаний и экспертные системы. Часть 1 (теория).pdf
Скачиваний:
162
Добавлен:
11.05.2015
Размер:
8.54 Mб
Скачать

27

возникает необходимость некоторой перегруппировки элементов индекса. Если файл очень большой или если записи в него добавляются очень часто (изменчивый файл), то такой режим работы позволяет обойтись без сложных процедур ведения и записи данных могут храниться в произвольном порядке.

При последовательном расположении записей можно избежать частого выполнения процедуры ведения, предусматривая в файле позиции с пустыми записями (рис. 3.5). Однако данный метод не позволяет полностью избежать выполнения процедуры ведения. Включение записей с ключами LESLIE и JOAN в файл на рис. 3.5 не вызывает затруднений, а включение записи с ключом JENNIFER приводит к необходимости использования области переполнения и создания соответствующего указателя или к необходимости перемещения записей. В данном случае можно было бы сдвинуть на одну позицию вниз группу, начинающуюся с записи KRISTEN, но теперь эта группа заполнена, и поэтому необходимо сдвинуть следующую группу, начинающуюся с записи LOUISE. Затем включение записи с ключом MARTA потребует очередного сдвига групп.

Метод, основанный на включении пропусков в файле для ожидаемого включения новых элементов данных, называется методом распределенной свободной памяти (distributed free space). Хотя, применяя данный метод, можно избежать записей переполнения, целесообразно периодически выполнять процедуры ведения с целью восстановления заполненных резервных позиций.

3.1.3 СВЯЗЬ С ТЕХНИЧЕСКИМ ОБЕСПЕЧЕНИЕМ

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

28

Рис. 3.5. Выделение свободных позиций среди записей для включения новых записей.

Для включения групп записей потребуется либо использовать область переполнения, либо реорганизовать файл.

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

Вданной главе рассмотрены две разновидности организации индекснопоследовательных файлов, используемых в системе 370 фирмы IBM. Первая из них используется в методе доступа ISAM (Indexed Sequential Access Method —

индексно-последовательный метод доступа), а вторая — в методе доступа VSAM (Virtual Storage Access Method — виртуальный метод доступа). В методе доступа ISAM организация индексов и блоков записей ориентирована на использование конкретных внешних запоминающих устройств, а в методе доступа VSAM она независима от технического обеспечения.

3.1.4ИНДЕКСНО-ПОСЛЕДОВАТЕЛЬНЫЙ МЕТОД ДОСТУПА (ISAM)

29

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

Из рис. 3.6 видно, что область переполнения может располагаться на дорожке того же цилиндра, на котором находятся первоначальные данные, в которые вносятся новые данные, переполняющие основную область. С другой стороны, допускается расположение области переполнения за пределами этого цилиндра. Если основная область и область переполнения расположены на одном цилиндре (рис. 3.6, а), доступ к записям ускоряется, так как нет необходимости перемещения головок чтения — записи с одного цилиндра на другой. На рис. 3.6, б показано, что при переходе от индекса дорожек к элементу в области переполнения уже необходимо перемещать головки чтения — записи. Подобная необходимость не возникает в том случае, когда основная область и область переполнения расположены на разных модулях дисков и возможен параллельный доступ к записям; более того, в этом случае можно приступать к поиску следующей записи до окончания поиска предыдущей записи, если она находится в области переполнения.

Обычно в каждом цилиндре отводится одна дорожка под область переполнения (рис. 3.6, а). Однако при включении новых записей дорожка области переполнения может заполниться до отказа, причем STO может произойти очень быстро. Поэтому в системах, в которых применяется метод доступа ISAM, используется как область переполнения цилиндра (рис. 3.6, а), так и независимая область переполнения (рис. 3.6, б). Если область переполнения цилиндра заполнена до отказа, то для новых записей отводится дорожка из независимой области переполнения.

30

Рис. 3.6. Размещение области переполнения в индексно-последовательном файле, а - размещение на тех же цилиндрах, на которых размещена и основная область; 6 - Размещение на отдельных цилиндрах

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

3.1.5 МНОГОУРОВНЕВОЕ ИНДЕКСИРОВАНИЕ

Многие виды файлов с индексно-последовательной организацией рассчитаны на многоуровневое индексирование. Индексы самого нижнего уровня обычно размещены среди записей файла для минимизации времени поиска данных (например, индексы дорожек на рис. 3.6).

Более высокими по отношению к индексам дорожек в методе доступа ISAM являются индексы цилиндров. Индекс дорожек содержит значение максимального ключа на каждой дорожке и указывает на эти дорожки. В свою очередь индекс цилиндров содержит значение максимального ключа на каждом цилиндре и указывает на индекс дорожек данного цилиндра. Индекс цилиндров располагается на цилиндре, отделенном от большинства записей файла. Он может располагаться на модуле, содержащем записи файла, но лучше, если он будет находиться на какомнибудь другом модуле, так как это позволит ускорить доступ к записям. В

31

последнем случае можно начинать поиск очередной записи, не дожидаясь завершения чтения предыдущей записи.

Главный индекс является индексом более высокого уровня по сравнению с индексом цилиндров. Индексы цилиндров хранятся на нескольких дорожках внешнего устройства, при этом главный индекс содержит значение максимального ключа для каждой из этих дорожек, а также указатель на данную дорожку. Пример организации главных индексов и индексов цилиндров приведен на рис. 3.7.

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

Рассмотрим в качестве примера поиск записи с ключом, равным 144, в файле ISAM, организация которого показана на рис. 3.7. Ниже приведена последовательность событий, из которых складывается процесс поиска.

1.ЭВМ просматривает высший уровень главного индекса, который обычно находится в основной памяти. Минимальный из элементов главного индекса, превышающих 144, равен 30 500. Этот элемент индекса имеет указатель на уровень 2 главного индекса.

2.ЭВМ считывает соответствующую дорожку уровня 2 главного индекса в основную память и анализирует находящиеся в нем элементы.

Рис. 3.7. Метод ISAM

Минимальный элемент из индекса, превышающий 144, равен 2100 и указывает на первую дорожку уровня 1 главного индекса.