PSデータセットとは?

By 神居 - Posted: 2010/09/17 Last updated: 2010/09/17 - Leave a Comment
印刷用ページの表示 印刷用ページの表示

PSデータセット(順次データセット)とは?

順次データセットはMVSにおける最も基本的なファイルです。ファイルの中はレコードという単位で分割されます。データを記録したレコードが順番に並んでいるため順次編成ファイルとも呼ばれます。ディスクやテープなどに書き込まれた順次編成ファイルとしての実体データが順次データセットあるいは順編成データセットということになります。

順次データセットは単に先頭からレコードを並べているだけの単純な構造なので、シンプルでわかりやすくプログラミングも容易です。区分データセットやVSAM、さまざまなデータベースではディスクに格納しなければなりませんが、順次データセットはディスク以外のテープ、紙(印刷用紙)などへの記録もできます。現在では使われませんが、過去には紙カードや紙テープといったメディアもありました。
業務プログラムにおいては処理の中間で作成される作業用データファイルや、帳票データの出力先として多用されています。その他業務処理用のベース・データファイルとしても利用されます。制御プログラムやユーティリティーにおいては、データセットやボリュームのバックアップファイルやログファイルの出力先としてよく使われています。

まとまった量のデータを格納しておくには簡単で便利ですが、レコードは単に順番に並んでいるだけなのでデータの再利用時も先頭から順番にしか取り出せません。そこでレコードの1部をキーとして扱い、キーに対応したレコードがデータセット内のどこにあるかの目次(インデックス)を持って、キーによるレコード検索を可能にする索引順データセット(ISAM)、レコードに番号を付けてその番号を指定してダイレクトに目的のレコードを取り出せるようにした直接データセット(DAM)などのデータセットもありました。ISAMもDAMも順次データセットの応用編ともいうべきものでしたが、今ではVSAMのKSDSとRRDSによって置き換えられています。特にMVS(z/OS)ではISAMはもはやサポートすらされていません。キーやレコード番号によるアクセスはアプリケーションプログラムでは必須のしくみですが、それらはVSAMやデータベース製品を利用するのが一般的になっています。

現在のMVSでは基本的なデータセット編成としては順次データセットと区分データセットの2種類と考えていいでしょう。z/OSにおいてはこの2種類をベースに、ストライピングなどをサポートした拡張順次データセット、自動的に拡張されるディレクトリーや圧縮不要なしくみを持つ拡張区分データセット(PDSE)、のように従来のデータセットにはなかった追加機能をサポートしたり、欠点を克服したり、の拡張がなされています。

データセットを構成するレコードにはいくつかの種類がありますが、大きく固定長レコードと可変長レコードに分かれます。レコードは通常複数でまとめられてブロックとなり、ディスクやテープにはブロック単位で書き込まれます。MVS(MSP、VOS3)ではWindowsやUnixと異なり、ファイル(データセット)は必ずレコードによって構造化される、という特徴を持っています。バイト列が並んでいるだけのストリームではなく、例えばとりあえず2バイトだけ読む、その内容によって次に読むべき長さを変える、改行文字(CRLF)を見つけたらその行は終わり、といったアクセスの仕方ではありません。一般のアプリケーションプログラムではレコードを単位にして読み書きするのが基本です。そのためデータセットのしくみ(ファイルシステム)を理解するには、どのような形式のレコードがあり、どのように長さを表現するか、といった知識も必要になります。またそれらはプログラミングだけでなく、データセットを作成する場合にも必要になるので、プログラマーに限らずMVSシステムに携わる人は職種に限らず覚えておきたいことです。
データセットを構成するレコードの構造、OSが提供する順次データセットのアクセスサービスなどに関しては「z/OSのしくみ:データセットの種類とアクセス法:レコードとブロック、レコード形式および順次データセットとQSAM・BSAM」で解説しています。

Posted in キーワードから(何が知りたいですか) • • Top Of Page