Русская Википедия:Data set (IBM)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Data set (Шаблон:Lang-ru, также иногда используется транслитерация «Датасет») — термин, используемый для файловой системы мейнфреймов от IBM; коллекция из логических записей, хранящихся в виде кортежа. Набор данных можно сравнить с файлом, но в отличие от файла набор данных является одновременно и каталогом, и файлом файловой системы, и не может содержать в себе другие наборы.

На практике часто можно встретить написание в одно слово (dataset), что, строго говоря, неправильно, но допустимо. Такая практика возникла из-за того, что слово приходится использовать в контексте имени самого набора, которое не поддерживает пробелы между символами.

Описание

Файловая система мейнфрейма ориентирована на хранение записей (Шаблон:Lang-en), которые являются неделимыми единицами хранения. Множество записей объединяются в группы, которые и называются наборами данных. Вне какого-либо набора запись хранится не может. Записи в наборах данных используются приложениями, например, как входные данные, либо приложение может порождать записи как продукт своей работы. Так, записями набора данных могут быть текстовые данные (например, исходные коды программ), объектные файлы, загружаемые модули, записи с конфигурационными переменными и т.д.

К набору данных можно обратиться, указав точное место его хранения, либо, если ранее для набора было зарезервировано имя в файловой системе, по имени. Наборы данных с уникальными именами, называются каталогизированными (Шаблон:Lang-en). Наборы данных не могут вкладываться друг в друга, поэтому для имен используется система квалификаторов: имя составляется из восьмисимвольных квалификаторов отделенных друг от друга точкой, при этом имя набора не может превышать 44 символов, например USER.MYDIR.PROJ.SOURCE. Физически наборы могут хранится на разных типах носителей (магнитные диски или ленточные кассеты), кроме того наборы могут быть размещены в виртуальной памяти.

В мейнфреймах для устройств хранения, поддерживающих прямой доступ к данным, используется термин DASD (Шаблон:Lang-en). DASD-устройство логически делится на тома (Шаблон:Lang-en), которые хранят разные типы наборов. Для того чтобы система знала, какие наборы хранятся на данном DASD-устройстве, она ведет специальный «мастер-каталог», или другими словами перечень каталогизированных наборов.

Сам набор данных не только объединяет записи, но и определяет правила для этих записей (формат хранения). К параметрам формата хранения относятся размер блока записи (тип блока), максимальный размер одной записи набора. Также должен быть определен тип самого набора данных, от которого зависит как он будет представлен логически (в виде непрерывной последовательности записей, в виде отделённых друг от друга членов (Шаблон:Lang-en) и др.).

Способы размещения наборов

В томах одного DASD-устройства может быть размещено множество наборов разного типа. В пределах одного устройства хранения имена наборов должны быть уникальными. Каждый том на устройстве делится на дорожки (Шаблон:Lang-en). В нулевой дорожке, нулевого цилиндра хранится метка DASD, которая указывает на местоположение VTOC-оглавления тома (Шаблон:Lang-en) — некоторый аналог MBR и GPT одновременно. VTOC хранит в себе имена всех хранящихся в томе наборов, номера дорожек, с которых каждый набор начинается, размеры и ограничения в доступе. Так как наборы привязаны к своим томам, то, при поиске набора, операционная система сначала просматривает список видимых томов, а затем, когда нужный том найден, обращается к его VTOC.

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

Файловая система мейнфрейма при чтении набора данных не ориентируется на байты самих данных, а использует информацию о формате набора (RECFM). Формат определяет сколько байт данных может быть записано в один блок набора размером BLKSIZE. В мейнфреймах IBM используются следующие форматы:

  • F (Fixed) — фиксированный, при котором один физический блок соответствует одной логической записи, т.е. BLKSIZE = LRECL.
  • FB (Fixed Blocked) — фиксированный, блочный, при котором n логических записей объединяются в один физический блок (BLKSIZE = n · LRECL).
  • V (Variable) — переменный, при котором один физический блок соответствует одной логической записи, но при этом первые четыре байта блока зарезервированы для его описания. Два байта из четырех кодируют размер блока, благодаря чему размер каждой записи набора LRECL может изменяться в пределах от 4 до 32 760 байт (LRECL = 4 + <размер данных>).
  • VB (Variable Blocked) — переменный, блочный, при котором несколько логических блоков переменной длины размещаются в одном физическом, или другими словами физический блок хранит несколько V-блоков. Чтобы описать размер физического блока для V-блоков, для него также резервируется 4 байта под описание (BLKSIZE = 4 + n · LRECL).
  • U (Undefined) — неопределенный, при котором переменной длины как логические записи, так и физические блоки. Такой формат используется, например, в исполняемых модулях.

Записи наборов, которые отображаются в виртуальную память (так называемые VSAM-наборы), также хранятся на DASD-устройстве, но отдельно от не VSAM-наборов, в экстентах, называемых «контрольными интервалами» (Шаблон:Lang-en, CI), и каталогизируются отдельно. CI устроен немного сложнее и является аналогом блока: он представлен областью, в которой друг за другом размещаются записи, после которых идут RDF поля по количеству записей (Шаблон:Lang-en) и одно CIDF поле (Шаблон:Lang-en). Между первым RDF полем и последней записью может быть незаполненное пространство. RDF поля описывают записи набора по отдельности, а CIDF описывает контрольный интервал в целом. VSAM-наборы используются внутри приложений.

Организация набора

Другой характеристикой набора является его организация DSORG, которая подсказывает порядок его чтения и обновления. Различают следующие типы организации:

  • PS (Physical Sequential) — записи размещаются последовательно и читаются последовательно. Такая организация характерна для наборов, хранящихся на магнитных лентах.
  • PO (Partitioned Organization) — набор может фрагментироваться на носителе на множество частей, к каждой из которых можно обратиться по отдельности.
  • DA (Direct Access) — записи набора могут располагаться в любом порядке. Доступ к каждой записи осуществляется по относительным адресам.
  • IX (Indexed Sequential) — записи в наборе записываются и извлекаются по ключу.

Для каждого типа организации применим один или несколько методов доступа, которые предоставляет операционная система. Например для наборов с организацией PS применимы BSAM (Basic sequential access method) и QSAM (Queued sequential access method) методы доступа; для PO-наборов используется BPAM (Basic partitioned access method), а для DA-наборов — BDAM (Basic direct access method) метод.

С появлением виртуальной памяти, появились наборы организованные специально под неё, например KSDS, LDS, RRDS и др., для которых используется свой метод доступа — VSAM (Virtual storage access method).

Литература