DBデータベーススペシャリスト試験 午前Ⅱ
平成31年度春期 データベーススペシャリスト 午前Ⅱ 問10
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アT₁
- イT₂
- ウT₃
- エT₄
解き方のヒントを見る
同時実行の競合を整理する視点
同時実行の問題では、複数の処理が共有データへ触れる順序と、各処理が保持する資源に注目し、状態の変化を時系列で整理して、処理間の関係を比較しながら確認します。
この問題で問われていること
確認する観点を、処理ごとの操作順序とロックの取得・解放が重なる箇所に一つだけ絞り、待ちや競合が生じる可能性を、時系列のつながりとして丁寧に追い、順番を崩さず確認します。
視点
各トランザクションを独立した列に分け、読み取り・更新・確定などの出来事を時系列に並べます。そのうえで、同じ対象に関わる区間がどこで重なるかを確認します。
確認ポイント
- 処理ごとの操作を時系列に並べ、共有対象へ触れる順番を確認する
- 同じ対象を扱う処理どうしで、資源を保持する区間の重なりを確認する
- 待機や中断が起こり得る箇所を、各処理の進行順に沿って確認する
正解と解説を見る
正解
イ
解説
各トランザクションのロック取得を時系列に追うと、T2はCの専有ロック取得を、T1が保持する共有ロックのため待ちます。また、T3はA、T4はBをめぐってそれぞれ待ち状態になります。図の中で後続の待ち関係を持つ位置に入るのはT2です。
理由
T1はAとCを共有ロックで参照したまま、t10直前までコミットしていません。T2のCに対する共有ロック取得は両立しますが、その後の専有ロック取得はT1の共有ロックと競合するため、T2からT1への待ちが発生します。
比較
T3のAに対する専有ロック要求もT1の共有ロックを待ち、T4のBに対する専有ロック要求はT2の共有ロックを待ちます。したがって図はT2を中継する関係を含み、aに対応するのはT2です。
選択肢ア
これは不正解だよ。T1はAとCの共有ロックを保持しており、T3のAに対する専有ロック要求やT2のCに対する専有ロック要求から待たれる側です。図で、他のトランザクションから待たれる位置をT1に対応付けるため、aではありません。
選択肢イ(正解)
これは正解だよ。T2はBとCを共有ロックで参照した後、Cを専有ロックで更新しようとします。しかしCの共有ロックをT1が保持しているためT2はT1を待ち、さらにT4のB更新もT2を待ちます。この関係が図のaに一致します。
選択肢ウ
これは不正解だよ。T3はAを共有ロックで参照した後、Aを専有ロックで更新しようとします。Aの共有ロックをT1が保持しているため、T3はT1を待つ側になります。図ではT1へ向かう待ち関係を持つ位置に対応し、aではありません。
選択肢エ
これは不正解だよ。T4はBを共有ロックで参照した後、Bを専有ロックで更新しようとします。Bの共有ロックをT2が保持しているため、T4はT2を待つ側です。図ではT2へ向かう端点側の関係になるため、aには当てはまりません。
学習のポイント
待ちグラフは、ロック競合と矢印の向きを時系列で対応付けて読み取ります。
出典:独立行政法人 情報処理推進機構(IPA)平成31年度春期 データベーススペシャリスト試験 午前Ⅱ 問10(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針