導入
第1章で「COBOLは銀行や保険の基幹システムで、夜間のバッチ処理として動いている」と説明しました。この章から、その「バッチ処理」の実体に踏み込んでいきます。
説明
バッチ処理とは、大量のデータをまとめて一括処理する方式のことです。たとえば銀行の勘定系システムでは、日中にATMや窓口で発生した取引データがどんどん蓄積され、その日の営業が終わった夜間に、まとめて残高計算や利息計算が行われます。
これと対になるのが オンライン処理(リアルタイム処理)です。ATMで残高を照会したときにすぐ答えが返ってくるような、1件ずつすぐに処理する方式です。
| バッチ処理 | オンライン処理 | |
|---|---|---|
| 処理単位 | 大量データをまとめて | 1件ずつすぐに |
| タイミング | 夜間・定時実行が多い | 利用者の操作に応じて即座に |
| 例 | 月次の給与計算、日次の残高更新 | ATMでの残高照会、Web画面の操作 |
COBOLは特に、このバッチ処理の領域で長年圧倒的な実績を持っています。理由は次のとおりです。
- 大量データを順番に読み込み処理する順編成ファイル処理(この章のテーマ)が、言語の基本機能として組み込まれている。
- 第3章で学んだPICTURE句による正確な数値表現が、金額計算の誤差を防ぐ。
- 数十年の運用実績により、信頼性と処理性能が実証済み。
バッチ処理では、「ファイルを開く(OPEN)→1件ずつ読む(READ)→処理する→別のファイルに書く(WRITE)→閉じる(CLOSE)」という流れが基本の型になります。この流れを、次のレッスンから順番に学んでいきます。
試すには
「1日分の取引データを集めて、夜間にまとめて処理する」という仕組みが、なぜ「1件ずつすぐ処理する」より効率的な場合があるのか、考えてみてください(システムの負荷を分散できる、大量データをまとめて効率よく処理できる、といった利点があります)。