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

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

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

Наборы данных не являются неструктурированными потоками байты, а организованы в различные логические записи[3] и блочные структуры, определяемые ДСОРГ (организация набора данных), RECFM (формат записи) и другие параметры. Эти параметры указываются во время выделения (создания) набора данных, например с помощью Язык управления заданиями DD заявления. В запущенной программе они хранятся в Блок управления данными (DCB), который представляет собой структуру данных, используемую для доступа к наборам данных, например, используя методы доступа.

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

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

Для OS / 360 DCB ДСОРГ Параметр указывает, как организован набор данных. Он может быть физически последовательным («PS»), индексированным последовательным («IS»), разделенным («PO») или прямым доступом («DA»). Наборы данных на ленте могут быть только DSORG = PS. Выбор организации зависит от того, как будет осуществляться доступ к данным и, в частности, от того, как они будут обновляться.

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

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

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

В BLKSIZE Параметр определяет максимальную длину блока. RECFM = FBS[5] можно также указать, что означает стандарт с фиксированной блокировкой, что означает, что все блоки, кроме последнего, должны были быть полностью BLKSIZE длина. RECFM = VBS, или же изменяемый блокированный составной, означает, что логическая запись может быть разделена на два или более блоков, с флагами в RDW, указывающими, продолжается ли сегмент записи в следующий блок и / или был ли продолжен с предыдущего.

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

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

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

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

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

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

Усовершенствованием этой схемы является расширенный набор многораздельных данных (PDSE или PDS / E, иногда просто библиотеки), представленный в DFSMSdfp для MVS / XA и МВС / ЕКА системы. Библиотека 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 (работает Операционные системы или ДОС / ВСЕ ).[13]

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

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

GDG JCL и функции

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

  • ПРЕДЕЛ (10) ограничит количество поколений до 10.
  • ЦАРАПИНА ДЛЯ (91) сохранит каждого участника до ограниченного # поколений не менее 91 дня.

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

Рекомендации

  1. ^ "Что такое каталог?". Каталогизация наборов данных на магнитной ленте ...
  2. ^ «Центр знаний IBM - Дом документации по продуктам IBM». publib.boulder.ibm.com.
  3. ^ "Что такое набор данных?". набор данных .. файл, содержащий одну или несколько записей.
  4. ^ «Форматы записи набора данных». Записи имеют фиксированную или переменную длину в заданном наборе данных.
  5. ^ «Пример: формат записи VBS». Переменной длины, блокированный, составной (VBS)
  6. ^ «Структура ПДС», z / OS DFSMS с использованием наборов данных, версия 2, выпуск 3 (PDF), 2 октября 2018 г., SC23-6855-30
  7. ^ а б Стивенс, Дэвид (октябрь 2008 г.). Что такое мэйнфрейм?. Lulu.com. п. 52. ISBN  978-1-4092-2535-5. Получено 11 мая, 2018.
  8. ^ «Сжатие многораздельного набора данных», z / OS DFSMSdfp Utilities Версия 2 Выпуск 3 (PDF), Корпорация IBM, 17 июля 2017 г., SC23-6864-30, Разделенный набор данных будет содержать неиспользуемые области (иногда называемые газом), в которых когда-то находился удаленный элемент или старая версия обновленного элемента. Это неиспользуемое пространство освобождается только тогда, когда секционированный набор данных копируется в новый набор данных или после успешного завершения операции сжатия на месте. Это не имеет значения для PDSE и игнорируется при запросе.
  9. ^ «Группы генерации данных (GDG), введение с примерами». создать и обработать Generation Data Group или GDG на ...
  10. ^ «СПРАВОЧНИК ПО JCL - Генерация групп данных». Группы данных поколения (GDG)
  11. ^ "Что такое группа данных поколения?". IBM.com. ... без VSAM ...
  12. ^ а б c «Наборы данных генерации». последовательные, исторически связанные,
  13. ^ «Команды VSE / VSAM» (PDF).
  14. ^ «Набор данных о поколении - это один из ...
  15. ^ "Что такое GDG?".
  16. ^ "IBM Как создавать и использовать группы данных генерации (GDG)". Создайте GDG ... IDCAMS сделает это
  17. ^ «IDCAMS - Создание и удаление базы GDG с помощью JCL».