- Amazon.co.jp ・電子書籍 (357ページ)
感想・レビュー・書評
-
DB設計をするにあたっての基本的な考慮すべきことがコンパクトにまとまっている良書。バッドノウハウも含めて実践的。
「パフォーマンスと整合性」「あるべき論と実務論」
のトレードオフを軸に話を展開していくので、どのように判断していくかという基準を持ちやすいと感じた。
RDBやSQLの基礎的な知識を身に付けたエンジニアが地盤を固めるために繰り返し読むのが良いと思う。僕も繰り返し読みます。詳細をみるコメント0件をすべて表示 -
【目的】 DB技術者向けに、DB論理設計および物理設計のグッドノウハウ・アンチパターンと、一方を達成させようとする際に起こり得るトレードオフの関係を解説する。
【収穫】 実務で考慮すべきDB設計の知識が得られた。
【概要】 ■DOAとPOA: データ→プログラムの順で考えるのがDOAで、こちらが主流。その逆がPOA。業務処理は変化しやすいがデータは変化しにくい。従って、データを先に決めると複数のプログラムが同じデータを共用でき、業務処理の変更にも柔軟に対応可能。
■概念スキーマの役割: 変更に対する柔軟性の確保(データの独立性)
■DB性能とサイジング: DB性能問題の8割はディスクI/Oネックによって起きる。ゆえにサイジングでストレージの考慮も重要。また、データの整合性とパフォーマンスがトレードオフの関係にあることも意識。サイジングでは安全率をかけ、スケーラビリティの高い構成にする。
■RAIDの効果: 本来の目的である信頼性の向上だけでなく、データ分散して保持することによる性能向上が期待できる。選択肢としては、少なくともRAID5で構成する。
■データ復旧手順: ①フルバックアップ戻し(リストア)→②差分or増分バックアップ戻し(リカバリ)→③トランザクションログ適用(ロールフォワード)
■正規化の利点欠点: 利点①データの冗長性排除による更新時の不整合防止、利点②テーブルの持つ意味が明確で理解しやすい。欠点①テーブルの数が増えるので、結合を多用することになりパフォーマンス悪化。しかし、原則正規化は可能な限り高次にすべき。
■非正規化のリスク: ①検索のパフォーマンスは向上させるが、更新のパフォーマンスを低下させる。②データのリアルタイム性を低下させる。③設計変更時の手戻りが大きい。
■インデックスの効力: ①アプリケーションのコードに影響を与えない。②テーブルのデータに影響を与えない。③それでいて性能改善の効果が大きい。頻繁に利用するのは、Btreeインデックス。データ量が増えても性能があまり劣化しない。
【感想】 今後実務でDB設計を行うことになりそうなため、予習として読了。経験がなくともどういう視点で設計を考えるべきか、ということを理解する上で役に立った。噛み砕いていえば、あるべき論と現実的な制約の間でどうバランスをとっていくかが、DBエンジニアの難しいところでもあり、やりがいでもあるのだと思う。内容は論理設計8:物理設計2くらい。著者の「達人に学ぶSQL徹底指南書」と重複する内容も一部ある。