Набор данных (мэйнфрейм 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.
использованная литература
- Введение в новый мэйнфрейм: основы z / OS , гл. 5, «Работа с наборами данных», 29 марта 2011 г. ISBN 0738435341