AS400(IBM i)で業務データを扱うときに出てくるのが、物理ファイルと論理ファイルです。初心者にとっては名前が似ていてわかりにくいですが、保守ではとても重要な考え方です。
簡単に言うと、物理ファイルは実際のデータを持つファイルで、論理ファイルはそのデータを見るための別の見方や索引のようなものです。RPGプログラムでは、物理ファイルではなく論理ファイルを参照していることもあります。
物理ファイルとは
物理ファイルは、実際にレコードを保持するファイルです。顧客マスタ、商品マスタ、売上データ、在庫データなど、業務データの本体として使われます。
- 実データを持っている
- レコード形式が定義されている
- 更新、追加、削除の対象になる
- DDSやSQLで定義されていることがある
論理ファイルとは
論理ファイルは、物理ファイルのデータを別のキー順や条件で参照するために使われます。データの本体を持つのではなく、物理ファイルをどのように見るかを定義するイメージです。
- 物理ファイルをもとに作られる
- キー順を変えられる
- 特定条件のレコードだけを見せることがある
- プログラムからは通常のファイルのように見える
保守で困りやすいポイント
プログラムで見ているファイル名が論理ファイルの場合、実際に更新される物理ファイルが別にあります。そのため、ファイル定義や影響調査では、論理ファイルだけでなく、元になっている物理ファイルを確認する必要があります。
- RPGが参照しているファイルは物理か論理か
- 論理ファイルの元になっている物理ファイルは何か
- キー項目はどれか
- アクセスパスの再作成が必要になる変更か
- 別プログラムでも同じファイルを使っていないか
確認に使うコマンド
ファイルの情報を確認するときは、DSPFDやDSPFFDを使うことが多いです。DSPFDではファイル全体の情報、DSPFFDではフィールド定義を確認できます。
よくある質問
論理ファイルを更新すると物理ファイルも変わりますか?
論理ファイルを通して更新可能な場合、実際には元の物理ファイルのデータが更新されます。どの物理ファイルにつながっているかを確認してから作業することが大切です。
物理ファイルだけ見れば十分ですか?
十分ではないことがあります。プログラムが論理ファイルを使っている場合、キー順や抽出条件が処理結果に影響するため、論理ファイルの定義も確認する必要があります。
このサイトの運営方針は、このサイトについて にまとめています。
ファイル調査で確認したい実務ポイント
物理ファイルと論理ファイルを調べるときは、データの本体、参照方法、キー順、更新有無を分けて考えると整理しやすくなります。特に、同じ物理ファイルに複数の論理ファイルが作られている環境では、どの経路でデータを読んでいるかが重要です。
- RPGのF仕様で参照しているファイル名を確認する
- DSPFDで物理ファイルか論理ファイルか確認する
- 論理ファイルなら基になる物理ファイルを確認する
- キー項目と並び順を確認する
- 更新処理がどのファイル経由で行われるか確認する
ファイル定義の変更は、見た目以上に影響が大きいことがあります。フィールド追加、桁数変更、キー変更を行う場合は、関連プログラムや帳票、外部連携まで確認してから進めると安全です。

