2017年3月19日日曜日

ANSI/SPARC3層スキーマ

平成28年秋季 問26. ANSI/SPARC3層スキーマ

問題文「データベースの3層スキーマ構造に関する記述のうち、適切なものはどれか。」

解答群
ア. 概念スキーマはデータの物理的関係を表現する。
イ. 外部スキーマは、データの利用者からの見方を表現する。
ウ. 内部スキーマは、データの論理的関係を表現する。
エ. 物理スキーマは、データの物理的関係を表現する。

例によって初めて聞く言葉なので、ある程度グーグル先生に聞いて出てきた内容をいくつか見てみる。

さくっと内容を見て、わかるような気になるのが不思議なものだが、いくつかのページをつなぎ合わせて考えるとまとめないとわからない部分もあるようだ。

まず、一般的な説明としては「technotype.net」さんの「ANSI/SPARC3層アーキテクチャ」がほぼほぼ一般的な考え方について述べてくれている。

それぞれの層の説明としては、非常にわかりやすいのだがそれぞれの関係性についてはいまいち判然としていないことに愕然としつつ・・・ 次に進むと

やはり良くお世話になっている「ITpro」さんの「すぐわかるデータベースの基礎(4)」で、それぞれの層の位置関係を示してくれている。ここで驚きだったのは、説明文からの想像とは違って、外部スキーマ⇒概念スキーマ⇒内部スキーマという構造だったことだ。

さらに他のサイトを見てみると、意外なこと(?)に基本情報処理のサイトさんの図が一番端的に内容を伝えてくれたということだ(基本情報だからと言って馬鹿にしているわけではない)。
「徹底研究!情報処理試験」さんの「[0319]3層スキーマ」にある図では、それぞれの層が実際のDB上の何に当たるかをさりげなく教えてくれている。

そしてそしてっ! じゃあなんでそんな構造に分けているのか?という点について、端的に書いてくれているのが「ばかなたにのあほブログ」さんの「ANSI/SPARC3層スキーマアーキテクチャ」というページである。
それぞれの層の独立性を確保するという目的である、とはっきりと述べてくれている。

ここまで読んでようやく全体のパーツがそろった気がするので、改めてまとめさせていただくと以下のようになる。

ANSI/SPARC3層スキーマアーキテクチャとは

概要

American National Standards Instituteというアメリカの協会の、Standards Planning and Requirements Comitteeという委員会によって提唱された規格。

目的

論理的・物理的データの独立性を確保するために提唱された。

内容

外部スキーマ: アプリケーションやユーザ視点から見た場合の層で、DB上では「View」などに相当する。
概念スキーマ: 実世界の実体や実体間の関係を表現したもので、全体を概念的に記述した層。DB上では「Table」などに相当する。
内部スキーマ: データベースを物理的に格納するレベルの層。DB上では「インデックス」や「データファイルの配置」などに相当する。

実際には完全な独立性の確保は難しいらしい(実際にDBの管理などしたことがないのでわからないw)が、それでもこのような記述をされた資料は確かに多いようなので実社会でも使われているように思われる(DBの仕様書は関連が難しすぎて正直わからなすぎる)。

0 件のコメント:

コメントを投稿