DB2のPF/LFは「何を・どの順で・どこから」見れば迷子にならない
✅ はじめに:第2回で扱うこと
第1回では、RPGⅢの画面プログラムを読むときに迷子にならないための「読む順番」を整理しました。
今回はその続きとして、RPGⅢの理解に必ず出てくる DB2のPF(物理ファイル)/LF(論理ファイル) を、若手向けに整理します。
現場で本当に困るのは、知識不足というよりも「辿り方が分からない」ことです。
PF/LFも同じで、用語を覚えるより先に、**見る順番(手順)**を持つことが大事です。
🎯 この記事のゴール
この記事のゴールは次の3つです。
- 🧭 PF/LFの役割を「短い言葉」で説明できるようになる
- 🔗 RPGⅢのソースから、参照しているPF/LFを 辿れる ようになる
- ⚠️ LF依存(並び順・抽出条件)の“落とし穴”を避けられるようになる
🧩 1. まず結論:PF/LFはこう捉えると腹落ちします
- 🧱 PF(Physical File):実データの入れ物(データの本体)
- 🧭 LF(Logical File):PFを「どう見せるか」の設計図
- 例:並び替え、キーの変更、条件付、複数PFの結合(※環境によって使われ方あり)
✅ 若手向けの一言
PF=データそのもの/LF=検索・参照の“見方(アクセス経路)”
これだけでも、ソースを読むスピードが上がります。
🔍 2. PFを見るときのチェックポイント(ここだけ押さえればOK)
PFは、次の3つだけ先に見てください。
- 🧾 レコード形式(項目の一覧):どんな項目があるか
- 🔑 キー(主キー的な考え方):何で一意になる想定か
- 📏 項目の型・桁・小数:金額・数量・日付の落とし穴になりやすい
✅ ポイント
PFを読む目的は「全部暗記」ではなく、
このPFは何のデータで、何をキーにしているかが分かれば十分です。
🧭 3. LFを見るときのチェックポイント(若手が迷子になる場所)
LFは“見せ方”なので、見るべきポイントがPFと違います。
LFでは、次を優先してください。
- 🔗 参照元PF(どのPFを見ているか)
- 🔑 キー順(並び順):ここが結果に直結します
- 🧹 選択/省略(抽出条件):LF側で勝手に絞っていることがあります
- 🧩 結合(複数PF):結合LFの場合、影響範囲が一気に広がります
⚠️ 超重要
LFは「便利な近道」ですが、
LFに依存した処理は、SQL化・改修で“結果が変わる事故”が起きやすいです。
🧷 4. RPGⅢからPF/LFを辿る“最短手順”
ここが実務で一番効きます。
RPGⅢのプログラムからPF/LFを辿る手順は、基本これで固定です。
🥇 手順①:F仕様で「触っているファイル」を全部拾う
- 🗂️ F仕様に出てくるファイル名をメモする
- その中で、DBファイル(PF/LF)を区別する
- 「更新(Update)か参照(Input)か」も一緒にメモする
🥈 手順②:C仕様で「READ系/CHAIN系/UPDATE系」を探す
行単位で追うのではなく、まずは “何でアクセスしているか” を拾います。
- 📥 READ / READE / READP(順次読み)
- 🔎 CHAIN(キー指定で1件取得)
- ✍️ UPDATE / WRITE / DELETE(更新系)
✅ ここでの目的
「このプログラムは、どのファイルを、どういう方式で触っているか」を掴むことです。
🥉 手順③:そのファイルがPFかLFかを確認する
- まずそのファイルがLFだったら、参照元PFを確認
- さらに、そのLFの キー順・抽出条件 を確認
🧨 5. よくある落とし穴(ここで事故ります)
🧯 落とし穴1:LFの並び順に依存して“暗黙の仕様”になっている
「先頭の1件が最新」「最後の1件が最大」など、
LFのキー順=仕様になっていることがあります。
→ ✅ 対策
SQL化や改修の時は、ORDER BYを明示する(“暗黙”をやめる)
🧯 落とし穴2:LF側の抽出条件で“見えていないデータ”がある
LFに選択条件が入っていて、
プログラム側はその存在を前提にしているケースがあります。
→ ✅ 対策
LFを確認する際は「このLF、絞っていないか?」を必ず見る
🧯 落とし穴3:結合LFが “便利すぎて” 影響範囲を読めなくする
結合LFは、参照しているPFが増えるため、
改修時に影響範囲が広がりやすいです。
→ ✅ 対策
結合LFを使っている箇所は、棚卸し時点で 要注意リストに入れる
🚀 6. DX視点の一言:PF/LFの理解は「見える化」の核です
DXやモダナイズの議論で、いきなり「クラウド」「刷新」「API」を語っても、
現場が止まるケースは少なくありません。
現実には、次の順番が堅いです。
- 🔍 どの画面が、どのPF/LFを触っているか(現状把握)
- 🧩 どこがLF依存(暗黙仕様)か(リスク可視化)
- 🛠️ どこから切り出せば安全か(段階移行の設計)
その意味で、PF/LFの読み方は
“棚卸し・見える化”を成立させるための基礎スキルになります。
