3層スキーマアーキテクチャを具体例でわかりやすく解説

3層スキーマ3層スキーマとは、データベースの構造を3つのレベルに分けてシステムを開発する方法です

3層スキーマは、データベースを以下の3つのスキーマに分けます。

これにより、異なる利害関係者が層ごとに分かれてシステムを開発できます。
(例:エンドユーザーからすると、保存方法はなんでもいい。必要なデータが見れればいい。)

なお、似たような3層モデルにWeb3層モデルがありますが、詳細は以下の記事をご覧ください。

関連記事:データベース設計
学習ロードマップ
スポンサーリンク

外部スキーマ

外部スキーマ外部スキーマとは、ユーザーにデータベースの見せ方を決める層です。
要するにビューです

見せるデータを絞れるので、セキュリティも向上します。

インターフェイスを決定

外部スキーマでは、インターフェイス(どのようにデータを見せるか)を決定します。

API を叩いたらデータが取得できたり、ボタンを押したら印刷されたり
スポンサーリンク

概念スキーマ

概念スキーマ概念スキーマとは、データベースの要素と関係を決める層です。
要するにテーブルの関係です

これにより複数のデータを組み合わせて利用できます。

概念スキーマが無いとどうなる?

社内データの一部と社外データを組み合わせて、社内サイトを作りたいとします。

しかし、社内 & 社外用のデータが無いので、外部スキーマのために内部スキーマを変更しなければいけません。

しかも重複したデータが散らばり、参照する内部スキーマによって一貫性がなくなる

そこで、概念スキーマを間に挟むことで、データを単一の概念に統一できます。

これにより、内部スキーマを変更せずに、外部スキーマを変更できます。

概念スキーマの設計 (論理設計)

概念スキーマの設計を論理設計と呼びます。

論理設計は以下の手順で行います。そのため、論理設計のアウトプットは ER 図です。

  1. 要素 (エンティティ) の抽出、定義
  2. 正規化
  3. ER図の作成

正規化ER図の作成は以下のとおりです。

スポンサーリンク

内部スキーマ

内部スキーマ内部スキーマとは、データベースの保存方法を決める層です。

内部スキーマの設計 (物理設計)

内部スキーマの設計を物理設計と呼びます。

物理設計は以下の手順で行います。そのため、物理設計のアウトプットは動作する DBMS です。

  1. テーブル定義 (データ型の決定や、主キー、制約などの設定)
  2. インデックス定義(基本的に主キーインデックスを使う)
  3. ハードウェアの決定(ストレージ/メモリ/CPU のサイズ)
  4. ストレージの冗長化 (RAIDクラスター)
  5. ファイルストレージへの配置・ブロックサイズを決定

関連記事

学習ロードマップ
関連記事:データベース設計
関連記事:データベースの基礎知識編

参考記事

https://www.oracle.com/jp/a/tech/docs/technical-resources/dbdesign.pdf
Three-schema approach - Wikipedia