最重要 ⏱ 10分★★★★★

頻出テーマ

ER設計・SQL・トランザクション・性能・セキュリティの総集編

DB試験で過去10年以上にわたって繰り返し出題されているテーマを厳選。直前期に一気に確認するための「総集編」として活用する。

テーマ頻出ポイント
多対多の解消中間テーブルを作成し、両PK を外部キーとして持つ
第1~第3正規形部分関数従属(2NF)・推移関数従属(3NF)の定義と具体例
BCNF全ての関数従属の決定子が候補キーであること
サブタイプ変換親のみ・子のみ・親子両方の3戦略とトレードオフ
カーディナリティ1対1・1対多・多対多を記号で書けるようにする
テーマ頻出ポイント
GROUP BY / HAVINGWHERE は集計前フィルタ、HAVING は集計後フィルタ
OUTER JOINON vs WHERE の NULL行消去、RIGHT→LEFT変換
相関サブクエリNOT EXISTS 二重否定による全称量化
ウィンドウ関数RANK/DENSE_RANK の違い、LAG/LEAD、累計フレーム指定
WITH RECURSIVEアンカー + UNION ALL + 再帰参照による階層展開
MERGEWHEN MATCHED / NOT MATCHED による UPSERT
テーマ頻出ポイント
ACID特性各特性が破られるとどの異常現象が発生するか
分離レベルREAD UNCOMMITTED〜SERIALIZABLE と発生する読み取り異常
デッドロック待機グラフの循環・検出と回避戦略(ロック順序統一)
2相ロック(2PL)ロック獲得フェーズ→解放フェーズの2段階
楽観的ロックバージョン番号でコミット時に競合チェック
テーマ頻出ポイント
REDO / UNDOREDO = ログで再適用、UNDO = ロールバックで取り消し
チェックポイントチェックポイント以前のコミット済みはREDO不要
バックアップ種別フル・差分・増分のリストア手順と本数
RTO / RPORTO = 復旧時間目標、RPO = 復旧時点目標
PITRフルバックアップ + WALで任意時点にリストア
テーマ頻出ポイント
B木インデックス左端ルール(先頭列を使わないとインデックス不使用)
インデックス無効化関数適用・型変換・LIKE後方一致・IS NULL でインデックス不使用
カバリングインデックスSELECT列とWHERE列をインデックスに含め、テーブル本体不要にする
実行計画Seq Scan / Index Scan / Hash Join を EXPLAIN で確認
結合戦略NL Join(少行+インデックス)/ Hash Join(大規模)/ Merge Join(ソート済み)
テーマ頻出ポイント
GRANT / REVOKEGRANT 権限 ON オブジェクト TO ユーザー の構文
SQLインジェクションプリペアドステートメントで完全防止。エスケープだけでは不十分
TDE透過的データ暗号化。アプリ変更不要
RBACロールに権限を付与してユーザーに割り当て
監査ログ別ストレージに保管。改ざん防止が必須
午後問題は「なぜそう判断したか」の論述が求められる。設計判断の根拠(整合性 vs 性能 など)を言語化する練習が重要。

📝 理解度チェック

B木インデックス(列A, 列B)がある場合、インデックスが使われないのはどれか?
RANK() と DENSE_RANK() の違いとして正しいのはどれか?
トランザクション分離レベルで「ファントムリード」が発生する最も緩い分離レベルはどれか?

読了ボタンを押すとトップページの進捗に反映されます