外部スキーマとは?データベースの利用者ごとの見え方を初心者向けに解説
生徒
「先生、データベースの勉強をしていたら外部スキーマという言葉が出てきました。これはどういう意味なんですか?」
先生
「外部スキーマ(読み方はガイブスキーマ)は、利用者やアプリケーションがデータベースを使うときに『どのデータをどのように見られるか』を定義する仕組みです。」
生徒
「ということは、同じデータベースでも人によって見える情報が違うんですか?」
先生
「そうです。外部スキーマを設定することで、利用者ごとに必要なデータだけを見せることができます。」
1. 外部スキーマとは?
外部スキーマは、3層スキーマ構造の中で利用者の視点にあたる部分です。利用者やアプリケーションが実際にアクセスするデータの範囲や形式を定義します。例えば、社員データベースに「社員番号」「名前」「住所」「給与」があった場合、人事部の利用者には「給与」まで見せ、総務部には「住所」まで見せるといった使い分けができます。
このように外部スキーマは、必要な情報だけを抽出し、安全に利用できるようにする役割を果たしています。
2. 外部スキーマの読み方と意味
外部スキーマは「がいぶスキーマ」と読みます。英語ではExternal Schema(エクスターナルスキーマ)と呼ばれます。意味は「外部から見たデータベースの見え方」であり、実際のデータをどう利用者に見せるかを決める役割を持ちます。
実際のデータそのものではなく、利用者ごとに必要な部分を切り取ったビュー(View、ビュー)を定義しているイメージです。
3. 外部スキーマの役割
外部スキーマには次のような役割があります。
- 利用者ごとに必要な情報だけを見せる
- 不要な情報を隠して安全性を高める
- 複雑なデータを簡単な形で利用者に提供する
- アプリケーションの利便性を高める
外部スキーマのおかげで、利用者はデータベースの内部構造を意識せずに、自分に必要な情報を効率的に扱うことができます。
4. 外部スキーマの具体例
例えば、社員テーブルが次のように定義されていたとします。
CREATE TABLE 社員 (
社員番号 INT PRIMARY KEY,
名前 VARCHAR(50),
住所 VARCHAR(100),
給与 INT
);
このとき、人事部には給与まで見せる外部スキーマを作成し、総務部には住所まで見せる外部スキーマを用意することが可能です。SQLではビューを使って定義することが多く、次のように記述します。
CREATE VIEW 人事用ビュー AS
SELECT 社員番号, 名前, 給与
FROM 社員;
CREATE VIEW 総務用ビュー AS
SELECT 社員番号, 名前, 住所
FROM 社員;
これにより、同じ社員テーブルを使っていても、利用者ごとに見えるデータを切り分けることができます。
5. 外部スキーマとセキュリティ
外部スキーマはセキュリティの観点でも重要です。例えば、全ての社員に給与データを見せてしまうと情報漏洩のリスクがあります。しかし、外部スキーマを使えば必要な人だけに給与データを見せることができ、不要な人には隠すことができます。
この仕組みにより、情報の秘匿性を守りながら業務を進めることが可能になります。
6. 外部スキーマの実生活でのイメージ
外部スキーマを理解するために、銀行口座を例に考えてみましょう。銀行システムには口座番号、残高、取引履歴、住所など多くの情報がありますが、利用者がATMで見るのは残高や簡単な取引履歴だけです。内部的にはもっと多くの情報を持っていますが、利用者には必要な部分だけを見せているのです。
このように、利用者の立場に合わせて情報を絞り込む仕組みが外部スキーマなのです。
7. 歴史的な背景
外部スキーマという考え方は、1970年代に整理されたデータベース理論の3層スキーマ構造の一部として登場しました。国際標準化機構ISO(アイエスオー)が定義したANSI/SPARC(アンシースパーク)モデルに基づいています。この考え方は現在のデータベース管理システム(DBMS、ディービーエムエス)でも基本概念として受け継がれています。
現代のシステムでも、外部スキーマの概念は業務ごとに異なる利用者に応じたデータビューを提供する仕組みとして使われ続けています。