В контексте мэйнфреймов IBM в линейке S / 360 набор данных (предпочтительно IBM) или набор данных - это компьютерный файл, имеющий организацию записи . Использование этого термина началось, например, с DOS / 360 , OS / 360 и до сих пор используется их преемниками, включая текущую z / OS . В документации по этим системам исторически предпочтение отдавалось этому термину, а не файлу .
Набор данных обычно хранится на запоминающем устройстве с прямым доступом (DASD) или на магнитной ленте , [1] однако устройства записи устройства, такие как устройства считывания перфокарт, перфорация карт и линейные принтеры, могут обеспечивать ввод / вывод (I / O) для набор данных (файл). [2]
Наборы данных не являются неструктурированными потоками байтов , а скорее организованы в различные логические записи [3] и блочные структуры, определяемые DSORG
(организацией набора данных), RECFM
(форматом записи) и другими параметрами. Эти параметры указываются во время выделения (создания) набора данных, например, с помощью операторов языка управления заданиями DD
. В запущенной программе они хранятся в блоке управления данными (DCB), который представляет собой структуру данных, используемую для доступа к наборам данных, например, с использованием методов доступа .
Записи в наборе данных могут быть фиксированной, переменной или «неопределенной» длины. [4]
Организация набора данных
Для OS / 360 параметр DCB DSORG
указывает, как организован набор данных. Он может быть физически последовательным («PS»), индексированным последовательным («IS»), секционированным («PO») или прямым доступом («DA»). Наборы данных на ленте могут быть только 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
[5] также может быть указано, что означает fixed-blocked standard
, что все блоки, кроме последнего, должны быть полной BLKSIZE
длины. RECFM=VBS
, или variable-blocked spanned
, означает, что логическая запись может быть распределена по двум или более блокам, с флагами в RDW, указывающими, продолжается ли сегмент записи в следующий блок и / или был ли продолжен с предыдущего.
Этот механизм устраняет необходимость использования каких-либо байтовых значений «разделителей» для разделения записей. Таким образом, данные могут быть любого типа, включая двоичные целые числа, числа с плавающей запятой или символы, без создания ложного условия конца записи. Набор данных представляет собой абстракцию набора записей, в отличие от файлов как неструктурированных потоков байтов.
Разделенный набор данных
Секционированной набор данных ( ПДС ) [6] представляет собой набор данных , содержащее множество членов , каждый из которых имеет отдельный набор суб-данные, похожий на каталог , в других типах файловых систем . Этот тип набора данных часто используется для хранения модулей загрузки (исполняемых программ с привязкой к старому формату), библиотек исходных программ (особенно определений макросов Ассемблера) и языка управления заданиями . PDS можно сравнить с файлом Zip или структурированным хранилищем COM .
Разделенный набор данных может быть размещен только на одном томе и имеет максимальный размер 65 535 дорожек.
Помимо участников, PDS содержит также каталог. К каждому члену можно получить доступ косвенно через структуру каталогов. Как только член обнаружен, данные, хранящиеся в этом элементе, обрабатываются таким же образом, как и набор данных PS (последовательный).
Когда член удаляется, занимаемое им пространство становится непригодным для хранения других данных. Аналогичным образом, если член переписывается, он сохраняется в новом месте в задней части PDS и оставляет бесполезное «мертвое» пространство посередине. Единственный способ восстановить «мертвое» пространство - это частое сжатие файлов. [7] Сжатие, которое выполняется с помощью утилиты IEBCOPY , [8] перемещает все элементы в начало пространства данных и оставляет свободное полезное пространство сзади. (Обратите внимание, что на современном языке этот вид операции можно назвать дефрагментацией или сборкой мусора ; сжатие данных в настоящее время относится к другой, более сложной концепции.) Файлы PDS могут находиться только на DASD , а не на магнитной ленте , чтобы использовать структура каталогов для доступа к отдельным членам. Секционированные наборы данных чаще всего используются для хранения нескольких языковых файлов управления заданиями , операторов управления служебными программами и исполняемых модулей.
Усовершенствованием этой схемы является расширенный набор многораздельных данных (PDSE или PDS / E, иногда просто библиотеки ), представленный в DFSMSdfp для систем MVS / XA и MVS / ESA . Библиотека PDS / E может хранить программные объекты или другие типы членов, но не то и другое вместе. BPAM не может обрабатывать PDS / E, содержащий программные объекты.
Структура PDS / E аналогична PDS и используется для хранения тех же типов данных. Однако файлы PDS / E имеют лучшую структуру каталогов, которая не требует предварительного выделения блоков каталогов при определении PDS / E (и, следовательно, в них не заканчиваются блоки каталогов, если было указано недостаточно). Кроме того, PDS / E автоматически сохраняет элементы таким образом, что операция сжатия не требуется для освобождения «мертвого» пространства. [7] Файлы PDS / E могут находиться только на DASD, чтобы использовать структуру каталогов для доступа к отдельным членам.
Группа данных о поколении
Группа данных поколения [9] ( GDG ) [10] - это группа наборов данных, не относящихся к VSAM [11], которые представляют собой последовательные поколения исторически связанных данных [12], хранящихся на мэйнфрейме IBM (под управлением ОС или DOS / VSE ). . [13]
GDG обычно каталогизируется. [12]
Отдельный член коллекции GDG называется « Набор данных генерации ». [12] [14] Последний может быть идентифицирован абсолютным числом ACCTG.OURGDG (1234) или относительным числом: (-1) для предыдущего поколения, (0) для текущего и (+1) новое поколение. [15]
GDG JCL и функции
Группы данных генерации определяются с помощью утилиты IDCAMS , [16], которая позволяет устанавливать различные параметры.
- LIMIT (10) ограничит количество поколений до 10.
- SCRATCH FOR (91) сохранит каждого члена в течение ограниченного количества поколений не менее 91 дня.
IDCAMS также может удалить (и, при необходимости, удалить из каталога) GDG. [17]
Рекомендации
- ^ "Что такое каталог?" .
Каталогизация наборов данных на магнитной ленте ...
- ^ «Центр знаний IBM - дом документации по продуктам IBM» . publib.boulder.ibm.com .
- ^ "Что такое набор данных?" .
набор данных .. файл, содержащий одну или несколько записей.
- ^ «Форматы записи набора данных» .
Записи имеют фиксированную или переменную длину в заданном наборе данных.
- ^ «Пример: запись в формате VBS» .
Переменной длины, блокированный, составной (VBS)
- ^ «Структура PDS», z / OS DFSMS с использованием наборов данных, версия 2, выпуск 3 (PDF) , 2 октября 2018 г., SC23-6855-30
- ^ а б Стивенс, Дэвид (октябрь 2008 г.). Что такое мэйнфрейм? . Lulu.com. п. 52. ISBN 978-1-4092-2535-5. Проверено 11 мая 2018 года .
- ^ «Сжатие многораздельного набора данных», z / OS DFSMSdfp Utilities Version 2 Release 3 (PDF) , IBM Corporation, 17 июля 2017 г., SC23-6864-30
. Разделенный набор данных будет содержать неиспользуемые области (иногда называемые газом), где удаленный член или старая версия обновленного члена когда-то проживала. Это неиспользуемое пространство освобождается только при копировании секционированного набора данных в новый набор данных или после успешного завершения операции сжатия на месте. Он не имеет значения для PDSE и при запросе игнорируется.
- ^ «Группы данных о поколении (GDG), введение с примерами» .
создать и обработать Generation Data Group или GDG на ...
- ^ «СПРАВОЧНИК ПО JCL - Генерация групп данных» .
Группы данных поколения (GDG)
- ^ "Что такое группа данных поколения?" . IBM.com .
... без VSAM ...
- ^ а б в «Наборы данных генерации» .
последовательные, исторически связанные,
- ^ «Команды VSE / VSAM» (PDF) .
- ^ "Набор данных о поколении - это один из ...
- ^ "Что такое GDG?" .
- ^ "IBM Как создавать и использовать группы данных генерации (GDG)" .
Создайте GDG ... IDCAMS сделает это
- ^ «IDCAMS - Создание и удаление базы GDG с помощью JCL» .
- Введение в новый мэйнфрейм: основы z / OS , гл. 5, «Работа с наборами данных», 29 марта 2011 г. ISBN 0738435341