Cтраница 1
Индексно-последовательный файл данных представляет собой совокупность записей фиксированной или переменной длины, каждая из которых имеет ключ, причем все записи упорядочены по значению ключа. Логические записи могут объединяться в блоки, тогда блоку предшествует ключ последней записи блока. Такая совокупность записей помещена в область, называемую основной областью файла данных. [1]
Создание индексно-последовательного файла данных происходит всегда путем применения метода доступа с очередями. Аналогично метод доступа с очередями рационально использовать при добавлении новой совокупности записей в конец уже созданного файла. Естественно, в этом случае при вводе исходных записей, они должны быть предварительно рассортированы по ключу, поскольку создание файла данных будет происходить последовательно, с помощью макрокоманды PUT, которая может работать в режиме пересылки или режиме указания. [2]
Особенности построения индексно-последовательных файлов данных учитываются программой IEBISAM обслуживания таких файлов. Эта программа позволяет создать копию любого индексно-последовательного файла данных на другом томе произвольного доступа, но создаваемый файл данных в общем случае лишь формально эквивалентен исходному. При копировании программа IEBISAM освобождается от записей в области переполнения с целью Максимального ускорения последующего поиска в таком файле. Таким образом, соответственно меняется содержимое практически всех индексов файла данных. [3]
Последовательная обработка или обновление индексно-последовательного файла данных или его части производится с помощью так называемого режима сканирования. Для чтения очередной записи применяется макрокоманда GET в режиме пересылки или в режиме указания. Для задания начальной точки последовательности обрабатываемых записей используется макрокоманда SETL, Конечная точка этой последовательности отмечается макрокомандой ESETL. Таким образом, наличие нескольких участков последовательной обработки индексно-последовательного файла данных подразумевает несколько пар макрокоманд SETL - ESETL. Внутри этих участков обработка производится аналогично последовательному методу доступа с очередями. [4]
Работа с записями в индексно-последовательном файле данных предполагает поиск по ключу. Для реализации поиска записи по ключу создается иерархическая структура индексов ( рис. 10.1), в которую входят индекс дорожек на каждом цилиндре основной области, индекс цилиндров и до трех главных индексов. Область на диске, в которой расположены индекс цилиндров и главные индексы, не связана с основной областью. [5]
Как уже говорилось выше, индексно-последовательный файл данных занимает как минимум два участка памяти диска - область для всех индексов, кроме индекса дорожек, и основную область. [6]
Для возможности удаления ненужных записей из индексно-последовательного файла данных необходимо помечать специальным кодом: первый байт записей фиксированной длины или пятый байт записей переменной длины. Впоследствии при добавлении новых записей может сложиться ситуация, требующая переноса помеченной записи в область переполнения, но эта запись будет просто исключена. [7]
Особенности построения индексно-последовательных файлов данных учитываются программой IEBISAM обслуживания таких файлов. Эта программа позволяет создать копию любого индексно-последовательного файла данных на другом томе произвольного доступа, но создаваемый файл данных в общем случае лишь формально эквивалентен исходному. При копировании программа IEBISAM освобождается от записей в области переполнения с целью Максимального ускорения последующего поиска в таком файле. Таким образом, соответственно меняется содержимое практически всех индексов файла данных. [8]
Программа IEBISAM также может разгружать индексно-по-следовательный файл данных с последующим восстановлением этой же программой. Дополнительные функции IEBISAM заключаются в возможности вывода на печать всех записей индексно-последовательного файла данных в их логической последовательности с учетом области переполнения. [9]
Индексно-последовательная и библиотечная организации могут рассматриваться как усовершенствование последовательной организации при условии добавления к последовательным файлам данных некоторой справочной информации. В библиотечно организованных разделах такой справочной информацией является Оглавление библиотеки; в индексно-последовательных файлах данных используется система индексов. [10]
Базисный индексно-последовательный метод доступа может использоваться для занесения новых записей в файл данных, выборочной обработки или обновления записей, а также добавления новых записей в конец файла, что менее эффективно в общем случае по сравнению с использованием метода доступа с очередями. В макрокомандах READ и WRITE базисного индексно-последовательного доступа указывается ключ обрабатываемых записей, в остальном алгоритм совпадает с базисным последовательным методом доступа. Необходимо только при добавлении записей переменной длины к индексно-последовательному файлу данных предусмотреть рабочую область, превышающую объем памяти одной дорожки диска. Эта область описывается в Блоке управления данными и задается программистом в макрокоманде DCB. Для записей с фиксированной длиной такая область не обязательна, но может обеспечить выигрыш во время обработки записей. [11]
Последовательная обработка или обновление индексно-последовательного файла данных или его части производится с помощью так называемого режима сканирования. Для чтения очередной записи применяется макрокоманда GET в режиме пересылки или в режиме указания. Для задания начальной точки последовательности обрабатываемых записей используется макрокоманда SETL, Конечная точка этой последовательности отмечается макрокомандой ESETL. Таким образом, наличие нескольких участков последовательной обработки индексно-последовательного файла данных подразумевает несколько пар макрокоманд SETL - ESETL. Внутри этих участков обработка производится аналогично последовательному методу доступа с очередями. [12]