Skip to the content.

最終更新日:2026年7月20日

まず結論

スキーマとは、

データの性質・形式・表同士の関係などを定義した、データベースの設計図

です。

基本情報技術者試験では、次のように切り分けます。

設計図
→ スキーマ

利用者向けの仮想表
→ ビュー

検索・追加・更新・削除
→ SQL

一貫性を守るルール
→ 整合性制約

また、3層スキーマは次の対応で覚えます。

利用者からの見え方
→ 外部スキーマ

データベース全体の論理構造
→ 概念スキーマ

記憶装置への格納方法
→ 内部スキーマ

直感的な説明

社員情報を管理するデータベースを考えます。

社員表
├─ 社員番号:整数
├─ 氏名:文字列
├─ 部署番号:整数
└─ 入社日:日付

さらに、社員表の部署番号と部署表の部署番号を関連付けます。

社員表の部署番号
↓
部署表の部署番号

このような、

  • 表名
  • 列名
  • データ型
  • 主キー
  • 外部キー
  • 表同士の関係
  • 制約

をまとめたものがスキーマです。

住宅にたとえるなら、次のように考えられます。

スキーマ
→ 設計図

表
→ 実際の部屋

データ
→ 部屋に置かれた家具

定義・仕組み

スキーマに含まれるもの

RDBMSのスキーマには、主に次のような定義が含まれます。

項目
社員表、部署表
社員番号、氏名、部署番号
データ型 INTEGER、VARCHAR、DATE
主キー 社員番号
外部キー 部署番号
制約 NOT NULL、UNIQUE、CHECK
関係 社員表と部署表の関連

SQLでは、たとえば次のように表を定義します。

CREATE TABLE 社員 (
    社員番号 INTEGER PRIMARY KEY,
    氏名 VARCHAR(50) NOT NULL,
    部署番号 INTEGER,
    FOREIGN KEY (部署番号)
        REFERENCES 部署(部署番号)
);

このSQL文はスキーマそのものではなく、スキーマを定義するための命令です。

スキーマと表の違い

スキーマは表そのものではありません。

スキーマ
→ 表や列、関係、制約を定義した設計

表
→ その設計に従ってデータを格納する場所

たとえば、

氏名は文字列である
→ スキーマ

氏名は「山田太郎」である
→ データ

です。

3層スキーマ

ANSI/SPARCの3層スキーマでは、データベースの定義を次の3段階に分けます。

スキーマ 視点 主な内容
外部スキーマ 利用者からの見え方 利用者ごとのデータ範囲、ビュー
概念スキーマ データベース全体の論理構造 表、列、主キー、外部キー、関係
内部スキーマ 物理的な格納方法 ファイル構造、インデックス、物理配置

外部スキーマは、サブスキーマと呼ばれることもあります。

覚え方は次のとおりです。

外部
→ どう見えるか

概念
→ どう構成されるか

内部
→ どう保存されるか

このテーマは基本情報技術者試験のデータベース分野に含まれます。公式の出題範囲は、IPA:基本情報技術者試験から確認できます。


科目Aでどう出る?

試験では、スキーマそのものの定義だけでなく、似た用語との違いが問われます。

ビューとの違い

ビューは、実表をもとに作られる仮想的な表です。

CREATE VIEW 営業部社員 AS
SELECT 社員番号, 氏名
FROM 社員
WHERE 部署番号 = 10;

利用者から見ると表のように扱えますが、通常は元の表のデータを参照します。

仮想表
利用者ごとの見せ方
必要な行や列だけ表示
→ ビュー

ビューは、外部スキーマを実現する手段の一つと考えられます。

SQLとの違い

SQLは、RDBMSを定義・操作するための言語です。

操作 SQL文
検索 SELECT
追加 INSERT
更新 UPDATE
削除 DELETE
表の定義 CREATE TABLE

したがって、

スキーマ
→ 定義された構造

SQL
→ 構造の定義やデータ操作を行う言語

です。

整合性制約との違い

整合性制約は、不正なデータが登録されないようにするルールです。

代表例は次のとおりです。

  • 主キー制約
  • 外部キー制約
  • NOT NULL
  • UNIQUE
  • CHECK

たとえば、存在しない部署番号を社員表に登録させない仕組みは、外部キー制約で実現できます。

整合性制約はスキーマに含まれる定義の一部ですが、スキーマ全体と同じ意味ではありません。

選択肢を切る判断表

選択肢の表現 用語
データの性質・形式・関連の定義 スキーマ
実表ではない仮想的な表 ビュー
挿入・更新・削除・検索 SQL
一貫性を保つための制約 整合性制約
利用者ごとの見え方 外部スキーマ
データベース全体の論理構造 概念スキーマ
記憶装置への格納方法 内部スキーマ

試験中は、次の順番で判断します。

1. 「仮想表」ならビュー
2. 「性質・形式・関連の定義」ならスキーマ
3. 「検索・追加・更新・削除」ならSQL
4. 「一貫性を守る制約」なら整合性制約
5. 「利用者・論理構造・物理格納」で3層を切り分ける

どんな場面で使う?

データベース設計

システム開発では、まずどのようなデータを管理するかを整理します。

顧客
注文
商品
在庫

そのうえで、表・列・データ型・関係・制約を設計します。

この設計内容がスキーマです。

アプリケーション開発

アプリケーションは、スキーマに従ってデータを保存・検索します。

たとえば、社員番号が整数として定義されているなら、アプリケーション側でもその型に合う値を扱います。

権限に応じた見せ方

利用者ごとに必要な情報だけを見せる場合、ビューを使って外部スキーマを構成できます。

一般社員
→ 氏名、部署名だけ見える

人事担当者
→ 氏名、住所、給与も見える

よくある誤解・混同

スキーマはデータそのもの

違います。

スキーマは構造やルールであり、実際の値はデータです。

スキーマは表だけを定義する

表だけではありません。

列、データ型、主キー、外部キー、表同士の関係、制約なども含みます。

ビューとスキーマは同じ

違います。

ビューは仮想表です。スキーマはデータベース構造全体の定義です。

SQLとスキーマは同じ

違います。

SQLは、スキーマを定義したり、データを操作したりするための言語です。

整合性制約がスキーマそのもの

整合性制約はスキーマの一部です。

スキーマ
├─ 表
├─ 列
├─ データ型
├─ 関係
└─ 整合性制約

概念スキーマと内部スキーマを混同する

  • 概念スキーマ:データの意味や関係をどう整理するか
  • 内部スキーマ:データを記憶装置へどう格納するか
E-R図・表定義・正規化
→ 概念スキーマ

ファイル編成・インデックス・物理配置
→ 内部スキーマ

まとめ(試験直前用)

  • スキーマは、データベース構造を定義した設計図
  • 表、列、データ型、関係、制約などを含む
  • ビューは、実表をもとにした仮想表
  • SQLは、データベースを定義・操作する言語
  • 整合性制約は、一貫性を守るためのルール
  • 外部スキーマは見え方、概念スキーマは論理構造、内部スキーマは物理格納
  • 整合性制約はスキーマの一部だが、スキーマ全体ではない

覚える一文はこれです。

スキーマは設計図、ビューは見せ方、SQLは操作する言語、制約はルール。

© 2024-2026 stemtazoo. All rights reserved.