データベース用語集一覧に戻る
ホーム > データベーススペシャリスト > 用語集 > 楽観的排他制御(タイムスタンプ方式・バージョン番号方式)
トランザクション・排他制御・分離レベル 重要度:★★★出題: AM2・PM1・PM2

楽観的排他制御(タイムスタンプ方式・バージョン番号方式)

らっかんてきはいたせいぎょ / Optimistic Concurrency Control (OCC)
データ読込み時にはロックを掛けず、更新(UPDATE)実行時に「読込み時点の最終更新タイムスタンプ(またはバージョン番号)と現在の値が一致するか」をWHERE句で検査して競合を検知する方式。

3行速習ポイント

  • データ取得時に主キー値とともに「最終更新TS(タイムスタンプ)列」または「更新カウンタ列」の値も取得しておく
  • UPDATE文のWHERE句に `AND 最終更新TS = :取得したTS値` を指定し、同時にSET句で `最終更新TS = CURRENT_TIMESTAMP` に更新する
  • 更新件数が0件(SQLの状態コードが該当行なし)だった場合は、他者による割り込み更新があったと判定してロールバック・再試行またはエラー通知を行う

図解

図タイムスタンプ列を用いた楽観的排他制御の3ステップ
11. ロックなし参照(SELECT)
Read TS
主キー値・業務データと共に「最終更新TS」列の値を取得して保持
22. 条件付き更新(UPDATE)
Check & Set
WHERE 主キー = :k AND 最終更新TS = :取得時TS で更新し、SET句でTSを現在時刻へ更新
33. 更新件数による競合判定
Verify
更新1件ならCOMMIT完了、更新0件なら他者更新ありと判定してロールバック・再試行

概要と本質

Webアプリケーションやオンラインシステムにおいて、画面表示(SELECT)から更新ボタン押下(UPDATE)までの間にデータベースのロックを保持し続けるわけにはいかない場合や、ロック競合による待ち時間を極小化したい場合に用いられる排他制御パターンです(令和7年午後I問3設問2などでも出題)。

重要ポイント・コア概念

  • 手順①(参照時):対象行のデータと一緒に `最終更新TS` 列の値も取得して変数に保持する
  • 手順②(更新時):`UPDATE テーブル SET ..., 最終更新TS = CURRENT_TIMESTAMP WHERE 主キー = :キー AND 最終更新TS = :取得時TS` を実行する
  • 手順③(競合判定):更新された行数が0件であれば、読込み後に別トランザクションが更新したと判断し、最初から処理(手順①)をやり直すかエラーを返す

午後I・午後II記述試験での攻略ポイント

午後I・午後IIで時刻印(タイムスタンプ)やバージョン列を用いた同時実行制御が出題されたら、「①参照時に最終更新TS列の値も取得する」「②UPDATEのWHERE句に『最終更新TS列が①で取得した値と一致する』条件を追加する」「③更新対象行が存在しない(0件)場合は①からやり直す」の3ステップを正確に答えられるようにしてください。

午後記述で使える加点キーワード(クリックでコピー)

この用語が出題された過去問を解く(1分演習)

即時アウトプットで定着
データベーススペシャリスト 過去問演習で実践力を鍛える

理解を深める推薦副読本

この用語の背景理論・実務動向を深く理解し、午後II小論文の説得力を劇的に高める必読書

PR
ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ
戦略・名著セレクションソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチマーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン
ISBN: 4873119820
🏗️ EA・SoR/SoE・モダナイゼーションの名著

ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ

マーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン

アーキテクチャ特性(非機能要件)の定義と優先度付けモジュラリティ、マイクロサービス、イベント駆動設計のトレードオフレガシーシステムの段階的刷新(モダナイゼーション)設計
なぜこの用語の理解に役立つのか

『楽観的排他制御(タイムスタンプ方式・バージョン番号方式)』の背景にある理論と業界動向を体系的に理解し、実務や小論文に直結する戦略的視点を深掘りできます。

午後II小論文(ST論文)への応用・加点ポイント

エンタープライズアーキテクチャ(EA)やSoR/SoE連携、クラウド移行のアーキテクチャ方針を決定した根拠(トレードオフ判断)を論述する際の強力な武器になります。

※価格・在庫状況は各ECモールの最新情報をご確認ください(もしもアフィリエイト経由)