コラム一覧へ戻る
午後記述対策 読了目安: 6分 2026-10-18 公開

【デスペ午後I・SQL&排他制御の急所】ウィンドウ関数・相関サブクエリとデッドロック発生シーケンスの完全解剖

概念データモデリングと並ぶもう一つの柱が「SQL設計」と「トランザクション排他制御・性能見積り」です。PARTITION BY / ROWS句の穴埋めから、共有ロック・専有ロックの時系列追跡、クラスタ性索引によるページアクセス回数計算まで実戦解説します。

#午後I対策#SQL・ウィンドウ関数#排他制御・ロック#デッドロック#物理設計・性能

1. 移動平均・累積集計・最新行抽出で迷わないウィンドウ関数の骨格

近年のデータベーススペシャリスト午後I・午後IIでは、単なるGROUP BYだけでなく、分析関数(ウィンドウ関数)を用いたSQL穴埋め問題が定番化している。 たとえば「倉庫・部品ごとに、前後3日間(計7日間)の出庫数量の移動平均を求める」というSQLが出たら、見るべき箇所は3つだけだ。 1. `PARTITION BY 倉庫コード, 部品番号`(どのグループ単位で枠を区切るか) 2. `ORDER BY 履歴年月日`(何の順序で並べるか) 3. `ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING`(現在行から前後何行を集計対象にするか) また、LEFT OUTER JOINと組み合わせた集計で「該当行が存在しない場合は0を表示する」という要件があれば、必ず `COALESCE(SUM(数量), 0)` の形を疑おう。SQL穴埋めはゼロから書く必要はない。SELECT句の列別名、GROUP BY句の集約キー、WHERE句とHAVING句の条件の対応関係をパズルのように照合すれば確実に埋められる。
このセクションの合格重要ポイント
  • ウィンドウ関数は『PARTITION BY(グループ)』『ORDER BY(順序)』『ROWS/RANGE(フレーム範囲)』の3要素で分解する
  • SELECT ... FOR UPDATEによる専有ロック獲得タイミングと、COMMIT/ROLLBACKによる解放タイミングを時系列表で追う
  • デッドロック回避策は『複数テーブル・複数行のロック獲得順序(主キー昇順など)を全トランザクションで統一する』が王道

2. 複数トランザクションのロック競合とデッドロックを時系列で解き明かす

SQL問題とセットで問われるのが、同時実行制御(ロックと分離レベル)だ。 「トランザクションAとトランザクションBが同時実行されたとき、デッドロックが発生する理由を述べよ」「デッドロックを防ぐためにプログラムの処理順序やORDER BY句をどう変更すべきか」という設問では、必ず余白に時系列(t1, t2, t3, t4)の2列マトリクスを描こう。 ・t1:Tx1がテーブルX(または契約#101)に専有ロックを獲得 ・t2:Tx2がテーブルY(または契約#102)に専有ロックを獲得 ・t3:Tx1がテーブルY(または契約#102)の専有ロックを要求し、ロック解放待ち ・t4:Tx2がテーブルX(または契約#101)の専有ロックを要求し、互いにロック解放待ち(デッドロック成立) この構造が見えれば、対策は「②と③のSQLの実行順序を入れ替え、両トランザクションともテーブルX→テーブルYの順にロックを獲得するように統一する」または「カーソルのORDER BY句を契約#昇順に統一する」と一発で導き出せる。
本コラムの戦略を実戦に落とし込む推薦対策書Amazon・楽天 公式提携
PR
情報処理教科書 データベーススペシャリスト 2026年版
IPA 厳選対策書情報処理教科書 データベーススペシャリスト 2026年版三好 康之 著 / 翔泳社
DB定番テキスト
三好 康之 著 / 翔泳社

情報処理教科書 データベーススペシャリスト 2026年版

💡 推薦ポイント:データベーススペシャリスト試験の午前II対策から午後I・午後IIの概念データモデリング・関係スキーマ完成・SQL設計まで1冊で体系的に習得できます。
※本リンク先はプロモーション(アフィリエイト広告)が含まれています
記事の執筆・監修体制(E-E-A-T基準)
過去問AI Studio DB対策チーム(データベーススペシャリスト / データアーキテクト)

大規模基幹DB設計・パフォーマンスチューニング実務およびDB過去問全10回分の徹底解析を手がける専門チーム。 当プラットフォームに掲載されるすべての解説・コラムは、IPA公式原本PDFおよび採点講評を100%基準とした厳格な検証を経て執筆されています。

この合格戦略を、実際の過去問演習で実践してみましょう

過去10回分(午前II 250問・午後I 30問・午後II 20問)の公式過去問演習とAI記述添削を今すぐ体験できます。