内製ツールの開発で、弊社スタッフが「楽々ERDレッスン」という書籍を購入していました。
私はOpsエンジニアなので、DBのダンプやリストア、負荷調査なんかはやることがあっても、中身のデータまで触ることはありません。私の見えるSlackチャンネルでこういう書籍が流れてきたのはいいご縁になりそうなので、読んでみました。
読んでみた。
第1部は初歩的なところで、DB設計の基礎知識の話です。正規化やDB設計について、正規化されていないデータを元に、実際に正規化しながらDB設計の説明に入っていきます。
第2部はRDBMSについて説明されています。なんで必要なんだっけ?っという話から、必要になる理由が解説されていて、中でも私は最後の方にかかれていて「Fetchを使うのは悪い癖」っというのがとてもしっくりきました。データ更新で、わざわざプログラムがメモリに展開するんじゃなくて、そういうのはDBにやらせたらいいじゃん?っという内容で、至極当然なんですが、まぁそうだよねっと納得できました。
第3部は実際のデータからテーブル構造を設定していきます。実際のデータっていうは、注文用紙や予約申込書、レシートなど、普段私たちがよく目にするものからテーブル構造を設計していくので、想像しやすく理解が進みます。あえて難しい設計はせず、データから読み取れる情報だけを見たままに設計していくので、とてもわかりやすいです。
第4部は付録となっていて、SQLの使い方やボトルネックの調査方法が載っていました。
まとめ
これからDBの設計をしなくてはいけない方は第1-2部から、すでに設計をやってる方は第3部から読み始めるのがよさそうです。第1-2部は座学といった感じで、私は第2部で挫折しそうになったのですが、第3部に入ってから実際のデータと照らし合わせ進めていけたので大変面白く、いっきに最後まで読んでしまいました。