問題本文
ファイルのあるレコードが変更されたときに,変更された内容を特定する方法として,適切なものはどれか。
選択肢
- ア.ファイルのサイズ及び更新日時を記録しておく。
- イ.ファイルの複製をとっておき,後で照合する。
- ウ.レコードの件数をファイル内に記録しておく。
- エ.レコードをキー項目で昇順に並べておく。
正解
イ. ファイルの複製をとっておき,後で照合する。
解説
ファイルの変更内容を特定する方法を問う問題. ファイルの「変更があったかどうか」だけならハッシュ値比較やファイルサイズ・更新日時の確認でも検出できるが,「変更された具体的内容を特定する」には変更前と変更後の両方を保持し差分(diff)を取る必要がある. 変更前のファイルの複製を取っておき,変更後と照合(differential比較)すれば,どのレコード・どのフィールドが変わったかを正確に特定可能. ファイルサイズと更新日時の記録は変更の有無は検知できるが内容までは分からない. レコード件数記録も件数の増減検知のみ. ソート順保持は内容変更検出には無関係. 「変更前のコピー保持+差分比較」が変更内容特定の王道.
選択肢ごとの解説
- ア.誤り. ファイルサイズや更新日時の記録は「変更があったか」の検知には役立つが,「どの内容が変更されたか」までは分からない. サイズ・日時は変更検知のメタ情報であって,具体的なレコードやフィールドの変更内容を特定する目的では情報不足となるため,本問の要件を満たさない選択肢.
- イ.正解. ファイルの複製(変更前)を取っておけば,変更後のファイルと比較して変更箇所を特定できる. 差分比較ツール(diffコマンド等)で具体的にどのレコード・どのフィールドが変更されたかを正確に把握可能で,変更内容の特定という設問要件を満たす最も直接的かつ確実な方法.
- ウ.誤り. レコード件数をファイル内に記録するのは件数の増減検知が主目的で,既存レコードの内容変更は検出できない. 件数が変わらない更新(値の書き換え)では件数情報からは何も変化が分からないため,変更内容の特定要件を満たさない選択肢となる. 件数情報だけでは不十分.
- エ.誤り. レコードをキー項目で昇順に並べておくのはソート順を整える操作で,変更内容の検出とは直接関係しない. 並べ替えはアクセス効率向上のための操作で,変更があった場合の検知や内容特定には別途比較対象(変更前データ)が必要. 設問の要件には合致しない選択肢.
ITパスポート 2015年 (平成27年 秋期) の過去問一覧へ戻る・問79