ファイル編成法

ファイル編成法（— へんせいほう）とはコンピュータがディスク装置やテープ装置などの2次記憶装置上に、レコードをどのように配置しアクセスするかについての方式である。
概要.
汎用コンピュータ(メインフレーム)や一部のオフィスコンピュータの専用オペレーティングシステム(OS)では、各ファイル(データセット)内の、レコードの属性(固定長/可変長/非定型、固定長の場合のレコード長、格納・検索方法など)を定義する。
なお、いわゆるオープンシステムではバイトストリームが基本であり、ファイル編成法は存在しない(詳細は後述)。
また、汎用コンピュータでUNIX系などのOSを使用する場合は、直接稼動の場合はファイル編成法は無関係だが、UNIX互換環境など間接稼動の場合は(専用OSの側では)格納方式(器)として使用されている場合がある。
種類.
代表的なメインフレーム専用OSであるMVS系の場合、大きく分けて次の5種類がある。(富士通、日立製作所のIBM互換OSもほぼ同様である。)
レガシーシステムとオープンシステムの比較.
初期のメインフレームは、プログラムや業務データをレコード単位でパンチカード等で入力し、レコード単位でプリンター等に出力する形が基本だった経緯もあり、オペレーティングシステム標準で多様なレコード管理機能を持っている。
プログラマーやアプリケーションプログラムと、システムの管理運用が分離されているといえる（管理者やオペレーターはデータセットの定義を参照してJCLを修正するだけで、格納先をディスク装置からテープ装置に変えたり、ブロックサイズ変更による最適化などができる）。
これに対してMS-DOS、Windows、UNIX系などのOSでは、OSによる管理はファイルシステムまでであり、各ファイル内部のフォーマット(ファイル構造)は、各アプリケーションに任されている。(OS自身の使用するファイルも含めて、テキストファイル・CSV・XMLなど各アプリケーション間の標準化は各種あるが、OSが直接に管理をしているものではない。)
このためOSから見たファイルは1形式(バイトストリーム)に標準化され、各アプリケーションはファイルを自由なフォーマットで扱える反面、各アプリケーションごとのファイル形式は標準化されておらず、各アプリケーションに精通していないとレコード編集は困難である(リスクを伴う)。
言い換えると、レガシーシステムは定型業務中心・OS中心・管理運用重視、オープンシステムはプログラマ中心(自由自在、自由放任)、という経緯・文化の相違の1つとも言える。
レガシーシステムとオープンシステムの相互運用.
オープンシステムのファイルをレガシーシステムで扱う場合は、可読ファイルは順編成ファイル(可変レコード長)に変換し、バイナリーは非定型フォーマットとする場合が多い。改行コードの有無と文字コードには別途注意が必要。
レガシーシステムのファイル(データセット)をオープンシステムで扱う場合は、可読ファイルはフラットテキストファイルに変換し、バイナリーはそのままバイナリーファイルとする場合が多い。VSAM KSDSなどは必要に応じてRDBMS上のテーブル化を、テープ装置上の順編成ファイルは直接読めないのでディスク装置への移動やツールの活用を検討する必要がある。改行コードの有無と文字コードには別途注意が必要。