3層スキーマ(ANSI/SPARC)とは?データベースを外部・概念・内部の3つの見方に分けて考える設

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

3層スキーマとは(全体像)

3層スキーマとは、データベースを「だれが・どんな目的で見るか」によって3つの見方に分けて整理する考え方だよー。1975年に「ANSI/SPARC」という団体が提案した設計の枠組みなのー。

身近にたとえると、1軒の家を3つの見方で見る感じ。住む人が見る「部屋(使い勝手)」、設計者が見る「間取り図(全体の構造)」、工事の人が見る「配管や基礎(実際の作り)」だよー。同じ家でも、見る人によって関心がちがうのー。

押さえるのは、外部・概念・内部の3つの層と、変更の影響をおさえるデータ独立性だよー。


詳しく:3つの層と2つの独立性だけ覚えれば戦える

ここが記事の心臓部。まず3つの層を見ていこーね。

3つのスキーマの役割

だれの視点中身
外部スキーマユーザー・アプリ見たい部分だけの見え方(ビュー)
概念スキーマ設計者(全体)データベース全体の論理設計(ER図・正規化)
内部スキーマシステム(物理)実際の保存方法(インデックス・ストレージ)

外部はユーザーの見え方、概念は全体の論理設計、内部は実際の保存方法——この3段の役割が一番大事だよー。

次に、3層に分けるとうれしいデータ独立性だよー。これは「ある層を変えても、ほかの層に影響が及ばない」しくみのことなのー。

2つのデータ独立性

独立性どこの変更を吸収するか
論理的独立性概念スキーマ(全体の論理設計)を変えても、外部スキーマ(アプリの見え方)に影響しない
物理的独立性内部スキーマ(保存方法)を変えても、概念スキーマ(論理設計)に影響しない

ここでひっかけが「独立性とは、それぞれが無関係だという意味」という誤解だよー。そうではなくて、ある層を変えたとき、その影響がほかの層に波及しないようにすることなのー。だから保守(手直し)がラクになるんだよー。

わかりやすく言い換えると

要するに、家の3つの見方でイメージするとラクだよー。

外部スキーマ … 住む人が見る「部屋(使い勝手)」=ユーザーの見え方

概念スキーマ … 設計者が見る「間取り図(全体の構造)」=論理設計

内部スキーマ … 工事の人が見る「配管や基礎(実際の作り)」=物理的な保存方法

そして物理的独立性は、「配管工事のやり方を変えても、部屋の使い勝手は変わらない」イメージ。論理的独立性は、「間取りを少し変えても、住む人の部屋の見え方は保たれる」イメージだよー。

つまり、3層に分けておくから、片方の作りを直しても、もう片方に影響が及ばずにすむ——これが試験の急所なのー。


試験のツボ

🔴 一番出る:3つの層の役割

①外部スキーマ = ユーザー・アプリの見え方(ビュー)

②概念スキーマ = データベース全体の論理設計

③内部スキーマ = 実際の保存方法(物理)

🔴 次に出る:2つのデータ独立性

①論理的独立性 = 論理設計を変えてもアプリの見え方に影響しない

②物理的独立性 = 保存方法を変えても論理設計に影響しない

🟡 押さえると安定:分けるねらいは保守性

①ある層の変更が、ほかの層に波及しないようにする

②そのおかげで手直しがしやすくなる


よくある間違い

「3層スキーマとは、3つのテーブルのことである」→ ✗  3つのテーブルではなく、3つの「見方(抽象レベル)」のこと。

「データ独立性とは、各層がたがいに無関係という意味である」→ ✗  変更の影響がほかの層に波及しないようにすること。無関係という意味ではない。

「ユーザーの見え方を決めるのは内部スキーマである」→ ✗  ユーザーの見え方は外部スキーマ。内部スキーマは実際の保存方法。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(3つの層)

📝 オリジナル問題 1 3つのスキーマの役割

3層スキーマの3つの層に関する次の記述のうち、正しいものはどれか。

  1. 3層スキーマの3つの層は、すべて画面の明るさを段階で決めるための設定だとされているものなのである
  2. 3層スキーマの3つの層は、すべて音の大きさを段階で決めるための機能だとされている
  3. 3層スキーマの3つの層は、画面・音・電源という3つの装置を表すものだとされているのである
  4. 3層スキーマは外部(ユーザーの見え方)・概念(全体の論理設計)・内部(保存方法)に分かれる
データスラ
データスラ 解答・解説

解答は 4 だよー。

3層スキーマは、外部(ユーザーの見え方)・概念(全体の論理設計)・内部(実際の保存方法)の3つに分かれるのー。家でいうと「部屋・間取り図・配管」の3つの見方だよー。

選択肢1の「明るさの設定」、選択肢2の「音の大きさ」、選択肢3の「3つの装置」はどれも誤りなのー。

選択肢判定理由
1画面の明るさの設定ではない
2音の大きさの機能ではない
3装置を表すものではない
4外部・概念・内部の3つの見方に分かれる

オリジナル問題2(物理的独立性)

📝 オリジナル問題 2 物理的独立性

データ独立性に関する次の記述のうち、正しいものはどれか。

  1. 物理的独立性とは、保存方法(内部)を変えても論理設計(概念)に影響しないことである
  2. 物理的独立性とは、画面が必ず点滅してしまうという不具合のことだとされているものなのである
  3. 物理的独立性とは、音が必ず二重に鳴ってしまう不具合のことだとされている
  4. 物理的独立性とは、保存した文字が必ず全部消えてしまうことだとされているものである
データスラ
データスラ 解答・解説

解答は 1 だよー。

物理的独立性は、保存方法(内部スキーマ)を変えても、論理設計(概念スキーマ)に影響しないことなのー。配管工事のやり方を変えても、部屋の使い勝手は変わらないイメージだよー。

選択肢2の「点滅」、選択肢3の「二重に鳴る」、選択肢4の「文字が消える」はどれも誤りなのー。

選択肢判定理由
1保存方法を変えても論理設計に影響しない
2画面の不具合のことではない
3音の不具合のことではない
4文字が消えることではない

オリジナル問題3(3層の意味)

📝 オリジナル問題 3 3層スキーマの意味

3層スキーマの意味に関する次の記述のうち、正しいものはどれか。

  1. 3層スキーマとは、必ず3つのテーブルを作らなければならないという決まりのことだとされている
  2. 3層スキーマとは、データベースを3つの見方(抽象レベル)に分けて整理する考え方である
  3. 3層スキーマとは、画面を必ず3つに分割して表示するための設定のことなのである
  4. 3層スキーマとは、データを必ず3回ずつ保存しなければならないという決まりのことである
データスラ
データスラ 解答・解説

解答は 2 だよー。

3層スキーマは、データベースを3つの見方(抽象レベル)に分けて整理する考え方なのー。「3つのテーブル」という意味ではないから、そこがひっかけだよー。

選択肢1の「3つのテーブル」、選択肢3の「画面を3分割」、選択肢4の「3回ずつ保存」はどれも誤りなのー。

選択肢判定理由
13つのテーブルという意味ではない
23つの見方(抽象レベル)に分ける考え方
3画面を分割する設定ではない
43回保存する決まりではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る