データモデル
システム開発において、必要となるデータモデルは以下の3つ。
【概念スキーマ】
データベース化対象の業務とデータの内容を論理的なデータモデルとして表現したもの。概念スキーマを記述するために記号系にはリレーショナルデータモデルの他にも、ネットワークデータモデル、階層型データモデルなどがある。リレーショナルデータモデルでは表の正規化やCREATE TABLEによる表定義が概念スキーマに相当する。
【外部スキーマ】
概念スキーマで定義されたデータモデル上に利用者ごとの目的に応じた見方を表現したもの。リレーショナルデータモデルのビューやネットワークデータモデルのサブスキーマが外部スキーマに相当する。
【内部スキーマ】
概念スキーマで定義されたデータモデルを記憶装置上にどのような形式で格納するかを表現したもの。ファイル編成やインデックスの設定などが内部スキーマに相当する。
目的・特徴は以下の通り
概念データモデル
実務上必要なデータの集まりと関係を洗い出し、まとめたもの。
システム対象範囲の設定に使ったりする
システム上のデータは意識しない
アウトプットは機能分野単位などで大きく捉えたER図など
論理データモデル
システム上のデータの形を定める(ER図からリレーショナルモデルを作成後、正規化などをするイメージ)
大体はリレーショナルモデルを使う
DB製品はや処理効率は意識しない
DOAに基づく場合、テーブルを正規化、最適化、一般化、安定化のプロセスを踏む。
アウトプットはリレーショナルモデル(リレーショナルモデルの場合)
物理データモデル
HWやDB製品を含む実装方法を定める
Index、データ型、制約などを設定する
スキーマとは、何かの構造についての表現。DBの「構造」のこと
3層スキーマとは、3つの要素に分けてDBを定義する考え方(視点が違うイメージ。スキーマが違うと見ることができるViewが変わる)
3つのスキーマは独立しているため、各々の変更が他に影響しない
3層スキーマはいくつか定義があるが、最もメジャーなものは以下の通り
外部スキーマ
ユーザー視点のDB
DBの機能・IFを定義する
RDBではビューに相当する
概念スキーマ
開発者視点のDB
実際のテーブル、リレーションなどを定義する
データ独立性を実現する
概念スキーマを定義する設計のことを論理設計と呼ぶ
内部スキーマ
物理的視点のDB
ファイル名、サイズ、分割方法などを定義する