スキーマ

スキーマ(schema)とは、データベースの構造であり、データベース管理システム (DBMS) でサポートされている形式言語で記述されます。
本来のスキーマの意味は図式、図解、概要、あらまし、などの意味を持つ英単語で物事や計画の概略や仕組み、構造、形式などを示したものを意味します。

リレーショナルデータベース(関係データベース、relational database, RDB)では、スキーマは関係 (表) と関係内の属性 (フィールド) 、属性や関係の関連の定義のことです。
つまり、データベースにどのような種類のデータをどのような構造で格納するか定義したものをスキーマと呼びます。

3層スキーマ(アーキテクチャ)

3層スキーマアーキテクチャ(three schema architecture)は、ANSI/SPARC の定義したデータベース構造を3階層(概念スキーマ、外部スキーマ、内部スキーマ)で説明するモデルのことです。
(ANSI(米国国家規格協会、American National Standards Institute)/SPARC3層スキーマ)

3層に分けることで、物理的データ独立性及び論理的データ独立性を確保します。

データモデルはモデリングする際の段階、あるいは技法のことを指す為、3層スキーマアーキテクチャとは位置付けが異なります。

3層スキーマ


概念スキーマ - データベース上の論理的な構造を定義

概念スキーマ(conceptual schema)とは、抽象的なデータモデル層のことです。
データベースに格納する対象のデータ構造を概念的に定義したもののことであり、リレーショナルデータベースであれば、正規化したテーブルやリレーションシップの構造そのものを指します。
(データモデルや,テーブルの定義を行った結果の図式)
この段階では、データの物理的な記憶方法に関係せず、プログラミング言語やハードウェアにも依存しません。

論理データモデルと同じ意味の単語に聞こえますが、別物ものである為、混同しないように注意が必要です。


外部スキーマ - アプリケーションや利用者の立場から見たデータの定義

外部スキーマ(external schema)とは、ユーザから見たデータベース層のことです。
個々の応用プログラム(クライアントプログラム)や利用者の立場で定義したデータの枠組みのことで、概念スキーマとアプリケーションの間に位置します。
つまり、どのようにクライアントにデータを見せるかを定義したものであり、リレーショナルデータベースでのビューやサブスキーマが該当します。
(各ユーザや業務アプリケーションに必要な列を取り出した構造のビュー等)

ビューが変更されても概念スキーマには影響を与えないデータ構造であることを論理データ独立性といいます。


内部スキーマ - データの物理的な格納方法、媒体への物理的な格納形式を定義

内部スキーマ(internal schema)とは、データベースの内側から見た構造や物理記憶装置にデータを記憶する方法を定義する層のことです。
OSやファイルシステムとの関係を取り持ち、データの物理的な格納形式を定義したものを指します。
(データの物理的な格納方法やインデックス、データファイル配置等)

格納構造の変更や、チューニング等による設定の変更を行っても概念スキーマには影響を与えないことを物理データ独立性といいます。

物理的な記憶装置に一番近いスキーマである為、物理スキーマとも呼ばれます。



Last updated:2017/07/09
Author:efn

';