【技術書紹介】達人に学ぶDB設計徹底指南書

www.shoeisha.co.jp

以下の記事でも触れましたが、2024年の読みたい技術書の中の本を1冊読みました。 2024年 読みたいエンジニア本リスト一覧 - ITエンジニア Umedaの雑記ブログ


この本はSQLの知識をある程度身につけた初心者が、DB設計を勉強するために学習をする本になります。 エンジニアの必読本の一つに挙げられる名著です。

敷居の高い本でもあり「自分にはまだ不適格なのでは?」と思ってためらっている人も多いのではないでしょうか?(自分はそうでした)

不安も多かったですがSQLの基本文法を身に着けた段階で、この本に取り組んでみました。 以下にその感想をまとめたいと思います。


読み方

所感になりますが、この本は「入門本」ではないため難しいです。

そして量が非常に多く、ボリュームがあるため読み方を間違えてしまうと、 各章の関係性がつかめずになんとなくで読み終わってしまい内容が頭の中に入ってこない可能性があります。 (実は自分がそうでした)

そのため、初級者がこの本を読む際にどのように読めばいいか?優先的に読むべき章はどの章かをまとめたいと思います。


私が考える優先的に読むべき箇所は以下になります。

1,2(2-1までで一旦OK),3,4,5,7章


このような本格的な難しい書籍を読む際にはまずその「書籍の軸」の箇所を重点的に理解することを最優先にするべきだと思っています。そのエッセンスが上記の章に記載されています。


ではこの書籍の軸とは何でしょうか?それは「論理設計」です。


  1. 要件定義
  2. 設計
  3. 開発(実装)
  4. テスト

上記のようなアプリケーション開発の工程の中で、論理設計はどこのフェーズのものであるか? そして論理設計はどのようなステップ(4つ)があるかをしっかり抑えながら読みましょう。

この大きな流れを掴むことで、自分が今どこの箇所の分野を勉強しているのかということが明確になります(立ち位置と出口がわかる)。


良かったところ

  • DB設計の原理原則を勉強できます

筆者はアプリケーション開発の中でデータベースの設計がいかに重要かというのを繰り返し強調します。

初心者は「実装(プログラミング)」に注目しがちですが、その前段階の「設計」によってアプリケーションの良し悪しがほぼすべて決まってしまう ということについても強調します。 また、正規化について「正規化と非正規化の問題」についても「非正規化は原則認めない」など一見すると「非常に主張の強い」印象を受けます。

私はまだまだ初心者のためわかりませんが、もし現場経験の多いベテランエンジニアが読んだ場合の感想は人によって変わって来る場合もあると思いますが初心者の間はこのような「原理原則」をハッキリと明示する本で勉強したほうが迷いがなくなると思っています。

常に迷ったときに戻ってくることができる本として機能するのではないでしょうか?


学んだこと

非常にボリュームのある本のためすべてを記述はできませんでしたが DB設計における重要なキーワードをまとめます。

  • エンティティ
  • 正規化
  • パフォーマンスと正規化の問題について
  • ER図(IE表記)
  • バッドノウハウ(非スカラ値・ダブルミーニング・単一参照テーブル・テーブル分割・不適切なキー・ダブルマスタ)

この用語をしっかりと理解して3,4章の章末問題に取り組んでみてください。 私は、この本の前に以下の「オレンジ本」に取り組んでいたため、「オレンジ本」の巻末の特訓ドリルのDB設計の箇所についても復習しました。

book.impress.co.jp


難しかったこと

  • SQL木構造を扱うことについて

  • ボイス-コッド正規形


SQL木構造を扱うことについての、学習の優先度は低いと思います。そして読み進めるのも難しいため一旦後回しで問題ないです。

この本では「オレンジ本」で解説がなかった第3正規形よりも先の正規形(ボイスコッド正規形や第4,5正規形)の説明があります。第4,5正規形は難しそうに見えますが、実は「当たり前」の概念だとわかります。 しかし、ボイス-コッド正規形については自分の中でうまく納得することができずこちらの記事や動画などを参考にしました。

【DB】第一正規形~第五正規形までを図解 | bbh

イラストで理解するデータベースの正規化


youtu.be