スキーマ 【schema】
概要
スキーマ(schema)とは、図式、図解、概要、あらまし、などの意味を持つ英単語。物事や計画の概略や仕組み、構造、形式などを示したものを意味することが多い。ITの分野では英語の音に近い「スキーマ」という表記が一般的だが、他分野の専門用語としてはドイツ語由来の「シェーマ」という表記が用いられることがある。データベーススキーマ
データベースにどのような種類のデータをどのような構造で格納するか定義したものをスキーマという。抽象度に応じて段階的に複数の異なるスキーマを用いることが多く、よく用いられるのはデータの表現と格納について「概念スキーマ」「論理スキーマ」「物理スキーマ」の三段階で定義する「3層スキーマ」である。
「概念スキーマ」はデータベースが取り扱う対象がどのような概念で構成され、それぞれの概念がどのような属性の集合として表されるかをモデル化して定義する。この段階ではデータベースへの格納方法などは考慮せず、対象をどんな形で表現するのかを明確にする。
「論理スキーマ」は概念スキーマで定義したモデルを、具体的な特定のデータベーシステムで取り扱えるデータ形式の集合として記述していく。リレーショナルデータベースであれば、各概念をどんなテーブル(表/関係)に、どんなフィールド(属性)の集合として格納し、それぞれのフィールド間、テーブル間の関係はどうなっているか、といったことを定義していく。単にスキーマといった場合、この定義のを指すことがある。
「物理スキーマ」は論理スキーマで定義したデータモデルを、具体的なコンピュータシステムでどのように格納・管理するかを定義したもので、データベース管理システム(DBMS)がコンピュータのストレージ(外部記憶装置)上にデータを記録する方法を指示したものを表す。
3層で構成されるデータベーススキーマには他に、「外部スキーマ」「概念スキーマ」「内部スキーマ」の三段階を用いる「ANSI/SPARC3層スキーマ」もよく知られている。概念-論理-物理の場合とそれぞれの役割は似ているものの、詳細は微妙に異なっている。
スキーマ言語
SGMLやXMLなどの汎用的なマークアップ言語で、使用するタグ(要素)の定義や属性の書式などを記述し、ある特定の用途やデータ構造のための具体的なマークアップ言語の仕様を定義するための言語を「スキーマ言語」という。言語を定義する言語である「メタ言語」の一種である。
例えば、Webページをマークアップ言語で記述するには「画像の埋め込みを指示するタグ」「段落の開始と終了を指示するタグ」などが必要になるが、汎用マークアップ言語にはこのような特定の用途における特定の目的のための具体的なタグなどは用意されていない。
そこで、Webページを記述するのに必要なタグの名称(例:imgタグ)や、指定できる属性の種類(width属性)、属性値の内容(自然数かパーセンテージ)などを体系的に定義し、汎用マークアップ言語の記法に則した具体的なマークアップ言語として用いる。
その際に、言語仕様の定義を記述するための言語のことをスキーマ言語という。実際、初期のHTMLはSGMLの仕様に則って定義され、スキーマ言語の「DTD」(Document Type Definition)によって仕様が記述されていた(現在はSGMLから切り離され単体の言語として定義されている)。