DBデータベーススペシャリスト試験 午前Ⅱ

平成29年度春期 データベーススペシャリスト 午前Ⅱ 問15

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

2相ロック方式に従うトランザクションに関する記述のうち,適切なものはどれか。

選択肢

  1. ア
    デッドロックが発生することはない。
  2. イ
    同一トランザクション内であれば,アンロック後にロックを行うことができる。
  3. ウ
    トランザクションが利用するロックは,専有ロックに限られる。
  4. エ
    トランザクションの競合直列可能性が保証される。
解き方のヒントを見る

境界条件と整合性の見極め方

トランザクションの開始・終了に関わる境界を手掛かりに、処理のまとまりとデータの整合性がどの時点で評価されるかを整理し、各記述が同じ前提に立っているか確認しましょう。

この問題で問われていること

一つの処理単位について、変更が確定・取り消し・他の処理から見える、という観点を時系列に並べ、境界の前後で整合性の扱いが一貫しているかだけを順番に落ち着いて確認します。

視点

境界を考えるときは、処理を構成する操作、確定や中止の契機、他処理との関係を分けて整理します。用語の定義と前後関係をそろえ、個別の方式名や結論ではなく、どの条件を比較している記述なのかを読み取りましょう。

確認ポイント

  • 処理の開始と終了を示す契機が、どのように区切られているか確認する
  • 変更の確定や取り消しを考える時点を、処理の前後関係と照らし合わせる
  • 整合性を評価する対象と、その評価時点が一貫しているか確認する
正解と解説を見る

正解

エ

解説

2相ロック方式は、ロックを取得する段階と解放する段階を分離することで、トランザクション間の競合を調整し、競合直列可能性を保証する。

理由

2相ロック方式では、最初にロックを取得する成長相を置き、その後にロックを解放する縮小相へ移る。いったんロックの解放を始めた後に、新たなロックを取得することはできない。

比較

この規則により、共有ロックや専有ロックを適切に使い分けながら同時実行を制御できる。2相ロック方式を守るトランザクションでは、競合直列可能性が保証される一方、デッドロックを防止する仕組みではありません。

選択肢ア

これは不正解だよ。2相ロック方式は、ロックの取得と解放の順序を制約する方式であり、デッドロックそのものを防止する方式ではない。複数トランザクションが互いに相手のロック解放を待つ状態は、2相ロック方式でも発生し得る。

選択肢イ

これは不正解だよ。2相ロック方式では、ロックを取得する成長相から、ロックを解放する縮小相へ移る。アンロックを始めた後に再びロックを取得することは、同一トランザクション内であっても方式の規則に反する。

選択肢ウ

これは不正解だよ。トランザクションが利用できるロックは専有ロックだけに限定されない。データを読み取るときの共有ロックや、更新時の専有ロックなど、処理内容に応じて異なる種類のロックを利用する。

選択肢エ(正解)

これは正解だよ。2相ロック方式では、ロック取得の成長相とロック解放の縮小相を分ける。この規則によって、同時実行されたトランザクションの実行結果が、競合しない直列実行と同等になる競合直列可能性が保証される。

学習のポイント

2相ロックの段階構造と、競合直列可能性の関係を理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 データベーススペシャリスト試験 午前Ⅱ 問15(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針