対象試験と出題頻度
概念スキーマは、基本情報技術者・応用情報技術者で出題されるテーマです。
ANSI/SPARC 3層スキーマの各層の役割を正しく区別できるかが繰り返し問われており、「外部スキーマ」「内部スキーマ」との混同を狙った選択肢が定番です。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
概念スキーマの定義
情報処理試験を勉強していると、「概念スキーマと外部スキーマって何が違うの?」「内部スキーマとの境界がわからない」と混乱しがちです。
概念スキーマ(Conceptual Schema)とは、一言で言うと
「データベース全体の論理的な構造を定義したもの」
のことです。
イメージとしては、「ビルの設計図面(間取り図)」です。
設計図面には「どの部屋が何階にあるか」「部屋同士がどうつながっているか」が描かれています。
一方で、壁に使う鉄筋の太さ(物理的な格納方法)や、テナントごとの内装レイアウト(利用者ごとの見え方)は設計図面には含まれません。
概念スキーマも同じで、データベースに「どんなテーブルがあり、テーブル同士がどう関連しているか」という論理構造だけを定義します。
📊 概念スキーマの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Conceptual Schema |
| 所属モデル | ANSI/SPARC 3層スキーマアーキテクチャ(中間層) |
| 定義する内容 | テーブル定義、E-R図、正規化など論理的なデータ構造 |
| 関連する設計工程 | 論理設計(概念設計) |
解説
データベースを使う人は多種多様です。
営業部は「顧客一覧」だけ見たい、在庫管理部門は「商品マスタ」だけ見たい、というように利用者ごとに見たいデータは異なります。
一方、データを保存するハードウェア側では、ファイルの配置方法やインデックスの貼り方といった物理的な都合があります。
この「利用者側の都合」と「ハードウェア側の都合」を直接結びつけてしまうと、片方を変更したときにもう片方まで影響が波及します。そこで、両者の間にクッションとして挟み込まれたのが概念スキーマです。
ANSI/SPARC 3層スキーマアーキテクチャ
1975年にANSI(米国国家規格協会)のSPARC委員会が提唱したこのモデルは、データベースの定義を外部スキーマ・概念スキーマ・内部スキーマの3層に分離することで、「データの独立性」を確保する設計思想です。
| 層 | 役割 | 具体例 |
|---|---|---|
| 外部スキーマ | 利用者やアプリケーションからの見え方を定義 | SQLのビュー、サブスキーマ |
| 概念スキーマ | データベース全体の論理構造を定義 | E-R図、テーブル定義(CREATE TABLE)、正規化 |
| 内部スキーマ | 記憶装置上の物理的な格納方法を定義 | ファイル編成、インデックス設定 |
図解:3層スキーマの構造
3つの層がどのような関係で並んでいるかを図で確認します。
ANSI/SPARC 3層スキーマアーキテクチャ
外部スキーマ
利用者・アプリごとの「見え方」を定義
(例:SQLのビュー、サブスキーマ)
▶ 概念スキーマ
DB全体の論理構造を定義
(例:E-R図、CREATE TABLE、正規化)
内部スキーマ
記憶装置上の物理的な格納方法を定義
(例:ファイル編成、インデックス設定)
概念スキーマが中間層として上下の変更の影響を吸収する
「データの独立性」とは何か
3層に分ける最大の目的は「データの独立性」の確保です。独立性には2種類あります。
論理的データ独立性:概念スキーマの構造を変更しても、外部スキーマ(利用者の見え方)に影響を与えない性質です。テーブルの列を追加しても、既存のビューが壊れないのはこの独立性のおかげです。
物理的データ独立性:内部スキーマの格納方法を変更しても、概念スキーマに影響を与えない性質です。インデックスを貼り直したりファイル編成を変えても、テーブル定義を修正する必要がないのはこの独立性によるものです。
2つのデータ独立性の関係
↕ 論理的データ独立性
概念スキーマを変えても外部スキーマに影響しない
↕ 物理的データ独立性
内部スキーマを変えても概念スキーマに影響しない
では、この概念スキーマが試験でどのように出題されるか見ていきましょう。
💡 概念スキーマの核心を3行で
・ANSI/SPARC 3層スキーマの中間層で、データベース全体の論理構造を定義する
・E-R図の作成、テーブル定義(CREATE TABLE)、正規化が該当する
・上下の層との間に「論理的データ独立性」「物理的データ独立性」を確保する役割を持つ
試験ではこう出る!
概念スキーマは、FE・APの午前問題で「3層スキーマの各層の役割を区別する問題」として繰り返し出題されています。
出題パターンは大きく3つに分かれます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE H27春 午前 問26 |
3層スキーマアーキテクチャを採用する目的を選ぶ問題 | ・正解は「物理的な格納構造を変更してもアプリケーションに影響が及ばないようにする」 ・ビューの説明やカーソル操作がひっかけ |
| FE H26秋 午前 問26 |
スキーマの説明として正しいものを選ぶ問題 | ・正解は「データの性質・形式・他のデータとの関連などのデータ定義の集合」 ・ビュー、SQL、整合性制約の説明がひっかけ |
| AP H28秋 午前 問26 |
3層スキーマ構造の記述として正しいものを選ぶ問題 | ・正解は「外部スキーマは利用者からの見方を表現する」 ・概念スキーマ=物理的関係、内部スキーマ=論理的関係と入れ替えたひっかけ |
| AP R4春 午前 問27 |
内部スキーマの設計に含まれるものを選ぶ問題 | ・正解は「インデックスの定義」 ・E-R図の作成、制約の設定、正規化は概念スキーマ |
📝 IPA試験での出題パターン
パターン1:「各層の役割を正しく対応づける」
外部・概念・内部の3つの定義文が示され、正しい組み合わせを選ぶ形式。概念スキーマの説明に「物理的」という語が紛れ込んでいたら不正解です。概念スキーマは「論理的」が正しいキーワードです。
パターン2:「3層スキーマを採用する目的を選べ」
FE H27春のように、3層に分離する理由=「データの独立性の確保」を問う形式。ここだけは確実に押さえてください。
パターン3:「特定の設計作業がどの層に属するかを選べ」
AP R4春のように、E-R図・正規化・インデックスなどの作業がどの層の設計に含まれるかを問う形式。「E-R図と正規化は概念スキーマ」「インデックスは内部スキーマ」「ビューは外部スキーマ」と覚えれば試験ではここまででOKです。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. ANSI/SPARC 3層スキーマアーキテクチャにおいて、概念スキーマの説明として最も適切なものはどれでしょうか?
- A. 利用者やアプリケーションごとに必要なデータの見え方を定義したもので、SQLのビューが該当する。
- B. データを記憶装置上にどのような形式で格納するかを定義したもので、インデックスやファイル編成が該当する。
- C. データベース全体の論理的な構造を定義したもので、E-R図の作成やテーブル定義、正規化が該当する。
正解と解説を見る
正解:C
解説:
概念スキーマは、ANSI/SPARC 3層スキーマの中間層に位置し、データベース全体の論理構造を記述するものです。E-R図によるエンティティ間の関連付け、CREATE TABLE文による表定義、正規化による冗長性の排除がこの層の設計作業に該当します。
選択肢Aは外部スキーマの説明です。外部スキーマは利用者ごとに異なるデータの見え方を定義する層であり、SQLのビューやサブスキーマが該当します。選択肢Bは内部スキーマの説明です。内部スキーマは物理的な格納方式を定義する層であり、ファイル編成やインデックスの設定が該当します。
よくある質問(FAQ)
Q. 概念スキーマと「概念データモデル」は同じものですか?
別の概念です。概念データモデルはデータベース設計の最初の段階で業務の実体と関連をE-R図などで表現した成果物を指します。一方、概念スキーマはANSI/SPARC 3層スキーマにおけるレイヤーの名称であり、概念データモデルを含むより広い定義です。ただし、IPA試験では両者が厳密に区別されて出題されることはほぼないため、「概念スキーマ=論理的な構造定義」と理解していれば十分です。
Q. 3層スキーマの「物理スキーマ」という選択肢が出たらどう判断しますか?
ANSI/SPARC 3層スキーマには「物理スキーマ」という名称の層は存在しません。AP H28秋 午前問26では、選択肢に「物理スキーマは、データの物理的関係を表現する」が登場しましたが、これは不正解でした。「内部スキーマ」と「物理スキーマ」を混同させるひっかけパターンなので、「ANSI/SPARCの3層は外部・概念・内部の3つだけ」と覚えておけば即座に除外できます。
Q. 実務でも「概念スキーマ」という言葉は使いますか?
現場では「概念スキーマ」という用語をそのまま使う場面は多くありません。代わりに「論理設計」「テーブル設計」「ER設計」といった工程名で呼ばれるのが一般的です。ただし、データベーススペシャリスト試験の午後問題やプロジェクトの設計書レビューでは正式名称が使われることがあるため、用語としての意味は押さえておく価値があります。
Q. MySQLやPostgreSQLの「スキーマ」と概念スキーマは同じ意味ですか?
異なります。MySQLやPostgreSQLで使われる「スキーマ」は、データベース内の名前空間(テーブルやビューをグループ化する論理的な入れ物)を指す実装上の概念です。ANSI/SPARC 3層スキーマの「概念スキーマ」はデータベースアーキテクチャの抽象的なレイヤーを指す設計理論上の用語であり、直接対応するものではありません。試験で問われるのは後者の理論的な定義です。