SkillStack
テクノロジ系13 / 25問

データベーススペシャリスト試験 令和3年度 秋期 午前II 問13

2相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち、適切なものはどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】エ

2相ロック方式では、トランザクションの処理をロックの獲得だけを行う成長相と、ロックの解除だけを行う縮退相の二つに分けます。成長相では必要なロックを順次獲得し、一つでもロックを解除して縮退相に入った後は、新しいロックを獲得できません。したがって、最初のロックを解除する時点までに、以後の処理に必要な全てのロックを獲得している必要があります。この規則によって、複数トランザクションの実行結果を、何らかの直列実行と同じ結果にできる直列化可能性が確保されます。

アの記述は誤りです。2相ロック方式は処理を常に一件ずつ実行する方式ではなく、競合しない処理は並行して実行できます。また、互いが保持するロックの解放を待ち合うデッドロックは発生し得ます。

イの記述は誤りです。コミット順を開始時刻順にする規則ではありません。開始時刻を利用する同時実行制御は、タイムスタンプ順序方式などの説明です。

ウの記述は誤りです。基本的な2相ロック方式は、全ロックを解除してからでなければコミットできないとは定めていません。特に厳密2相ロック方式では、専有ロックなどをコミットまで保持します。

【ポイント】 「獲得してから解除」という二つの相の順序を覚えることが重要です。 2相ロック方式は直列化可能性を保証しますが、デッドロックまで防止する方式ではありません。

出典:令和3年度 秋期 データベーススペシャリスト試験 午前II 問13
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める