データベーススペシャリスト試験対策まとめ(8月8日)
これまで学んだ内容を体系的に整理し、実務や試験対策にそのまま活用できる形でまとめます。
1. テーブル間リレーションと外部キー配置
早見表
関係種類 | 外部キー配置方法 | 具体例 |
---|---|---|
1対1 | どちらか一方に相手側の主キーを外部キーとして追加 | 社員テーブルと社員詳細テーブル。社員IDをどちらかに持たせる |
1対多 | 多側に一側の主キーを外部キーとして追加 | 顧客テーブル(顧客ID)と注文テーブル(注文は顧客に属する) |
多対多 | 中間テーブルを作り、両方の主キーを外部キーとして登録 | 学生テーブルと科目テーブル(学生科目登録テーブルで対応) |
覚え方
- 1対1 → 双方向OK(どちらでも成立)
- 1対多 → 「多側」に外部キー
- 多対多 → 中間テーブル+両方の外部キー
2. トランザクションログ(UNDO/REDO)
操作 | 必要なログ情報 | 用途 | 具体例 |
---|---|---|---|
ロールバック(UNDO) | 更新前情報 | 操作を取り消す | 誤って在庫数を減らした場合に元の数量に戻す |
ロールフォワード(REDO) | 更新後情報 | 障害後に最新状態まで復旧 | 障害直前の注文データを再適用して復旧 |
補足
- 商用DBMSはUNDO/REDO両対応(Oracle, SQL Server, PostgreSQLなど)
- 暗記法:UNDO → Before、REDO → After
3. BPMN(業務プロセスモデリング)
特徴
- 業務の流れを統一記法で図示
- 部門・国境を超えて共通理解が得られる
構成要素と例
- ○ 開始イベント(例:注文を受ける)
- ◎ 終了イベント(例:出荷完了)
- ◇ ゲートウェイ(分岐)(例:在庫あり/なしで処理分岐)
- [アクティビティ](作業)(例:請求書発行)
- プール/レーン(担当範囲)(例:営業部/倉庫)
利点
- 関係者全員が同じ視覚的モデルを参照
- 要件定義段階で誤解を減らす
4. 開発手法の特徴(〜型開発)
開発手法 | 特徴 | 具体例 |
---|---|---|
ウォーターフォール型 | 工程を順序通りに進める | 官公庁向けシステム開発(要件固定) |
反復型 | 小さなサイクルで繰り返し完成度UP | ECサイト機能追加を3週間ごとにリリース |
インクリメンタル型 | 機能を小出しに追加 | チャットアプリに通知機能→通話機能と段階拡張 |
ユースケース駆動開発 | 要件単位で全工程完結 | 会員登録機能を要件単位で設計→実装→テスト |
アーキテクチャ中心 | 骨格設計を先に確定 | マイクロサービス基盤設計を最初に固める |
プロトタイピング型 | 試作品で利用者確認 | 新UIの画面モックを先に見せて評価を反映 |
混同防止
- リスク早期対応 → 反復型/スパイラル
- 要件単位進行 → ユースケース駆動
- 骨格先行 → アーキテクチャ中心
5. HAクラスタと安全なフェールオーバー
重要ポイント
- ハートビート喪失=即切替は危険
- ネットワーク障害・サーバ障害を切り分ける
- スプリットブレイン防止策:クォーラム、Witness、フェンシング(STONITH)
フェールオーバー流れ例
- ハートビート途絶検知(例:1秒間隔で監視)
- ネットワーク・ストレージ確認(例:スイッチ障害かを判定)
- クォーラム判定(例:多数派ノードが生存しているか)
- フェンシング(相手ノードの強制停止)
- 待機系昇格(サービス引き継ぎ)
運用注意
- 自動フェイルバックより計画作業が安全
- 定期的に障害対応訓練を行い、スクリプト・手順書を更新
6. 関数従属性と正規化(〜BCNF)
関数従属性の定義
- X → Y:属性集合Xが決まると属性集合Yが一意に決まる関係
- 推移的関数従属性:X → Y、Y → Zが成立するとX → Zも成立する
正規形まとめ
正規形 | 条件 | 例 | 具体対応 |
---|---|---|---|
第1正規形(1NF) | 繰り返し属性なし | 住所が複数列に分かれていない | 列を分割し別行にする |
第2正規形(2NF) | 1NF+部分関数従属性なし | 複合キーの一部に依存する列 | 部分依存を別テーブルへ |
第3正規形(3NF) | 2NF+推移的関数従属性なし | 郵便番号→住所→都道府県 | 中間依存を別テーブルへ |
BCNF | すべての決定項が候補キー | 複雑な多候補キー依存 | 依存ごとに分割 |
覚え方
- 1NF:繰り返し禁止
- 2NF:部分依存禁止
- 3NF:推移依存禁止
- BCNF:決定項は全て候補キー
7. トランザクション分離レベルと現象
分離レベル | 防げる現象 | 防げない現象 | 備考 |
---|---|---|---|
Read Uncommitted | なし | ダーティリード、NRR、ファントム | 最低 |
Read Committed | ダーティリード | NRR、ファントム | 多くの商用DB既定 |
Repeatable Read | ダーティ、NRR | ファントム | InnoDB既定 |
Serializable | 全て防止 | なし | 性能低下大 |
まとめ
- 関係モデル・トランザクション制御・業務モデリング・開発手法・可用性設計は全てリンクしている
- 具体例で理解を深め、図や表で整理すると定着度が高まる
- 試験知識はそのまま現場の設計・運用に活かせる