SELECT文もJOINも書ける、テストも通っている。でもなぜそのインデックス設計にしたのか、なぜNULLをこう扱ったのかを聞かれると、感覚で答えてしまう。そのまま経験だけで乗り切っていると、テーブル設計のレビューで理由を説明できず、指摘を受けてから直す羽目になる。『理論から学ぶデータベース実践入門』は、その「なんとなく」をリレーショナルモデルという土台から立て直してくれる本だった。
述語論理から入るから、SQLの挙動に理由がつく
本書はSQLとリレーショナルモデルの関係、述語論理という切り口から始まり、正規化理論、関係の直交性、ドメイン設計、NULLの扱い、SELECTの深掘り、履歴データの扱い、グラフ構造、インデックス設計戦略と続いていく。SQLを書くための小手先のテクニック集ではなく、なぜそのSQLが正しく動くのかを理論から説明しているので、初めて読んだときは少し重く感じたが、読み終えると普段書いているSQLの見え方が変わった。
NULLと正規化への向き合い方が変わる
特に正規化理論とNULLの扱いを扱う章は、これまで「とりあえずNULLを許容しておく」で済ませていた設計判断に、明確な理由をつけられるようになった章だった。関係の直交性の話も、テーブル同士の責務をどう分けるべきかを考える軸になった。
読んでよかったポイント
- 述語論理の章を読んでから、複雑なWHERE句を書くときに条件の組み立て方が整理された
- 正規化理論の章のおかげで、テーブル分割の判断を「なんとなく」ではなく理由付きで説明できるようになった
- NULLの扱いの章を読んでから、NULLを許容するかどうかの設計判断に迷わなくなった
- インデックス設計戦略の章が、パフォーマンス改善のレビューで根拠を持って提案する材料になった
- 履歴データとグラフ構造を扱う章があり、単純なCRUDでは対応しきれない設計にも視野が広がった
さらに広げて読むなら
SQLとデータベースの基本的なつながりをもう一度確認したいなら、SELECTは書けても設計で迷う人へ。SQLとデータベースのつながりをやさしく掴める一冊も合わせて読むと、基礎から理論まで一直線につながる。
まとめ
SQLは書けるようになるほど、なぜそう書くのかを聞かれる場面が増えていく。次にテーブル設計やSQLのレビューをするときは、この本の理論を思い出しながら、自分の判断に理由をつけてみてほしい。