戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2015年 秋期 79


問題文

ファイルのあるレコードが変更されたときに、変更された内容を特定する方法として、適切なものはどれか。

選択肢

ファイルのサイズ及び更新日時を記録しておく。
ファイルの複製をとっておき、後で照合する。(正解)
レコードの件数をファイル内に記録しておく。
レコードをキー項目で昇順に並べておく。

🔒 解説は解答すると表示されます

ファイルのあるレコードが変更されたときに、変更された内容を特定する方法【ITパスポート 解説】

正解の理由

ファイル全体ではなく「どのレコード(行)が、どの項目(列)で変わったか」を特定するには、変更前の内容と変更後の内容を直接比べる必要があります。したがって、変更前の状態のファイルを保存しておき、後で比較する方法が適切です。選択肢の中では、ファイルの複製をとっておき後で照合する方法がこれにあたり、正解は です。
理由をかみ砕くと:
  • 変更内容を「特定する」=どのレコードのどのフィールドが変わったかを明らかにする必要がある。
  • そのためには「変更前の値」と「変更後の値」を並べて比較できるデータが必要。
  • ファイルの複製を保存すれば、複製(変更前)と現ファイル(変更後)を照合(=比較)して差分が分かる。
(補足)ここでいう「レコード」はデータの一まとまり、表で言えば1行分のデータを指します。照合は単に「一致するか比較すること」です。

解法ステップ

  1. 変更前のファイルを安全に保存する
    • 日付やバージョン名を付けてコピーを作る(例: data_20260714.bak)。
  2. 変更後のファイルと保存しておいた複製を比較する
    • レコード単位、フィールド単位で比較する。差分がある箇所が変更箇所。
  3. 差分の表示方法を決める
    • 「どのレコード(キー項目)」が変化したか、さらに「どの項目(カラム)」が変わったかを出力する。
  4. 必要ならログや証跡を残す
    • 誰がいつ変更したかを記録しておくと運用で役立つ。
実例(簡単な考え方):
  • レコードに主キー(社員IDなど)があれば、同じキーで行を照合する。
  • フィールドを1つずつ比較し、値が異なるものを差分として報告する。

選択肢別の誤答解説

  • ア: ファイルのサイズ及び更新日時を記録しておく。
    • ファイルのサイズや更新日時で「何か変わった」ことは検出できますが、どのレコードが、どの項目をどのように変更したかは分かりません。更新日時は「いつ更新されたか」の目安であり、内容の特定には不十分です。
  • : ファイルの複製をとっておき、後で照合する。
    • 正解。複製(変更前)と現在(変更後)を直接比較できるため、変更されたレコードと項目を特定できます。
  • ウ: レコードの件数をファイル内に記録しておく。
    • 件数はレコードの増減(追加・削除)は分かることがありますが、既存レコードの内容変更(値が変わる)は検出できません。件数が同じでも中身は変わるからです。
  • エ: レコードをキー項目で昇順に並べておく。
    • 並べておくことは検索や比較を簡単にしますが、自体が変更検出手段ではありません。並べ方は比較を効率化する手段にはなりますが、変更を特定するには「比較する対象(変更前データ)」が必要です。

よくある誤解

  1. 「更新日時が変われば、どのレコードが変わったか分かる」
    • 更新日時はファイル単位やレコード単位で記録できる場合もありますが、ファイル全体の更新日時だけではどのレコードか特定できません。レコード単位のタイムスタンプが無ければ意味が薄いです。
  2. 「並べ替えておけば差がすぐ分かる」
    • 並べ替え(ソート)は比較を簡単にしますが、比較対象がなければ意味がありません。並べ替えは補助技術です。
  3. 「件数が同じなら内容は変わっていない」
    • 件数が一致していても、既存レコードのフィールドが書き換えられていることはよくあります。件数は完全な判定には使えません。

補足コラム

実務やより便利な手法
  • レコード単位での「更新日時」や「更新者(who)」をカラムに持たせる方法があります。これにより、どのレコードがいつ誰によって変更されたかが分かります(例:updated_at, updated_by)。
  • チェックサム(ハッシュ):各レコードの値から計算した短い値(ハッシュ)を保存しておき、後でハッシュを比較すると変更の有無を高速に判定できます。ハッシュは「データの短い代表値」と考えると分かりやすいです。注意点は「どの項目が変わったか」はハッシュだけでは分からない点です(差分は別途必要)。
  • データベースなら監査(Audit)機能やトリガ(自動処理)を使って変更履歴を自動で記録する方法もあります。これらは手作業の複製より効率的で信頼性が高いです。
  • 差分ツール(diff)や専用の比較スクリプトを使えば、大きなファイルの比較も自動化できます。
簡単な例(概念):
  • 元データ:A,B,C の3レコード
  • 更新後データ:A,B',C (Bが更新)
  • 比較結果:レコードBのフィールドXが「old → new」と表示されれば完了。

FAQ

Q. 複製を常に保持するのは容量が心配です。どうすればよいですか?
A. フルコピーではなく差分バックアップ(前回から変わった部分だけ保存)や、ハッシュ+変更履歴を組み合わせる方法が有効です。データベースなら変更ログだけを保存する監査機能を使うと効率的です。
Q. チェックサム(ハッシュ)を使うとすべて解決しますか?
A. ハッシュは「変わったか」を素早く検出するのに有効です。ただし、どのフィールドが変わったかを知るには、差分比較が別途必要です。ハッシュとレコード比較を併用するのが実務的です。
Q. 手作業での比較は現実的ですか?
A. 小さなファイルなら可能ですが、現場では自動化(スクリプトやツール)を使うのが一般的です。自動化すればヒューマンエラーも減ります。

関連キーワード: データ比較、差分検出、バックアップ、変更履歴、チェックサム、監査ログ、トリガ、レコード比較, バージョン管理
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について