【重点要約】
外部、概念、内部スキーマ全てを考慮しDOAで設計を行う。正規化、インデックス、各ノウハウのメリットデメリットを理解し、トレードオフとなることを意識しながら業務要件にマッチしたシステム、DBを設計する必要がある。
【その他メモ】
・スキーマ対応関係
外部スキーマ ⇒ ビュー
概念スキーマ ⇒ テーブル
内部スキーマ ⇒ ファイル
・性能要件…処理時間 + スループットで考える
・正規化…更新、登録時の不都合、不整合を排除
⇒非正規化すると検索時のパフォーマンスは向上するが、データのリアルタイム性を低下させ設計変更時の影響を大きくする
・ビットマップインデックス…カーディナリティが低い場合に使える。OR条件も使用可。更新が必要。
・ハッシュインデックス…等値検索のみ有効
・カラム設計…意味的に分割できる限りなるべく分割して保持する
・バッドノウハウ
非スカラ値
ダブルミーニング
単一参照テーブル
⇒SQL共通化の利点が大きい。また、システム運用を考えるとデータ追加はテーブル追加よりハードルが低く柔軟性に富むメリットも大きい。欠点部分は設計の仕方やテストにて担保できる内容であるし、レコード数もマスタであればそもそも問題になるような大きさにならないはず。バッドとする必要は無いのでは。
水平分割、垂直分割
不適切なキー
・グレーノウハウ
サロゲートキー…タイムスタンプ、インターバルをキーに加える
列持ちテーブル…行持ちに変換
アドホックな集計キー
多段ビュー