はじめに
前回の記事では、SQLの学習に使用した書籍「スッキリわかるSQL入門 第4版」についてレビューを行いました。
その中でも述べましたが、テーブルそのものの作成方法は理解できました。
しかしながら、書籍の中ではどのようにしてその設計を行うべきか、セオリーや考え方には、あまり踏み込んでいない印象を受けました。
豊富な演習問題が特徴の書籍ではあったのですが、せっかくの演習問題に解説がないため、どのような考え方をしているのかは自分で考える必要がありました。
特に考え方が重要となる設計の部分については、この解説がないという点が致命的でした。
問題を解きながら理解を深めるスタイルの私にとっては、考えを巡らせる時間だけが過ぎてゆくだけで、理解度が一向に上がりません。
そして、設計に関する理解度が低いままの状態で書籍を読み終えたので、タイトルのように「スッキリ」はしなかったですね。
ここはスッキリするためにも、他の書籍で理解が足りていない部分をガッツリ補う必要があります。
👇ということで、こちらの書籍で設計について学習しました。
www.shoeisha.co.jp
本記事では「達人に学ぶDB設計徹底指南書(第1版)」の内容について、率直な感想を初心者目線で述べたいと思います。
良かったところ
学習内容の全体像を把握しやすい
この書籍は全9章で構成され、各章の冒頭には学習内容の概要とポイントが明確に示されています。
そのため、学習内容の全体像を掴みやすくなっています。
過去の学習経験から私自身、プログラミング学習を進める際には、はじめに全体像を把握するようにしています。
なぜなら、全体像を把握できると、何がキーワードなのか、どの点を注意深く読むべきなのかについても把握することができるからです。
内容的には少し難しいと言われている書籍ではありましたが、冒頭で全体像を把握できて学習の道筋をハッキリさせている点が優れていると感じました。
理由をきっちり説明している
この書籍ではDB設計に際し、やってはいけない「バッドノウハウ」と使い方次第ではOKな「グレーノウハウ」について扱っています。
この章に進んだとき、私はこう思いました。
「これこれ、こういう事を知りたかったんだよ。」
ほんと、私の心をガッチリ鷲掴みしてくれます。
初学者である私にとって、「やっていいこと」や「ダメなこと」と言うのは現場に入らない限り知り得ないものと思っていましたから、非常に興味深く読みました。
初学者が知り得ないノウハウが書かれていること自体が非常に優れている点であると思います。
しかし、それよりも特筆すべき点があります。
それは、バッドノウハウがもたらす影響などについて、まるで、親が我が子を躾けるかの如く「〇〇だから〇〇してはいけません」といったように丁寧に説明している点です。
その説明に不明点はなく、その理由には、なるほど!と納得することばかりでした。
初学者である私は、言い換えるなら「子ども」ですから、「親」である著者にやってはいけないことを丁寧に説明されれば納得するわけです。
演習問題の解説がある
私がSQLを学習した1冊目の書籍「スッキリわかるSQL入門 第4版」では、「演習問題に解説がないこと」が不満でした。
そのような不満もあり、考え方が重要である設計について理解を深めることができなかったというのは、冒頭で述べた通りです。
この書籍にも章末に演習問題が付属していますが、これでもかと言うほどしっかりとした解説が巻末についています。
本文に加え演習問題の解説が、解答する上で直面した様々な「なぜ?」を明らかにしてくれたことが特に良かった点です。
演習問題に付属する解説の重要性を知ることができ、今後の書籍選びにも活かせると思いました。
学んだこと
この書籍を通じて、特に理解が浅かった正規化とER図について深く理解することができました。
正規化について
正規化については、テーブルとは何であるかの説明から始まりました。
「テーブルとは、ある共通点を持ったレコードを集めたものであり、テーブル名はすべて複数形または複数名詞で書ける」という非常に明快な説明に驚きました。
単純に「第1正規形とは、これこれこういうもの」といった説明から始めるのではなく、前提となる部分をしっかり理解してもらいたいという著者の思いがヒシヒシと伝わるものでした。
そのため、正規化の内容はスラスラと頭の中に入ってきます。
また、「スッキリわかるSQL入門」では第3正規形までの学習で、第4、第5正規形といった高次正規形についての説明は割愛されていました。 その理由は、第3正規形まで理解していれば事足りるからといったものでした。 この書籍では第3.5正規形とも呼ばれる「ボイス-コッド正規形」も含め高次正規形についても知ることができました。
ER図について
設計において正規化を進めると、テーブル(エンティティ)の数が増えていき、テーブル同士の関係性がわかりにくくなる問題が起きます。
そのため、テーブル同士の関係を明らかにするためのER図が必要であるということは、理解していました。
しかし、この書籍を読む前は、ER図を自分で作成するときに何をもって「1、あるいは多」と判断するかよく理解できていませんでした。
私が抱えていたこの悩みについても、演習問題と丁寧な解説を通じてより深く理解することができました。
難しかったこと
これまで、著者の説明がわかりやすいと述べてきましたが、すべてがわかりやすかったわけではありません。
正規形に関して、第3正規形まで理解すれば十分という先入観もあり、高次正規形についてはあまり深く理解できず、単なる読み物として「そういうものがある」で済ませました。
高次正規形が必要となるときに再度読み返すつもりです。
また、第9章「一歩進んだ論理設計〜SQLで木構造を扱う〜」の内容は、イメージが上手く沸きませんでした。
リレーショナルデータベースで木構造を扱うのが不得意であるという事実を知った程度で、正直なところ、これも読み物として読み終えました。
悪かったところ
最後にこの書籍の悪かったところです。
特筆すべき点はないのですが、敢えて挙げるなら、
2024年8月時点で第1版の発行から10年以上経過していて内容が古いかもしれないという点です。
IT系の技術は日進月歩なので、書いてある内容が今でも通用するのかどうか、少し不安を感じました。
情報は鮮度が命ですからね。
敢えて挙げるならと前置きした理由は、内容をアップデートした第2版が2024年8月28日に発売されるからです。
第2版が発売されることを知っていましたが、早くスッキリしたいという思いから発売日まで待てませんでした。
この書籍は常に手元に置いておきたい1冊なので、読み始めて間もなく第2版も予約しました。
この書籍に限らず技術書を購入する際には、発行年も重要なポイントであると感じました。
初心者目線で率直な感想を述べてきましたが、いかがだったでしょうか。
私はこの書籍を読み終え、1冊目の学習後に抱えていたモヤモヤが「スッキリ」しました。
完全初心者が読むにはハードルが高い書籍ですが、他の書籍でデータベース設計を学んだあとの2冊目として、ベストな選択であると思います。
また、第2版では、内容を最新化しクラウドに関する内容もあるようで、非常に楽しみです。
機会があれば、第2版との比較レビューをしてみたいと思います。
本記事がデータベース設計について書籍を探している方の一助となれば幸いです。