IPA過去問ドリル

平成30年度 春期 基本情報技術者試験 午前 問30

テクノロジ/データベース

RDBMSのロックの粒度に関する次の記述において,a,bの組合せとして適切なものはどれか。 並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのは[ a ]単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは[ b ]単位のロックを使用する場合である。 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成30年度 春期 基本情報技術者試験 午前 問30

正解:ウ

解説

ロックの粒度が大きい(粗い)ほど,一度にロックされる範囲が広くなるため,複数のトランザクションが同じ範囲を更新しようとする際にロックの競合(待ち)が発生しやすくなります。表単位のロックは行単位のロックよりも粒度が粗いため,競合がより起こりやすくなります。一方,粒度が細かい(行単位)ロックほど,管理すべきロック対象の数が増えるため,ロック情報を保持するためのメモリ使用領域はより多く必要になります。

選択肢ごとの解説

  • 誤り。aとbがともに行単位では,競合が起こりやすいのは粒度の粗い表単位であるという点と矛盾します。
  • 誤り。競合がより起こりやすいのは行単位ではなく表単位のロックです。
  • 正しい。粒度の粗い表単位のロックほど競合が起こりやすく(a:表),粒度の細かい行単位のロックほど管理のためのメモリ使用領域が多く必要になります(b:行)。
  • 誤り。管理のためのメモリ使用領域がより多く必要になるのは,粒度の細かい行単位のロックを使用する場合です。
基本情報技術者の過去問を演習モードで解く