基本情報

基本情報 平成25年度 春期 問30|テクノロジ系に関する問題

問題

基本情報 | 平成25年度 春期 | 分野:テクノロジ系

データベースの排他制御のロック獲得の可能性のうち, 適切なものはどれか。

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は A
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは a です。

ロックには2種類:

  • 共有ロック(読むだけ用):本を「読みます」と借りる感じ。他の人も同時に同じ本を読めるからOK
  • 専有ロック(書き換え用):本に「書き込みます」と独占予約。他の人は読むことも書くこともできない

だから「共有ロック中に別の共有ロックを取る」のは唯一OKな組合せ。

👉 覚え方:「読む+読むだけOK、それ以外は全部待ち」。

ほかの選択肢:b/c/d は「書く」が絡むので必ずぶつかり待ちが発生します。

なぜこれが正解か

正解は a。共有ロック(Sロック、Shared)は「読取専用」のロックで、複数トランザクションが同時に獲得可能。専有ロック(Xロック、Exclusive)は「読書両用の独占」ロックで、他のいかなるロックとも両立しない。

両立性マトリクスは以下の通り:

既存\新規SX
S○×
X××

aは S→S で唯一の○、他は全て×となる。

各選択肢の解説

  • b 共有→専有:S獲得中はXを取れない(読取中に書き換えを許すと整合性破綻)。
  • c 専有→共有:X獲得中は他者の読取も禁止(コミット前の中間状態を見せない)。
  • d 専有→専有:X獲得中は他のXも当然不可(書込み競合)。

覚え方・ひっかけ注意

「読み読みOK、それ以外NG」で覚える。ロック粒度(行・ページ・表・データベース)と独立した普遍ルール。なお`SELECT ... FOR UPDATE`はSロックではなくXロックを取る点に注意。トランザクション分離レベル(READ UNCOMMITTED〜SERIALIZABLE)でロック取得タイミングが変わる。

理論的背景

ロックベースの並行性制御はトランザクションのACID特性のうち「Isolation(独立性)」を保証する代表的手法。2相ロッキングプロトコル(2PL: Two-Phase Locking)が基本で、①ロック獲得相→②ロック解放相、と段階を分けることで直列化可能性(serializability)を保証する。Strict 2PL ではコミット/ロールバック時まで全ロックを保持し、カスケードアボートを防ぐ。

共有ロック(S)と専有ロック(X)に加え、インテンションロック(IS, IX, SIX)が階層ロック(テーブル・ページ・行)の効率化に使われる。マルチグラニュラリティ・ロッキングではテーブル全体にISを取った上で個別行にSを取り、別のトランザクションが同テーブルに対しXを取ろうとした際の判定を高速化する。

実務での使われ方

Oracle/PostgreSQLはMVCC(Multi-Version Concurrency Control)でロック取得を最小化し読み書きの干渉を回避(読み手は古いスナップショットを参照)。一方MySQL InnoDBは行ロック+MVCCのハイブリッド。SQL Serverはロックエスカレーション(行→ページ→表)で過剰ロックを抑制。デッドロックは循環待ちで発生し、DBMSが検出→犠牲者選択→ロールバックで自動解消。アプリ側ではロック取得順序の統一でデッドロックを予防する。

試験での位置づけ

FE・AP・DBスペシャリスト全層で必出。①両立性マトリクス、②2PL、③デッドロック検出と回避、④分離レベル(特にPhantom Read・Non-repeatable Read・Dirty Read)、の4点が主要論点。

選択肢の発展補足

楽観的ロック(Optimistic Locking)はロックを取らずに「更新時に版数で衝突検出」する手法で、Webアプリやマイクロサービスで採用される(例: `version`列でCAS)。悲観的ロックとの使い分けは、競合確率の高低で決まる。NoSQL/分散DBではCAP定理によりロック中心の整合性が困難で、最終的整合性(Eventual Consistency)・補償トランザクション(Saga)・分散トランザクション(2PC/3PC)など別アプローチが必要。

この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 春期 問30
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 春期 問30/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。