DBの基本
DB設計は本気でやるとそれなりに大変!
必ずしもリレーショナルDBを使うとは限らない!
設計して終わりではなくその後の運用要件(NW・サーバのスペックやログ管理等)も含めること!
用語のおさらい
- 1つのデータベースは複数のテーブルからなる。
- 1つのテーブルは複数の行(レコード・ロウ)と列(カラム)からなる。
- テーブルの1つの行と列の組み合わせには1つのフィールドが対応している。
データの分類
マスタデータとトランザクションデータはそれぞれシステム内の取扱が異なる。
トランザクションは「DBの不可分操作(atomic operation)の一つ」というよりも「システムの取り扱う商取引き」。
マスタデータ
システムの動作における必須データ(固定的なデータ)
- 頻繁に更新しない(管理者が更新)
- システムを動かす前から入れておく
- 店舗マスタや店舗マスタなど
スキーマ
分類学な側面もあるが各スキーマの段階で抽象度が異なる。論理スキーマの対象はDBに限定されない。
- 概念スキーマ
→実装技術を全く考慮せずに組織の意味論を記述する。
- 論理スキーマ
→データ管理技術(関係もデールなら行と列・オブジェクトモデルならクラス)に基づいて記述される。特定のデータベース管理製品に依存しない。
- 物理スキーマ
→特定のデータ管理技術・HWのパフォーマンス・継続的な運用面も含めた観点で記述する。
DB設計の抜粋
主として論理設計・物理設計の順がある。
物理設計では特定のDB製品に依存するが論理設計では依存しない。
物理設計ではHWのパフォーマンスや性能要件も考慮して設計する。
論理設計
- エンティティの定義抽出
- ER図の作成
- 正規化
物理設計
- テーブル定義(型の定義を含む)
- インデックス定義
- ハードウェアのサイジング
- ストレージの冗長構成決定
- ファイルの物理配置決定