物理ファイルと論理ファイルについて

おはようございます。皆さんはIBMi (AS/400)使っていますでしょうか?
私は最近久しぶりにIBMiの開発を行うことになりました。

久しぶりということで自分への備忘録も兼ねて、データベース管理にて使用する、
物理ファイル(PF)と論理ファイル(LF)と呼ばれる2種類のファイルについて簡単にまとめてみました。

・物理ファイル(Physical File)
物理ファイルは実際にデータが格納されるファイルで、データベースのテーブルに相当するものになります。
各物理ファイルは複数のレコード(行)を持ち、各レコードは複数のフィールド(列)から構成されます。
物理ファイルには通常1つのレコードフォーマット(フィールドの構成)が定義され、それに基づいてデータが格納されます。

・論理ファイル(Logical File)
論理ファイルは物理ファイルのデータを特定の順序や条件で参照するための定義ファイルです。
厳密には異なりますが、データベースでいうビューの様なイメージになります。
論理ファイルにデータは格納されず、あくまで物理ファイルのデータを特定の見せ方で参照するための構造になります。

SQLで表現するならば、
SELECT * FROM GDMP
ORDER BY GDSBCD, GDGDCD
の様になります。

商品名カナ(GDGDKN)の昇順、商品コード(GDGSCD)の降順に並び変えられた状態のデータを見ることが出来ます。

SQLで表現するならば、
SELECT * FROM GDMP
ORDER BY GDGDKN, GDGDCD DESC
の様になります。

商品区分(GDGDKB)が’01’で絞り込まれ、商品コード(GDGSCD)の昇順に並び変えられた状態のデータを見ることが出来ます。

SQLで表現するならば、
SELECT * FROM GDMP
WHERE GDGDKB = ’01’
ORDER BY GDGDCD
の様になります。

以上が物理ファイルと論理ファイルの概念になります。
IBMiを扱う上で必ず使用するので、双方の違いをしっかりと理解するとプログラムを組みやすくなるかと思います。