Набор данных (мэйнфрейм IBM) - Data set (IBM mainframe)

В контексте мэйнфреймов IBM в линейке S / 360 набор данных (предпочтительно IBM) или набор данных - это компьютерный файл, имеющий организацию записи . Использование этого термина началось, например, с DOS / 360 , OS / 360 и до сих пор используется их преемниками, включая текущую z / OS . В документации по этим системам исторически предпочтение отдавалось этому термину, а не файлу .

Набор данных обычно хранится на запоминающем устройстве с прямым доступом (DASD) или на магнитной ленте , однако устройства записи устройства, такие как устройства чтения перфокарт, перфораторы для карт, линейные принтеры и принтеры страниц, могут обеспечивать ввод / вывод (I / O) для набор данных (файл).

Наборы данных не являются неструктурированными потоками байтов , а скорее организованы в различные логические записи и структуры блоков, определяемые DSORG(организацией набора данных), RECFM(форматом записи) и другими параметрами. Эти параметры указываются во время выделения (создания) набора данных, например, с помощью операторов языка управления заданиями DD . В запущенной программе они хранятся в блоке управления данными (DCB) или блоке управления доступом (ACB), которые представляют собой структуры данных, используемые для доступа к наборам данных с использованием методов доступа .

Записи в наборе данных могут быть фиксированной, переменной или «неопределенной» длины.

Организация набора данных

Для OS / 360 параметр DCB DSORGуказывает, как организован набор данных. Это может быть

CQ
Метод очереди телекоммуникационного доступа (QTAM) в программе управления сообщениями (MCP)
CX
Группа линий связи
DA
Базовый метод прямого доступа (BDAM)
GS
Графическое устройство для метода доступа к графике (GAM)
ЯВЛЯЕТСЯ
Индексированный метод последовательного доступа (ISAM)
MQ
Очередь сообщений QTAM в приложении
PO
Разделенный
PS
Физический последовательный

среди прочего. Наборы данных на ленте могут быть только DSORG = PS. Выбор организации зависит от способа доступа к данным и, в частности, от того, как они будут обновляться.

Программисты используют различные методы доступа (такие как QSAM или VSAM ) в программах для чтения и записи наборов данных. Метод доступа зависит от организации данного набора данных.

Формат записи (RECFM)

Независимо от организации, физическая структура каждой записи по существу одинакова и едина во всем наборе данных. Это указывается в RECFMпараметре DCB . RECFM=Fозначает, что записи имеют фиксированную длину, заданную LRECLпараметром. RECFM=Vуказывает запись переменной длины. Записи V при хранении на носителе имеют префикс слова дескриптора записи (RDW), содержащего целочисленную длину записи в байтах и ​​битах флага. С помощью RECFM=FBи RECFM=VBнесколько логических записей группируются в один физический блок на ленте или DASD. FB и VB - это fixed-blocked, и variable-blocked, соответственно. RECFM = U (undefined) также имеет переменную длину, но длина записи определяется длиной блока, а не управляющим полем.

BLKSIZEПараметр определяет максимальную длину блока. RECFM=FBSТакже можно было указать, что означает fixed-blocked standard, что все блоки, кроме последнего, должны быть полной BLKSIZEдлины. RECFM=VBS, или variable-blocked spanned, означает, что логическая запись может быть распределена по двум или более блокам, с флагами в RDW, указывающими, продолжается ли сегмент записи в следующий блок и / или был ли продолжен с предыдущего.

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

Разделенный набор данных

Секционированной набор данных ( ПДС ) представляет собой набор данных , содержащее множество членов , каждый из которых имеет отдельный набор суб-данные, похожий на каталог , в других типах файловых систем . Этот тип набора данных часто используется для хранения модулей загрузки (исполняемых программ с привязкой к старому формату), библиотек исходных программ (особенно определений макросов Ассемблера) и языка управления заданиями . PDS можно сравнить с файлом Zip или структурированным хранилищем COM .

Разделенный набор данных может быть размещен только на одном томе и имеет максимальный размер 65 535 дорожек.

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

Когда член удаляется, занимаемое им пространство становится непригодным для хранения других данных. Аналогичным образом, если член переписывается, он сохраняется в новом месте в задней части PDS и оставляет бесполезное «мертвое» пространство посередине. Единственный способ восстановить «мертвое» пространство - это частое сжатие файлов. Сжатие, которое выполняется с помощью утилиты IEBCOPY , перемещает все элементы в начало пространства данных и оставляет свободное полезное пространство сзади. (Обратите внимание, что на современном языке этот вид операции можно назвать дефрагментацией или сборкой мусора ; сжатие данных в настоящее время относится к другой, более сложной концепции.) Файлы PDS могут находиться только на DASD , а не на магнитной ленте , чтобы использовать структура каталогов для доступа к отдельным членам. Секционированные наборы данных чаще всего используются для хранения нескольких языковых файлов управления заданиями , операторов управления служебными программами и исполняемых модулей.

Усовершенствованием этой схемы является расширенный набор многораздельных данных (PDSE или PDS / E, иногда просто библиотеки ), представленный в DFSMSdfp для систем MVS / XA и MVS / ESA . Библиотека PDS / E может хранить программные объекты или другие типы членов, но не то и другое вместе. BPAM не может обрабатывать PDS / E, содержащий программные объекты.

Структура PDS / E аналогична PDS и используется для хранения тех же типов данных. Однако файлы PDS / E имеют лучшую структуру каталогов, которая не требует предварительного выделения блоков каталогов при определении PDS / E (и, следовательно, не исчерпываются блоки каталогов, если было указано недостаточно). Кроме того, PDS / E автоматически сохраняет элементы таким образом, что операция сжатия не требуется для освобождения «мертвого» пространства. Файлы PDS / E могут находиться только на DASD, чтобы использовать структуру каталогов для доступа к отдельным членам.

Группа данных о поколении

Группа данных поколения ( GDG ) - это группа наборов данных, не относящихся к VSAM, которые представляют собой последовательные поколения исторически связанных данных, хранящихся на мэйнфрейме IBM (под управлением ОС или DOS / VSE ).

GDG обычно каталогизируется.

Отдельный член коллекции GDG называется « Набор данных генерации ». Последний может быть идентифицирован абсолютным числом ACCTG.OURGDG (1234) или относительным числом: (-1) для предыдущего поколения, (0) для текущего и (+1) для следующего поколения.

GDG JCL и функции

Группы данных генерации определяются с помощью утилиты IDCAMS , которая позволяет задавать различные параметры.

  • LIMIT (10) ограничит количество поколений до 10.
  • SCRATCH FOR (91) сохранит каждого члена в течение ограниченного количества поколений не менее 91 дня.

IDCAMS также может удалить (и, при необходимости, удалить из каталога) GDG.

использованная литература