学習ロードマップ
業務要件から RDB スキーマへ落とし込む思考過程を、具体例ベースで身につけるためのロードマップ。アプリ開発者向け。
このロードマップが扱うもの
このロードマップは、アプリを書けるが DB 設計は「なんとなく」で進めてしまいがちなバックエンド / フルスタックエンジニアを対象にしています。学び終えたときには、業務要件からエンティティとリレーションを抽出し、正規化・インデックス・制約・変更容易性まで意識した RDB スキーマを設計・レビューできる状態を目指します。
このロードマップの全体像
このロードマップは、アプリを書けるが DB 設計は「なんとなく」で進めてしまいがちなバックエンド / フルスタックエンジニアを対象にしています。学び終えたときには、業務要件からエンティティとリレーションを抽出し、正規化・インデックス・制約・変更容易性まで意識した RDB スキーマを設計・レビューできる状態を目指します。
1. 要件からエンティティを抽出する: ユースケースとドメイン用語からエンティティと関係を洗い出し、概念モデルを描く練習をします。 2. 正規化と非正規化の判断: 1NF 〜 3NF の基本、スタースキーマや読み取り最適化のための非正規化をケースごとに選びます。 3. 主キー・外部キー・制約設計: サロゲートキー vs 自然キー、複合キー、チェック制約、ユニーク制約、null 可否の使い分けを身につけます。 4. インデックスとパフォーマンス: クエリパターンに合わせたインデックス設計、カバリングインデックス、実行計画の読み方を学びます。 5. 履歴・状態・削除の扱い: 監査ログ、論理削除、状態遷移、履歴テーブル、時系列データのよくあるパターンを整理します。 6. マイグレーションと運用: スキーマ変更のやり方、ゼロダウンタイム移行、バックアップ・検証・環境ごとのデータ管理を設計します。
DB は「あとから直しにくい」資産なので、初期の設計判断がプロダクトの寿命を縛りがちです。特にマルチテナントや論理削除、柔軟なタグ付けのような要件は、安易な実装が後の性能問題や整合性バグの温床になります。ORM の自動生成に任せきりにすると、想定していないクエリが走ってパフォーマンスを落とすこともあります。周辺では、SQL、インデックスと実行計画、トランザクションと分離レベル、ドメインモデリング、バックアップ/リストア、パフォーマンスチューニング、分散 DB の基礎を並行して押さえておくと、レビューで指摘できる観点が大幅に増えます。
ロードマップ
第 1 章
正規化や設計の失敗例をパターンとして学び、なぜその構造がまずいかを言語化する起点。要件をスキーマへ落とす前に避けるべき型を頭に入れ、以降の判断軸を作る。
NewSQL である TiDB を通じ、単一 RDB では収まらないスケール時に設計がどう変わるかの肌感を得る段階。設計判断が運用規模に左右されることを早めに知る役割。
前処理や集計を題材に、現実のデータを扱う SQL の組み立て方をレシピ形式で身につける段。設計したテーブルが分析にどう耐えるかを、書く側から検証する役割。
SQL の仕組みと書き方を一冊で通し、設計したスキーマを実際に問い合わせる基礎体力を固める段。テーブル構造とクエリの関係を往復し、設計の良し悪しを実感する。
BigQuery を舞台に大規模データ分析の SQL を実務文脈で動かし、ロードマップを実データ活用へ着地させる段。設計の先にある運用・分析までを一続きで見通す締め。
頻出構文や型・関数を素早く引けるリファレンスを手元に置く段階。設計と実装を進める間の参照負荷を下げ、迷ったときに立ち返れる地図として道中で機能させる。
読む順に並べています。まずは1冊目から始めましょう。
正規化や設計の失敗例をパターンとして学び、なぜその構造がまずいかを言語化する起点。要件をスキーマへ落とす前に避けるべき型を頭に入れ、以降の判断軸を作る。