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