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