Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
базы данных - конспект лекций.doc
Скачиваний:
11
Добавлен:
23.11.2019
Размер:
801.79 Кб
Скачать

4.3 Индексно-последовательный метод доступа

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

Рассмотрим пример.

Табельный №

цеха

Профессия

Разряд

Записи основного файла условно разделим на три блока и организуем индексный файл.

В индексном файле каждая запись имеет два элемента: индекс и адрес.

Индекс

Адрес

0311

0311

0422

0423

02

06

06

Слесарь

Токарь

Наладчик

5

4

4

0802

0934

04

02

Слесарь

Наладчик

6

5

0981

1016

06

11

Слесарь

Токарь

5

6

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

бл.1

Значение ключа

А дрес блока

0311

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

0422

*0423

бл.2

0423

1

0802

0934

2

*0934

1016

3

бл.3

0981

*1016

Предположим, что необходимо отыскать запись с ключом 0981. При этом выполняется следующая процедура. Сначала считывается индекс 0423, требуемый адрес найти не можем, т.к. значение ключа 0423 меньше, чем 0981, затем считываем следующее значение 0934, переходим к индексу 1016. По индексу 1016 в блоке 3 отыскиваем требуемую запись.

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

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

Рассмотрим пример.

0318

4

0132

0914

5

*0318

0914

1

0932

6

0423

1315

2

1216

7

0632

1820

3

1315

8

*0914

1601

9

.

1820

10

.

.

. . . .

Для дополнения записи в индексно-последовательном методе используются различные приемы. Например,

  1. отводится дополнительная область переполнения каждому блоку

  2. организуется общая резервная область переполнения для всех блоков.