データベース

基本情報技術者試験 科目A免除 修了試験 200912 実施分 問34

Web ページへのアクセス件数を調べる目的でアクセスカウンタを作成した。図に示すとおり,2 人の閲覧者が同時にアクセスしたところ,サーバ内の処理は①~④の順序で実行された。2 人がアクセスする前のアクセスカウンタの値が 100 であったとすると,処理④が終了した時点のアクセスカウンタの値は幾らになるか。
閲覧者 1 と閲覧者 2 がインターネットを経由してサーバにアクセスする。サーバ内の〔処理内容〕: ① アクセスカウンタを読み込み,1 を加算する ③ アクセスカウンタに処理①の結果を書き込む (以上が閲覧者 1 の処理) ② アクセスカウンタを読み込み,1 を加算する ④ アクセスカウンタに処理②の結果を書き込む (以上が閲覧者 2 の処理) サーバ内のデータベース(円筒)に「アクセスカウンタ」があり,各処理が読込み・書込みの矢印で接続されている。
  • ア 100
  • イ 101
  • ウ 102
  • エ 104

出典:基本情報技術者試験 科目A免除 修了試験 200912 実施分 問34

答えと解説を見る

正解:イ

覚える知識

排他制御の目的(同時更新の矛盾防止)

排他制御は、複数処理が同じデータを同時に更新して矛盾が起きるのを防ぐための制御である。

この問題で必要なこと

排他制御がないと、両者が100を読み込み、それぞれ101を書き込むため、結果は102でなく101になる(更新の消失)。

ひっかけ

2人分の加算を足して102と考えるが、読込み時点が同じなのでどちらも101を書き込む。

この知識の出題:本試験系 3 回・免除試験 12 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「トランザクションと排他制御(ロック・デッドロック)」で学ぶ

同じ知識の過去問