はじめに
お久しぶりです、takimonです!
今回は、 『達人に学ぶDB設計 徹底指南書』 を読んだので、その感想と学びをまとめたいと思います。
前回のブログで書いた「すっきり分かるSQL入門」を読んでからこちらの本を読みたいと思っていたので、
今回読めてよかったです。
業務でDB設計に携わる機会が少なかったこともあり、この本は本当に読み応えがありました。
DBの奥深さに触れることができ、非常によくて、何回も読みなおしたいと考えています。
##学んだこと
DB設計はほとんどすべて初見でした。以下に印象に残ったポイントを一部紹介します。
-
データ中心アプローチ(DOA)の重要性
なぜ現代のシステム開発において「データ中心」が重要なのか、プロセス中心アプローチ(POA)との違いやそのメリットを学ぶことができました。 -
3層スキーマモデル
外部スキーマ、概念スキーマ、内部スキーマの概念とその関係性、そしてデータ独立性の考え方を学ぶことができました。 -
論理設計のステップ
エンティティ抽出からER図作成までの具体的な流れを学ぶことができました。 -
正規化の理論と実践
第1〜第5正規形、ボイス-コッド正規形といった各正規形の解説から、正規化の目的などを学ぶことができました。 -
非正規化の理論と実践
非正規化が必要になる理由とそのリスク、具体的なパターンとトレードオフについて、実践的な視点から学ぶことができました。 -
ER図の書き方・活用法
IE記法やIDEF1X記法といったER図の記法の違い、独立エンティティ、従属エンティティ、関連実体の説明などを学びました。 -
物理設計のポイント
テーブル定義、インデックス設計、ハードウェアサイジングといった基本から、RAIDの選び方やストレージ設計などを学びました。 -
レプリケーションと可用性設計
同期・非同期レプリケーションの違いや、リードレプリカによる負荷分散について学び、システムの可用性を高める重要性を学びました。 -
バックアップとリカバリ設計
フル・差分・増分バックアップの違いなどのバックアップ設計時の注意点について、網羅的に学びました。 -
クラウド環境でのDB設計
クラウドのメリット・デメリットに加え、AWSでの可用性設計(マルチAZ・マルチリージョン)など、クラウド時代のDB設計についても学びました。 -
インデックス設計
インデックスの種類と使い分け、そしてパフォーマンス改善のためのインデックス設計について学ぶことができました。 -
木構造データの扱い方
隣接リストモデル・閉包テーブルモデルの特徴と使い分けなど、複雑なデータ構造の扱い方も学ぶことができました。
良かったところ
-
各データベースでの特徴の記載
様々なデータベースにおける特徴や設計上の注意点が記載されており、勉強になりました。 -
DB構築に必要な知識について
読む前は正規化などのDB設計部分に特化しているのかと思っていましたが、バックアップやリカバリー、物理設計といった、DBを構築・運用する上で必須となる知識まで幅広く学ぶことができたのは嬉しい驚きでした。 -
演習問題の解説がボリューミーでわかりやすい
豊富な演習問題とその丁寧な解説があったため、理解を深めることができました。
難しかったこと
正直なところ、全体的に難易度は高かったです。ちらほら知っている知識はあったものの、恥ずかしながらほとんどが初見の知識だったので、ひとつひとつ理解していくのに時間がかかりました。
特に 木構造データの扱い方 に関する部分は、複雑で理解するのが一番大変でした。
他にも難しく感じた部分が多かったので、定期的に読み返し、知識を定着させていきたいと思います。
おわりに
今回、『達人に学ぶDB設計 徹底指南書』 を読むことで、当初の想定をはるかに超える多くの学びを得ることができました。特に、論理設計だけでなく物理設計の部分まで深く学べた のは大きな収穫です。
今後、業務でDB設計を行う際には、必ず毎回この本を読み返して知識を再確認しようと思います。絶対に一度は読んでみることをおすすめします。