平成27年度 秋期 ITパスポート試験 公開問題 問79 解説 レコード変更の特定
ファイルのあるレコードが変更されたときに, 変更された内容を特定する方法と して, 適切なものはどれか。
- ア ファイルのサイズ及び更新日時を記録しておく。
- イ ファイルの複製をとっておき, 後で照合する。 ✓ 正答
- ウ レコードの件数をファイル内に記録しておく。
- エ レコードをキー項目で昇順に並べておく。
解説
この問題は、ファイルの内容がどう変わったかを突き止めるために、変更前の状態をあらかじめ保存しておくという基本原則を理解しているかを問うています。正解はイの「ファイルの複製をとっておき、後で照合する」です。
変更内容を特定するための基本原理
あるデータの変更内容を知りたい場合、現在の状態だけを見ても、以前どのような値が入っていたかは分かりません。過去の状態と現在の状態を比較する「差分抽出」が必要になります。
これを実現する最も確実な方法は、変更前の状態をコピー(複製)として保存しておくことです。元のファイルと複製したファイルを並べて項目ごとに比較(照合)すれば、どこが書き換わったのかを正確に特定できます。
なぜ他の選択肢では不十分なのか
他の選択肢は、ファイルの管理や整理には役立ちますが、変更内容を特定するための手段としては不十分です。
アの「サイズと更新日時」は、ファイルがいつ変更されたかや、おおよそのデータ量の変化は分かりますが、具体的にどのレコードのどの値が変わったのかまでは分かりません。
ウの「レコード件数」は、ファイルからデータが削除されたり追加されたりしたことは分かりますが、既存のレコードの中身が修正された場合には変化がないため、変更を検知できません。
エの「キー項目で並べ替える」ことは、データの検索効率を高めるための手法(ソート)であり、変更内容の追跡とは無関係です。
実務における差分管理の考え方
この知識は、ITの現場における「バックアップ」や「データ整合性のチェック」の考え方の基礎となります。
実務では、単にファイルをコピーするだけでなく、システムが自動的に変更内容を記録する「ログ(履歴)」を利用することが一般的です。例えば、データベースでは更新前後の値を記録する「ジャーナル」という仕組みがあったり、プログラム開発の現場ではGitのような「バージョン管理システム」を使用して、誰がいつどこを書き換えたかを詳細に記録しています。
試験対策としては、単にバックアップをとるだけでなく、そのバックアップを使って新旧を「照合(比較)」することによって初めて変更箇所が特定できるという、比較プロセスが重要であると覚えておきましょう。