スキーマ (データベース)
ANSI/X3/SPARC(SPARCはStandards Planning And Requirements Committee:標準化計画委員会のこと)では、概念スキーマ、外部スキーマ、内部スキーマの3層スキーマを用いている。汎用機で用いられることが多いCOBOLを開発したCODASYLにおいては副スキーマ、スキーマ、記憶スキーマの3つとしている。
外部スキーマはユーザから見たデータベースの定義、概念スキーマは論理的な定義、内部スキーマはデータベースの物理的な定義を意味する。
概念スキーマ(英: Conceptual schema)とは、データベースに必要な情報をデータモデルによって抽象化し、その抽象化した概念と概念間の関係を定義した記述である。対象となる組織の意味論を説明し、その性質について一連の論理的表明を表す。特に、組織(実体クラス)の有意なものと、それに付随する情報、特性(属性)、それらのものの間の関連を説明する。
組織の意味論を表すものであってデータベース設計ではないため、その抽象レベルは様々である。ANSIの三層スキーマアーキテクチャでは、各利用者独自の観点を反映した概念スキーマを「外部スキーマ」と呼ぶ。逆にそれらを集約したものが「概念スキーマ」であるとされる。データモデルは各利用者の観点では固定的であり、それだけでは柔軟性に欠ける傾向がある。その個人の世界観が変われば、モデルも変更を余儀なくされる。概念スキーマはより抽象的で、本質的である。
概念スキーマには、オブジェクト指向で言う継承に相当するものもある。ある実体クラスのインスタンスの集合は、適当な下位の実体クラスに分類できる。従って、ある下位の実体クラスのインスタンスは、上位の実体クラスのインスタンスでもある。上位の実体クラスのインスタンスは、何らかの下位の実体クラスのインスタンスでもある。
基本型/派生型関係は「排他的関係」の場合もある。方法論的に、ある基本型のインスタンスがどれか1つの派生型のインスタンスでなければならない場合もある。同様に網羅的関係の場合もある。網羅的な場合、ある基本型のインスタンスは必ず何らかの派生型のインスタンスでなければならない。