『達人に学ぶDB設計』
https://gyazo.com/aea96d6a1d042a46ca50170c96f131c7
2012/3/16出版
まぁまぁふるいmrsekut.icon
ミック著
/mrsekut-book-4798124702
読もうと思ったきっかけ
DBをよく知らないから。
この本が会社にあったから。
「正しい設計」に興味がある人間として、データのコアであるここ知らないの終わってるな、という気分に急になった
業務ではバリバリ書くわけではなく、たまに軽いSQLを書くぐらいなのでめちゃくちゃ強い動機があるというわけでもない
気が向いた時にボチボチ読んでいきたい
易しめ、サクサク読める
この本(全体がそうなのかは知らないけど)、あまりイミュータブルデータ構造であることを重視していないmrsekut.icon
8章を読んでていてそう感じたmrsekut.icon
エッセンスは参考にしつつも、全部信じるのではなく自分でも考えるべき
第1章 データベースを制する者はシステムを制す
DBとDBMSは異なる
DBの種類
DOAとPOA
3層スキーマ
第2章 論理設計と物理設計
ER図
ハードウェアのサイジング
2種類の意味で使う
十分な記憶容量を持つハードウェアの選定
十分な性能を持つスペックのCPUやメモリを持ったサーバーの選定
オンプレでやるなら特に重要そうだねmrsekut.icon
RAID
DB内のファイル
Backup
リカバリ
リストア
第3章 論理設計と正規化 ~なぜテーブルは分割する必要があるのか?
/mrsekut-book-4798124702/125 (第3章 論理設計と正規化)
tableの正規化
第4章 ER図 ~複数のテーブルの関係を表現する
/mrsekut-book-4798124702/220 (第4章 ER図 ~複数のテーブルの関係を表現する)
ER図
第5章 論理設計とパフォーマンス ~正規化の欠点と非正規化
/mrsekut-book-4798124702/248 (第5章 論理設計とパフォーマンス ~正規化の欠点と非正規化)
tableの正規化を行うことで起きる問題点
第6章 データベースとパフォーマンス
/mrsekut-book-4798124702/284 (第6章 データベースとパフォーマンス)
index
6-4 統計情報
/mrsekut-book-4798124702/313 (6-4 統計情報)
オプティマイザと実行計画
統計情報の設計指針
演習問題
第7章 論理設計のバッドノウハウ
/mrsekut-book-4798124702/324 (第7章 論理設計のバッドノウハウ)
7-1 論理設計の「やってはいけない」
7-2 非スカラ値(第1正規形未満)
配列型による非スカラ値
スカラ値の基準は何か?
7-3 ダブルミーニング
この列の意味は何でしょう?
テーブルの列は「変数」ではない
7-4 単一参照テーブル
多すぎるテーブルをまとめたい?
単一参照テーブルの功罪
7-5 テーブル分割
テーブル分割の種類
水平分割
垂直分割
集約
7-6 不適切なキー
キーは永遠に不変です!
同じデータを意味するキーは同じデータ型にすべし
7-7 ダブルマスタ
ダブルマスタはSQLを複雑にし、パフォーマンスを悪化させる
ダブルマスタはなぜ生じるのか
演習問題
第8章 論理設計のグレーノウハウ
/mrsekut-book-4798124702/381 (第8章 論理設計のグレーノウハウ)
8-3 列持ちテーブル
/mrsekut-book-4798124702/409
配列型は使えない、でも配列を表現したい
列持ちテーブルの利点と欠点
行持ちテーブル
8-4 アドホックな集計キー
8-5 多段ビュー
ビューへのアクセスは「2段階」で行われる
多段ビューの危険性
8-6 データクレンジングの重要性
データクレンジングは設計に先立って行う
代表的なデータクレンジングの内容
演習問題
第9章 一歩進んだ論理設計 ~SQLで木構造を扱う
/mrsekut-book-4798124702/442 (第9章 一歩進んだ論理設計 ~SQLで木構造を扱う)
9-1 リレーショナルデータベースのアキレス腱
木構造とは?
9-2 伝統的な解法 ~隣接リストモデル
9-3 新しい解法 ~入れ子集合モデル
入れ子集合モデルを使った検索
入れ子集合モデルを使った更新
9-4 もしも無限の資源があったなら ~入れ子区間モデル
使っても使っても尽きない資源
入れ子区間モデルを使った更新
9-5 ノードをフォルダだと思え ~経路列挙モデル
ファイルシステムとしての階層
経路列挙モデルによる検索
経路列挙モデルを使った更新
9-6 各モデルのまとめ
演習問題
付録 演習問題の解答
#スクボ読書化した本