F-nameのブログ

はてなダイアリーから移行し、更に独自ドメイン化しました。

ANSI/SPARC 3層スキーマとDBMS構造(データベース第1回)#放送大学講義録

ーーーー講義録始めーーーー

 

データベース管理システム(DBMS)のアーキテクチャ

ここでは、データベース管理システム(DBMS)を構築する際に、どのようなアーキテクチャに基づいて構成されるべきかについて説明します。

DBMSの標準的なアーキテクチャとして、米国規格協会(ANSI:American National Standards Institute)が1978年に発表したANSI/SPARCの3層スキーマ構造があります。

ANSI/SPARC 3層スキーマ構造

ANSIの提案によれば、DBMSは以下の3層のスキーマをサポートする必要があります。

  1. 外部スキーマ(External Schema)

    • 各ユーザやアプリケーションの要求に対応したスキーマです。
    • 要求の種類に応じて、複数の外部スキーマを定義できます。
    • リレーショナルデータモデルでは、外部スキーマはビューに相当します。
  2. 概念スキーマ(Conceptual Schema)

    • データベースを論理的に定義するスキーマで、論理データモデルに相当します。
    • データ間の関係や制約を統一的に表現します。
  3. 内部スキーマ(Internal Schema)

    • データの物理的な格納方法や構成を規定するスキーマで、物理データモデルに相当します。
    • ハードウェアやデータベース製品に依存するデータの実装方法を示します。

データ独立性の確保

3層スキーマ構造の目的の1つは、データ独立性を確保することです。データ独立性には、次の2つの種類があります。

  1. 論理的データ独立性(Logical Data Independence)

    • 外部スキーマ概念スキーマの間の独立性を指します。
    • 例:データベースが対象とする実世界の変化に応じて概念スキーマを変更しても、外部スキーマ(アプリケーションのインターフェース)に影響を及ぼさない範囲であれば、アプリケーションを修正することなく変更を行えます。
  2. 物理的データ独立性(Physical Data Independence)

    • 概念スキーマ内部スキーマの間の独立性を指します。
    • 例:データの物理的な格納方法やインデックス構造を変更しても、概念スキーマに影響を与えない範囲であれば、アプリケーションプログラムに影響を与えることなく物理的な変更が可能です。

まとめ

ANSI/SPARC 3層スキーマ構造は、データベースとアプリケーションプログラムを分離することで、データ独立性を確保します。これにより、データベースの構造や物理的な格納方法を変更する際も、アプリケーションプログラムへの影響を最小限に抑えることができ、結果としてアプリケーションプログラムの生産性向上に大きく寄与します。