DBの基本

DB設計は本気でやるとそれなりに大変!
必ずしもリレーショナルDBを使うとは限らない!
設計して終わりではなくその後の運用要件(NW・サーバのスペックやログ管理等)も含めること!

用語のおさらい

  • 1つのデータベースは複数のテーブルからなる。
  • 1つのテーブルは複数の行(レコード・ロウ)と列(カラム)からなる。
  • テーブルの1つの行と列の組み合わせには1つのフィールドが対応している。

データの分類

マスタデータとトランザクションデータはそれぞれシステム内の取扱が異なる。
トランザクションは「DBの不可分操作(atomic operation)の一つ」というよりも「システムの取り扱う商取引き」。

マスタデータ

システムの動作における必須データ(固定的なデータ)

  • 頻繁に更新しない(管理者が更新)
  • システムを動かす前から入れておく
  • 店舗マスタや店舗マスタなど

トランザクションデータ

システムの動作に伴い発生するデータ(流動的なデータ)

  • 頻繁に更新する(一般ユーザが更新)
  • 商品の「受発注」/「支払い」/「納品」などに伴うデータが対象

スキーマ

分類学な側面もあるが各スキーマの段階で抽象度が異なる。論理スキーマの対象はDBに限定されない。

 →実装技術を全く考慮せずに組織の意味論を記述する。

 →データ管理技術(関係もデールなら行と列・オブジェクトモデルならクラス)に基づいて記述される。特定のデータベース管理製品に依存しない。

 →特定のデータ管理技術・HWのパフォーマンス・継続的な運用面も含めた観点で記述する。

DB設計の抜粋

主として論理設計・物理設計の順がある。
物理設計では特定のDB製品に依存するが論理設計では依存しない。
物理設計ではHWのパフォーマンスや性能要件も考慮して設計する。

論理設計

  • エンティティの定義抽出
  • ER図の作成
  • 正規化

物理設計

  • テーブル定義(型の定義を含む)
  • インデックス定義
  • ハードウェアのサイジング
  • ストレージの冗長構成決定
  • ファイルの物理配置決定