サンプル問題1 問63

一つのファイルを複数の人が並行して変更し,上書き保存しようとするときに発生する可能性がある問題はどれか。

  • 同じ名前のファイルが多数できて,利用者はそれらを判別できなくなる。
  • 最後に上書きした人の内容だけが残り,それ以前に行われた変更内容がなくなる。
  • 先に変更作業をしている人のPC上にファイルが移動され,ほかの人はそのファイルを見つけられなくなる。
  • ファイルの後ろに自動的に変更内容が継ぎ足され,ファイルの容量が増えていく。
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
例として1つのファイルを2人(Aさん,Bさん)が並行して更新する作業を考えてみましょう。ファイルにはデータとして数値の「1」が格納されていて、2人の作業者は「ファイルの数値を読み出し、それに1を加算した値でファイルの内容を更新する」という処理を行うこととします。
  1. Aさんがファイルから値「1」を読み出す。
  2. Bさんがファイルから値「1」を読み出す。
  3. Aさんが「1」に1を加算した「2」でファイルの内容を更新する。
  4. Bさんが「1」に1を加算した「2」でファイルの内容を更新する。
1を加算する処理が2回行われたのですから、ファイルの内容は「3」になっていなければならないのに、実際にはBさんが最後に更新した値である「2」になっています。

このように複数人が同時に更新作業を行うと、最後の人の内容だけが残り、それ以前に行われた変更内容はなかったことのようになってしまうことがわかります。

データベース管理システムでは、このようなデータ矛盾を避けるために一人が更新処理を行っている間、他のユーザーに更新作業を待たせる排他制御を行うことで、データの完全性を保っています。

Pagetop