はじめに
- 「達人に学ぶDB設計 徹底指南書」布教記事です。
- わたしは 「DB設計なんて正規化しておけば何とかなる」 と思っていました。
- しかし、この本を読んで考えが変わったので興味がある方は是非一読ください。
対象読者
- これからDB設計について学ぼうとしている
- 「DB設計 = 正規化」と思っている
- 様々なバッドノウハウを学びたい
- 物理設計の基礎知識も学びたい
この本の良いところ
1. 物理設計にも言及されている点
- 論理設計がメインではありますが物理設計についての解説もあります
- 具体的には、基礎的なRAIDの話などです。
- なので、DB設計を体系的に学ぶことができます
2. 具体例が現実的でイメージが湧きやすいこと
- 特にバッドノウハウを紹介する章では、「なんでそんな設計を...」と思わずツッコミたくなるようなパターンが紹介されます。
- しかし、そのケースが現実に生じる可能性のある状況が具体的・現実的に述べられます。
- なので「なるほど!それはこう言う事態にもなるか」と納得させられます。
- 先人たちの同じ轍は踏まないように、過去の事例から学べるのです!
3. 偉大なDBエンジニアの金言の引用が豊富であること
- 筆者の意見は勿論ですが、筆者以外の偉大なDBエンジニアの金言が非常に豊富です
- 一人の意見だけを述べている本は偏っている可能もあり、私のような経験の浅いエンジニアはそれを偏っていると判断できかねます
- しかし、引用が多くなされているのでその心配も少ないと思います
4. 常にトレードオフであることを学べること
- エンジニアリングは常にトレードオフと言う考えから離れられないとこの本を読んで強く思いました
- 例えば、正規化は変更に強いですが、処理のパフォーマスだけを見れば正規化をしていないテーブルの方が(テーブルを結合する手間が省けるので)速い場合もあります。そのことを筆者はこう表しています
非正規化はトレードオフを理解している限りバッドノウハウではない
- この本を読む前の自分のような
「正規化こそ正義」
と思っているエンジニアは一読する価値があると思います
終わりに
- この本は初版が2012年と、10年ほど前の本です。
- 故に、ミドルウェアの仕様について古い情報が述べられている箇所もあります
- しかし、本質的なところは10年経っても普遍的であると感じました。
- 是非、この本を手に取り普遍的な設計のノウハウを学びより良いエンジニアリングを行いましょう。