Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50.docx
Скачиваний:
3
Добавлен:
23.09.2019
Размер:
1.82 Mб
Скачать

46. Индексы.

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

• информация о каждой записи основного массива попадает в индекс (сплошная индексация);

• номера записей, информация о которых выносится в индекс, образуют арифметическую прогрессию с шагом d> 1. Основной массив, дополненный таким индексом, обычно

называется индексно-последовательным;

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

Сплошной индекс связан с созданием инвертированного массива ключевых атрибутов к основному массиву. Индексно-последовательный массив представляет собой последовательный массив, отсортированный по значениям ключевого атрибута, к которому создается дополнительный массив индексов. В индекс выносится информация о записях, номера которых образуют арифметическую прогрессию с шагом d. Поиск значения q в индексно-последовательном массиве происходит в две стадии:

• в массиве индексов (который отсортирован в силу упорядоченности основного массива);

• среди записей основного массива, расположенных между двумя соседними индексами, найденными на первой стадии.

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

мы получаем ситуацию с адресной функцией для индекса (рандомизация индекса).

Точное описание рандомизированного индекса состоит в следующем. Индекс с номером n хранит адрес записи основного массива, ключ которой равен или непосредственно больше

Значения p(1)+z(n-l), где z - константа (шаг арифметической прогрессии); р(1) - значение ключа первой записи основного массива.

47. Организация данных во внешней памяти эвм.

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

и запись информации, - магнитные диски. В отличие от оперативной памяти ЭВМ для них перед непосредственно чтением/записью требуется подвод необходимого участка магнитного носителя к механизму чтения/записи (в реальных запоминающих устройствах могут двигаться и носитель данных, и механизм чтения/записи). Поэтому время доступа к данным на внешнем запоминающем устройстве зависит от места расположения данных на диске или ленте, что существенно отличает их от оперативной памяти и определяет специфику организации данных во внешней памяти ЭВМ. Данные на внешнем запоминающем устройстве хранятся в виде файлов. Файл представляет собой множество логически связанных записей. Запись обычно соответствует одному значению некоторой составной единицы информации. Каждый файл имеет уникальное имя файла. В простейшем случае файл представляет последовательный массив записей на внешнем

запоминающем устройстве. Анализ методов организации данных остается в основном

справедливым и для данных во внешней памяти ЭВМ; однако серьезным фактором, влияющим на время доступа, становится взаимное расположение файлов и записей на магнитном носителе. Определим адресное расстояние dA как разность адресов предыдущего и текущего обращения к запоминающему устройству, взятую со знаком "плюс". dA = |A(i-l)-A(i)|.

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