データセットとは
データセット(data set)は、主に
IBMの
メインフレームコンピュータで使用されるファイル形式を指します。この概念は、
OS/360|OS_360から始まり、MVS、
OS/390|OS_390、z/OSなどのオペレーティング
システムでも継続して用いられています。データセットは、
レコードを中心としたファイル(record-oriented file)であり、DASD(Direct Access Storage Device)や
磁気テープに保存されます。これらのデータセットは、単なるバイトの集まりではなく、論理的に整理された形式で存在します。これにより、データセットを操作する際には、DCB(Data Control Block)のパラメータであるDSORG(data set organization)やRECFM(record format)などを通じて構造が明確に定義されます。
データセット編成
OS/360|OS_360では、DCB内のDSORGパラメータを用いてデータセットの編成方法を指定します。代表的なものには、PSファイル(physically sequential)、ISファイル(indexed sequential)、区分データセット(POファイル、partitioned data set)、とDAファイル(Direct Access)があります。特に、
磁気テープに記録されるのはDSORGがPSに設定されたファイルのみです。また、データのアクセス方法や更新のしかたによって最適な編成を選択することが求められます。
データセットにおける
レコードの物理的構造は、編成方法にかかわらず基本的に共通しています。これは、DCBのRECFM(record format)パラメータによって設定されます。例えば、RECFM=Fは固定長(fixed length)を意味し、LRECL(logical record length)によってその長さを指定します。一方、RECFM=Vは可変長(variable-length)を示し、各
レコードの先頭には長さを示す情報(Record Descriptor Word)が含まれます。他にも、RECFM=FB(固定長ブロック)、RECFM=VB(可変長ブロック)、RECFM=FBS(固定ブロック-標準)など様々な形式があります。これにより、異なる論理
レコードが物理的なブロックにグループ化され、データの効率的な保存とアクセスが可能になります。
区分データセットの紹介
区分データセット(PDS、Partitioned Data Set)は、一つのデータセット内に複数のメンバー(member)を持つ構造となっています。この特性により、PDSはファイル
システムの
ディレクトリに似た機能を果たします。PDSは、実行可能なプログラムや
ソースコード、マクロ定義を保存するために用いられ、各メンバーは、
ディレクトリを通じてアクセスされます。メンバーは、位置が特定されると、データの入力や更新が可能になりますが、削除が行われると新しいデータが既存の空間を占めず、デッドスペースが生じることになります。この問題は、「コンプレス」と呼ばれる操作によって解決できます。
PDSEとPDSの違い
MVS/XA以降では、PDSE(Partitioned Data Set Extended)という新しい形式も使用されています。PDSEは、PDSに似た構造を持ちますが、
ディレクトリブロックのアロケーションを要求せず、デッドスペースを再生成することなく、メンバーにアクセスできるため、利便性が向上しています。また、PDSEもディスク上にのみ記録され、
ライブラリと呼ばれることも多いです。
まとめ
データセットは、
IBMメインフレームコンピュータにおけるデータ管理の中心的な概念であり、複雑な
システムでのデータの効率的な格納とアクセスを可能にします。データセットの協調的な運用は、さまざまなオペレーティング
システムで広く利用されており、今後もその重要性は増していくと考えられます。