本書は、プロのDBエンジニアである著者が、DB設計の基礎と実践ノウハウをやさしく手ほどきする『達人に学ぶDB設計徹底指南書』の改訂書籍です。
第2版では、初期構成を活かしつつ内容を最新化するだけでなく、クラウドにも対応できるようにしました。
【本書のポイント】
●論理設計の基本から、正規化、パフォーマンスなど、押さえておくべき基礎知識やポイントを幅広く体系的に解説!豊富なサンプル、章ごとの練習問題もあるので、実際の開発現場でも通用する知識を徹底的に身につけることができます。
●やってはいけないアンチパターン、注意すべきグレーノウハウも丁寧に解説。「ただ何となくやってはいけないと分かっている」「なぜかはちゃんと分かってないけど、注意するようにしている」で終わらせず、きちんと「なぜ」を理解して、実務で自信を持って使えるだけの知識が身につきます。
・DBエンジニアを目指す人
・DB設計の基礎と実践をしっかり学びたい人
・脱初級を目指すDBエンジニアやアプリケーション開発者
など、DB設計・開発に携わるすべての方におすすめの一冊です。
【目次】
第1章 データベースを制する者はシステムを制す
第2章 論理設計と物理設計
第3章 論理設計と正規化~なぜテーブルは分割する必要があるのか?
第4章 ER図~複数のテーブルの関係を表現する
第5章 論理設計とパフォーマンス~正規化の欠点と非正規化
第6章 データベースとパフォーマンス
第7章 論理設計のアンチパターン
第8章 論理設計のグレーノウハウ
第9章 一歩進んだ論理設計~RDBで木構造を扱う
付録(演習問題の回答)
第1章 データベースを制する者はシステムを制す
1-1 システムとデータベース
1-2 データベースあれこれ
1-3 システム開発の工程と設計
1-4 設計工程とデータベース
第2章 論理設計と物理設計
2-1 概念スキーマと論理設計
2-2 内部スキーマと物理設計
2-3 データベース単位の冗長構成- レプリケーション
2-4 クラウドにおけるデータベースの冗長構成
2-5 クラウドはいつどんな時利用するべきなのか
2-6 バックアップ設計
2-7 リカバリ設計
第3章 論理設計と正規化~なぜテーブルは分割する必要があるのか?
3-1 テーブルとは何か?
3-2 テーブルの構成要素
3-3 正規化とは何か?
3-4 第1正規形
3-5 第2正規形~部分関数従属
3-6 第3正規形~推移的関数従属
3-7 ボイス-コッド正規形
3-8 第4正規形
3-9 第5正規形
3-10 正規化についてのまとめ
第4章 ER図~複数のテーブルの関係を表現する
4-1 テーブルが多すぎる!
4-2 テーブル同士の関連を見抜く
4-3 ER図の描き方
4-4 「多対多」と関連実体
第5章 論理設計とパフォーマンス~正規化の欠点と非正規化
5-1 正規化の功罪
5-2 非正規化とパフォーマンス
5-3 冗長性とパフォーマンスのトレードオフ
第6章 データベースとパフォーマンス
6-1 データベースのパフォーマンスを決める要因
6-2 インデックス設計
6-3 B-treeインデックスの設計方針
6-4 統計情報
6-5 インデックス以外のチューニング手段
第7章 論理設計のアンチパターン
7-1 論理設計の「やってはいけない」
7-2 非スカラ値(第1正規形未満)
7-3 ダブルミーニング
7-4 単一参照テーブル
7-5 テーブル分割
7-6 不適切なキー
7-7 ダブルマスタ
7-8 ゾンビマートと多段マート
第8章 論理設計のグレーノウハウ
8-1 違法すれすれの「ライン上」に位置する設計
8-2 代理キー~主キーが役に立たないとき
8-3 列持ちテーブル
8-4 アドホックな集計キー
8-5 多段ビュー
8-6 データクレンジングの重要性
第9章 一歩進んだ論理設計~RDBで木構造を扱う
9-1 リレーショナルデータベースのアキレス腱
9-2 古くて新しい解法~隣接リストモデル
9-3 閉包テーブルモデル
9-4 どちらを使うべきか
付録(演習問題の回答)