スキーマ
何かの構造だよ
うまく説明できないや。ごめんね
簡単に書くよ
スキーマ(英:schema)とは
何かの「構造」を指す用語だけど、分かりやすく説明できないや。ごめんね。
です。
詳しく書くよ
サクっと一言で説明すると
何かの「構造」
を意図した表現が「スキーマ」です。
例えば、XMLファイルの構造を定義したファイルがあるとします。
このファイルの書き方ルールを「スキーマ言語」と呼んだりします。
※「XMLファイル」や「スキーマ言語」がどんなものか知りたい人は、用語「スキーマ言語」の説明を ご覧ください。
とはいえ、ITの分野で「スキーマ」という用語が頻繁に出てくるのは、データベース関連でしょう。
このページをご覧になっているあなたも、データベースのお勉強中ではないですか?
データベースの分野におけるスキーマ、それは
データベースの構造
です。
分かります、分かりますよ。
だから「データベースの構造」ってなんだよ!
ですよね?
それは、ですね~。
う~ん。
まずは、データベース全体で考えてみましょう。
世の中には「データベースの構造を3つに分けて定義しましょう」な考え方があります。
このやり方を「3層スキーマ(三層スキーマ)」と言います。
分け方はいくつかありますが、
・外部スキーマ
・概念スキーマ
・内部スキーマ
の3つに分ける考え方と
・概念スキーマ
・論理スキーマ
・物理スキーマ
の3つに分ける考え方が有名です。
ここまでの説明がよく分からない方は、データベースを「ピヨ太君」に置き換えて考えてみましょう。
ピヨ太君という人間(?)がどんなやつかを説明したいとします。
ですが、ピヨ太君はとっても奥ゆかしいやつです。
とても一言では説明できません。
そこで、ピヨ太君の要素を3つに分けて説明することにしました。
その3つとは
・頭
・身体
・心
の3つです。
頭は、ピヨ太君が「何を考えるか」の部分です。
身体は、ピヨ太君が「何をできるか」の部分です。
心は、ピヨ太君が「何を感じるか」の部分です。
ピヨ太君の頭、身体、心がどうなっているかをそれぞれ説明することによって、ピヨ太君という人間(?)がどんなやつかを説明できるでしょう。
3層スキーマも同じ考え方です。
データベースがどんなものかを一言で定義するのは大変です。
そこでデータベースの要素を3つに分けて、それぞれを定義することによって、全体を定義しようと考えました。
それが3層スキーマです。
はい、ここまでで「スキーマ」という単語がいっぱい出てきましたね。
ここまでに登場した「スキーマ」は、すべて「構造」と読み替えて結構です。
データベースの構造を3つに分けて定義しような「3層構造」という考え方があります。
3つの分け方は「外部構造」「概念構造」「内部構造」や「概念構造」「論理構造」「物理構造」と分けるのが有名です。
ちゃんと意味は通じますよね?
さて、ここまではデータベース全体のお話でした。
次に個々のデータベースについて見ていきます。
ただし、ここまでに説明したスキーマの説明は一旦、忘れてください。
それでは個々のデータベースのお話です。
データベースにはいろいろな種類があります。
有名どころは、Oracle、SQL Server、MySQL、PostgreSQL、Microsoft Accessなどでしょうか。
データベースによって「スキーマ」と呼ばれる概念を持っているデータベースと持っていないデータベースがあります。
この説明を書いている時点の状況ですが、Oracle、SQL Server、PostgreSQLにはスキーマと呼ばれる概念があります。
MySQL、Microsoft Accessにはスキーマと呼ばれる概念は ありません。
Oracle、SQL Server、PostgreSQLで出てくる「スキーマ」は、それぞれ、似てはいますが微妙な違いがあります。
まず、Oracleにおけるスキーマですが……うんちゃらかんちゃら。
ごめんなさい。
それぞれのスキーマの意味を説明し始めると長ったらしくなってしまうので、ここでは書くのを止めておきます。
まとめるとですね。
Oracleの話で「スキーマ」という用語が出てきます。
SQL Serverの話でも「スキーマ」という用語が出てきます。
PostgreSQLの話でも「スキーマ」という用語が出てきます。
そして、先ほども説明した通り、データベースの概念的な話でも「スキーマ」という用語が出てきます。
すべて同じ「スキーマ」という用語です。
ですが、それぞれが指し示すものは少し違います。
ですから、お勉強するときは気を付けてください。
Oracleのスキーマを勉強しているときにSQL Serverのスキーマの説明を読んでしまうと、間違って覚える可能性があります。
データベース固有のスキーマを調べているときに概念としてのスキーマの説明を読んでしまうと、混乱するでしょう。
繰り返しになりますが「スキーマ」という用語が具体的に何を示すかは、分野によって微妙に異なります。
おそらくですが、IT用語辞典系の資料を見ても、適切な情報を拾い上げるのは難しいと思います。
あなたの知りたい「スキーマ」がOracleの話であればOracleの専門書を読んでください。
SQL Serverの話であればSQL Serverの専門書を読みましょう。
その分野におけるスキーマの意味を調べてください。
一言でまとめるよ
まぁ「スキーマ」って単語が出てきたら「何かの構造なんだな~」と お考えください。
おまけ
■訳してみるよ
「schema(スキーマ)」の意味は
・図式
・図表
・図解
・概要
とかです。






