第5章 ファイルハンドリング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
典型的な現代のコンピューター言語では、ファイルを使うことはあまりないかもしれない。 プログラミングの本やマニュアルでも、このトピックは扱われていないかもしれない。 多くのアプリケーションは必ずしもデータ処理を扱うわけではないので、これは理にかなっている。
しかし、メインフレームの場合は事情が異なる。 ファイル・ハンドリングはプロセスの不可欠な部分である。 これは、企業が元帳や3×5インチのカードを使った面倒なアプローチを検索と置換する方法を発見したがっていた初期の時代にさかのぼる。 メインフレームとCOBOLは、バックオフィスを自動化する方法として注目された。
そのために、さまざまなタイプのファイルが用意されている。 シーケンシャル、インデックス付き、相対などがある。 この章では、最初の2つを取り上げ、COBOL言語がそれらをどのように使用できるかを示す。 相対ファイルはあまり使用されないので、本書では取り上げない。
記録とファイル
メインフレームのファイルは通常、関連するフィールドのグループであるレコードのセットで構成される。 レコードの例は顧客マスター・ファイルで、姓、名、住所、与信限度額などのフィールドがある。
メインフレームは、初期化時にレコードを実記憶装置または中央記憶装置に読み取る。これは、パソコンのランダム・アクセス・メモリー(RAM)に似ている。 容量が大きくても、ファイルはストレージの限界を簡単に超えてしまう。 これが、メインフレームが一度に1つまたは少量のレコードを読み取り、実記憶を圧迫しないようにする理由である。
通常、レコードは固定長で、それぞれ同じ文字数である。しかし、データセットに可変長のレコードがある場合もある。 このような場合、各レコードの長さを示すために追加のCOBOLコーディングが必要になる。 この章では、これがどのように機能するかを示す。
連続ファイル
シーケンシャル・ファイルは フラット・ファイルとも呼ばれ、文字で構成されている。 Windowsのメモ帳やMacのテキストエディットがこれにあたる。 かなりシンプルだ。
プロセスをスピードアップするために、通常、シーケンシャルファイルはブロックされる。 これは、レコードをグループとしてロードできることを意味する。 固定長や可変長のレコードを持つことも可能である。
シーケンシャル・ファイルは、メインフレームがテープ・ドライブを使用していたときに生まれた。 基本的に、この種のメディアに情報を保存する唯一の方法は、一度に1レコードずつ行うことだった。 その結果、この方法が有効であり続けることになった。
確かに、テープ・ドライブはほとんど過去のものとなった。 しかし、シーケンシャル・ファイルはいまだにメインフレームの世界の主要な部分を占めている。 事実、大量のデータを扱うのに非常に効率的なのだ。
しかし、シーケンシャルファイルではソートを使うのが一般的であり、これによって情報の処理が容易になる。 これは、レコードのどのフィールドを使っても可能である。
注意すべき規約がいくつかある。 たとえば、最初のフィールドはレコードのシーケンス番号またはIDでなければならない。 また、従業員番号のようなユニークな数値でなければならない。 次に、他のフィールドを重要度の高い順に並べる。 顧客マスターファイルの場合、これは名前と住所になる。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access