Статус документа
Статус документа

ГОСТ 22558-89 (СТ СЭВ 6184-88, ИСО 1989-85) Язык программирования Кобол. Части 1-7

     2.1. Свойства файла


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

2.1.1.Последовательная организация  

Последовательные файлы организованы так, что каждая запись, за исключением последней, имеет единственную последующую запись; каждая запись, за исключением первой, имеет единственную предшествующую запись. Отношение "предшественник-преемник" устанавливается порядком выполнения оператора WRITE (ПИСАТЬ) при создании файла. Установленный порядок предшествования не изменяется за исключением случая, когда записи добавляются в конец файла.

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

2.1.2. Относительная организация

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

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

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

2.1.3. Индексная организация

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

Каждый индексный файл имеет основной индекс, представляющий основной ключ записи каждой записи в файле. Каждая запись помещается в файл, изменяется или удаляется из файла только на основании значения ее основного ключа записи. Основной ключ каждой записи в файле должен быть однозначным (уникальным) и не должен изменяться при обновлении записи. Основной ключ записи объявляется в фразе RECORD KEY (КЛЮЧ ЗАПИСИ) статьи управления файлом для данного файла.

Дополнительные ключи записи обеспечивают дополнительные способы извлечения записей файла. Такие ключи называются в фразах ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) статьи управления файлом. Значение отдельного дополнительного ключа в каждой записи не обязательно должно быть однозначным. В случае, когда значения могут быть неоднозначными, в фразе ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) должен быть указан вариант DUPLICATES (С ДУБЛИРОВАНИЕМ).

2.1.4. Логические записи

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

2.1.4.1. Записи фиксированной длины

Записи фиксированной длины должны содержать одно и то же количество позиций литер во всех записях файла. Все операции ввода-вывода могут обрабатывать записи только такого размера. Записи фиксированной длины можно определить явно форматом 1 фразы RECORD (В ЗАПИСИ) статьи описания файла независимо от индивидуальных описаний записи.

2.1.4.2. Записи переменной длины