SAシステムアーキテクト試験 午前Ⅱ

平成24年度秋期 システムアーキテクト 午前Ⅱ 問22

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

問題

RDBMSのロックに関する記述のうち,適切なものはどれか。ここで,X,Yはトランザクションとする。

選択肢

  1. ア
    XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表内の別の特定行bに対して専有ロックを獲得することができない。
  2. イ
    XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表に対して専有ロックを獲得することができない。
  3. ウ
    XがA表に対して共有ロックを獲得しているときでも,YはA表に対して専有ロックを獲得することができる。
  4. エ
    XがA表に対して専有ロックを獲得しているときでも,YはA表内の特定行aに対して専有ロックを獲得することができる。
解き方のヒントを見る

資源の範囲をそろえて照合する

各選択肢を読むときは、まず保護対象となる資源の範囲を同じ粒度で捉え、そのうえで同一資源に対する同時利用の関係を一つずつ確認します。用語の印象だけで判断せず、条件と影響の対応に注目しましょう。

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

この問題では、ロックの名称を暗記するよりも、対象範囲の違いが同時利用の可否や他の処理への影響をどう変えるかを、各記述の前提に沿って丁寧に整理することに集中します。

視点

資源の単位と適用範囲を先に切り分け、同じ対象を扱う場合に何が比較されているかを表にするように整理します。判断は、対象範囲・同時性・影響範囲の対応が記述どおりかを確認する順で進めます。

確認ポイント

  • 対象としている資源の範囲が、記述間で同じ前提になっているか
  • 同一資源を扱う場面で、同時利用の関係を条件に沿って照合できるか
  • 粒度の違いが、他の処理への影響範囲の説明と矛盾していないか
正解と解説を見る

正解

イ

解説

共有ロックと専有ロックの互換性は、ロック対象が表全体か特定行かという粒度を踏まえて判断する。行aへの共有ロックと表全体への専有ロックは両立しない。

理由

共有ロックは他の共有ロックとは両立するが、専有ロックとは両立しない。さらに、表全体を対象とする専有ロックは、特定行だけに設定された共有ロックとも競合するため、同時には取得できない。

比較

行aと別の行bを対象にする場合はロック範囲が重ならないため、同じ表内でも要求が直ちに衝突するとは限らない。一方、表全体を対象とするロックは、表内の行を対象とするロックにも影響する。

選択肢ア

これは不正解だよ。Xの共有ロックはA表内の行aに対する行単位のロックなので、Yが別の行bに専有ロックを要求することまで直ちに妨げない。ロック対象が異なるため、この記述は誤り。

選択肢イ(正解)

これは正解だよ。Xが行aを共有ロックしている状態で、YがA表全体に専有ロックを求めると、表全体を対象に他のロックとの競合を確認する必要がある。この組合せは同時に成立しない。

選択肢ウ

これは不正解だよ。A表に対する共有ロックは表全体を対象とする。一方、専有ロックは他のトランザクションによる共有ロックとも両立しないため、Xが表共有ロック中にYが表専有ロックを取得できるとはいえない。

選択肢エ

これは不正解だよ。Xの専有ロックはA表全体に及ぶため、Yがその表の特定行aだけを対象にしても、専有ロックの範囲内に含まれる。したがって、Yは同じ表の行aに専有ロックを取得できない。

学習のポイント

ロックの互換性と、表ロック・行ロックの粒度の関係を整理する。

出典:独立行政法人 情報処理推進機構(IPA)平成24年度秋期 システムアーキテクト試験 午前Ⅱ 問22(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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