「達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ」を読んで

書籍

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

f:id:fatherofikura0107:20190212074342j:plain

URL

この本を選んだ理由

  • 業務でDB設計をする機会が回ってくることが少なく勘所を抑えられない。
  • 個人開発をする上でもDB設計は必須なので「どういった点を意識すべきか?」を知りたいと思い、この本を選んだ。

所感

良かった点

  • DB設計の基本がしっかり抑えられていてる。
    • 正規化やER図の書き方など、基本が書かれている。
  • 所々にSQLで著名な方の格言が載っており、胸に刺さる。
    • 「非正規化は最後の手段、最初は必ず正規化する」By クリス・デイト
    • 「オートナンバー(サロゲートキー)を主キーに使うことはデータモデルを欠いている証拠だ」By ジョー・セルコー
  • 実務における勘所(インデックスを用いるか否かのライン、バッドノウハウ、グレーノウハウ)がしっかりと書かれている。
    • B-treeインデックスを作るときカーディナリティを意識する。目安としては5%以下。
    • DBMSにはインデックスの構造が崩れている場合の指標(断片化率や木の高さ)を調査する方法があるので利用すべき。
    • 採番テーブル的な機能をDBMSとして提供する「シーケンスオブジェクト」がある。車輪の再発明になるのでアプリ側で実装すべきではない。

悪かった点

  • RDBMSについては内容的には文句なし。
    • ただRDBMSに特化しているので、NoSQLについての設計については触れられていない。

その他

  • 実務のシステムではバッドノウハウ、グレーノウハウに引っかかる設計がある。DB設計をした方は他の企業での職歴もあり、何らかの意図があって設計していると思われるので、その設計の意図を効いてみたいと感じた。