平成28年度春期 応用情報技術者試験 午前 問28

分野:データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計)|実際に出題されたIPA過去問題

トランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が,データベースの資源SとTに対し,次のように処理A1→処理B1→処理A2→処理B2の順で専有ロックを要求する場合,デッドロックが発生する資源の組合せはどれか。 なお,ロックは処理開始時にかけ,トランザクション終了時に解除する。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より

※選択肢ア〜エは上の図表内に記載されています。

解答・解説を見る

正解:イ

AI解説

正解はイ。デッドロックは、二つのトランザクションが互いに相手のロック解放を待ち合って停止する状態である。A1がSをロック、B1がTをロックした後、A2がTを要求(Bの解放待ち)、B2がSを要求(Aの解放待ち)となる資源の組合せでは、互いに相手待ちの循環が生じてデッドロックになる。ロックはトランザクション終了時まで解放されない点がポイントである。 ア: 両トランザクションが資源を同じ順序で確保する組合せであり、後続が待つだけで循環待ちにならずデッドロックは発生しない。 イ: AとBが互いに相手の確保済み資源(SとT)を逆順で要求し合う組合せであり、循環待ちが成立してデッドロックが発生するため正しい。 ウ: 要求が競合しない、又は片方の完了後にもう片方が進める組合せであり、デッドロックは発生しない。 エ: 同一資源への要求が直列に処理される組合せであり、待ちは生じてもデッドロックには至らない。 💡 デッドロック判定は『資源の確保順序が逆になっているか』を見る。全トランザクションが同じ順序で資源をロックするよう統一すればデッドロックは予防できる、という対策も併せて頻出。

出典:平成28年度 春期 応用情報技術者試験 午前 問28 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計))の過去問