データベースのスキーマ(schema)って何だろう?

基本情報技術者

データベースを学習していると「b」って言葉が出てきます。言葉としてはよく聞くのですが、ちょっと捉えどころが無い言葉ので、今回はスキーマを調べてみました!

 

データベースの概念や構造?

スキーマとはwikiで調べると「データベースの構造であり、データベース管理システム (DBMS) でサポートされている形式言語で記述される。」とあります。すごく簡単に言うとデータベースの設計図のようなものですね。

データベースの設計自体は別の記事で解説してますが、「概念設計、論理設計、物理設計」で完成する設計図がそれぞれ「概念スキーマ、外部スキーマ、内部スキーマ」に対応するようですね。

 

3層スキーマ構造

それぞれのスキーマを図でまとめてみました。

スキーマのイメージ

 

外部スキーマ
概念スキーマで定義された論理データから必要なデータを取り出したものです。利用者が目に見える形である「ビュー」などに相当します。ビューをいじってもデータ格納構造(概念スキーマ)が変わりことはありません。
概念スキーマ
データベース上の論理データです。データベースに保持するデータの要素およびデータ同士の関係を定義します。「テーブル定義書」などに相当します。
内部スキーマ
概念スキーマで定義された論理データを具体的にどのようにDBMS内部に格納するかを定義します。「ハードウェア的」な変更はこのスキーマで影響を吸収します。

 

スキーマを3つの階層に分ける理由として、あるひとつのスキーマを変更した場合に他の2つのスキーマへは干渉(影響)しないようにするために分けているようですね。

システムにおける性能を上げるためにデータベースをチューニングすることはよくあります。テーブル定義を変えることになった場合でもビューやハードウェア側を考慮しないで済むことは非常に効率的ですね。

 

まとめ

今回はデータベースのスキーマに関してまとめてみました。

データベースの設計図のイメージで、それぞれの3層スキーマが他の層に干渉しないようにしていることで、データベースの変更のインパクトを吸収するということが大事なのですね。

以上です!

 

参考サイト)
PostgreSQLではじめるDB入門

 

タイトルとURLをコピーしました