データセットとは
データセットとは、メインフレーム上でのファイルに相当するもので、データの格納と管理を行う単位。
・「CR/LF」(キャリッジリターンとラインフィード)について
以下で記載するPSファイルPDSファイルの扱い方に関して、改行の概念を理解しておくといいので軽く記載。
行の終わりを示す記号で、昔のタイプライターに由来するアクション。Linefeedは改行するときに紙を一行動かすアクションで、CarriageReturnは文字を打つことで横ずれしてきた紙を先頭位置に戻すアクションのこと。
・UNIXでは「LF」だけが使用される。これはシンプルな処理を目的としているため。
・Macでは古いバージョンで「CR」だけが使用されている。
・Windowsでは互換性を保つために「CR+LF」が行末に使われている。
ネーミングルールについて
メインフレームのデータセット名には、厳格なネーミングルールが存在する。名前はドット(ピリオド)で区切られ、各セグメントは最大8文字までとなっている。データセット名全体は、44文字を超えてはいけない。また、データセット名は英数字で構成され、特定の記号は使えない。最初のセグメントは通常、ユーザーIDに対応しており、これによってデータセットがユーザーごとに管理される。
| 規則 | NG例 |
|---|---|
| 各セグメントは最大8文字 | ✘ TEST510.ABCDEFGHI.FILE |
| データセット名全体44文字まで | ✘ A12345678.B12345678.C123456789.D12345678.E12345 |
| 特定の記号 | ✘ TEST510.ABC_DEF.FILE |
| 最初に数字はダメ | ✘ TEST510.ABCDEF.2FILE |
ネーミングコンベンション
データセット名には、内容や用途を明示するためのコンベンション(命名規則)が用いられる。命名規則によって、役割が明確化され管理がしやすくなる。
一般的な命名規則
| 規則 | 用途 |
|---|---|
| LIB | ライブラリ用データセット |
| PROC | プロシージャ |
| PARM | パラメータファイル |
| LOADLIB, LINKLIB | 実行可能なプログラム |
| COBLIB | COBOLのソースファイル |
データセットタイプについて
データセットには複数のタイプが存在し、用途に応じて使い分けられる。
| タイプ | 説明 |
|---|---|
| PSファイル(Physical Sequential) | シーケンシャルアクセスが行われる標準的なファイル |
| PDSファイル(Partitioned Data Set) | フォルダのように複数のメンバー(ファイル)を保持 |
| 世代ファイル(GDG: Generation Data Group) | 同じデータセットの複数のバージョンを管理 |
| PDS拡張ファイル(PDSE) | PDSを進化させた形式で、より効率的な管理が可能 |
| VSAMファイル(Virtual Storage Access Method) | 高速アクセスが必要な大規模データ向け |
PS, PDSファイルの作成
データセットを作成する際には、以下のパラメータを設定する必要がある。
| パラメータ | 説明 |
|---|---|
| LRECL | 1レコードの論理長さ |
| Block Size | データの格納単位で、効率的なストレージ使用に関係する |
| Space | データセットの物理サイズを指定 。Primaryは初期サイズ、Secondaryは追加サイズ |
| Record Format(RECFM) | レコード形式(固定長か可変長か)を決定する |
| Directory Blocks | PDSのメンバー数を指定する |
| Dataset Name Type | データセットの種類(PSやPDSなど)を定義する |
最後に
一旦、データセットの概要について整理してみました。(不十分だとは思いますが、、、)次はISPFについてまとめたいと思います。
