目標
「3層スキーマ構造」について概要を理解する
「ANSI/SPARCの3層スキーマ」について概要を理解する
「外部スキーマ」「概念スキーマ」「内部スキーマ」の概要を理解する
「データモデル」の概要について理解する
「SQL」の概要を理解する
3層スキーマ
3層スキーマ
データベースは現実世界で発生したデータをコンピュータが扱える状態にして取り込む必要があります。人間が判別できる表であってもすべてがコンピュータで認識できるとは限りません。コンピュータにとって苦手な表現方法ではデータベースの操作が難しかったりします。こういったコンピュータにとって苦手な表現を取り除いて整理されたデータベースを作成するためには、モデリングの手法を知る必要があります。
3層スキーマ構造とは
DBMSでデータを管理するには組織的で整理されたデータベースが必要となります。この組織的で整理されたデータベースを構築する(定義する)時にデータベースの構造を3つの階層に分けて定義する方式(データベースモデル)を3層スキーマ構造と呼びます。
「ANSI/SPARCの3層スキーマ」の概要
「ANSI/SPARCモデル」は米国標準化団体の研究グループの「ANSI/SPARC」が定義したデータベースモデルで「外部スキーマ」「概念スキーマ」「内部スキーマ」の3つの層に分けてデータベースを定義する方式(データベースモデル)です。

3つに分けることで、「物理的データの独立性」と「論理的データの独立性」を確保できます。
「外部スキーマ」「概念スキーマ」「内部スキーマ」の概要
「外部スキーマ」「概念スキーマ」「内部スキーマ」をイラストにすると次のようなイメージとなります。

「外部スキーマ」「概念スキーマ」「内部スキーマ」は次のように利用目線によって分けることができます。
「外部スキーマ」…アプリケーションを利用するユーザーから見たときのデータベース
「概念スキーマ」…データベースの開発者から見たときのデータベース
「内部スキーマ」…DBMSから見たときのデータベース

「データモデル」を「リレーショナルデータモデル」としたときは次のようになります。
「外部スキーマ」…ユーザーに必要な項目を表示させる。SQL文で定義するビューに相当
「概念スキーマ」…データの属性や関係を表すもの。リレーションの定義
「内部スキーマ」…ファイル上のデータの配置・格納方法。

データモデルの概要
データモデルは現実世界のデータをコンピュータで扱えるように表現したものです。データモデルには「階層データモデル」「ネットワークデータモデル」「オブジェクト指向データモデル」「リレーショナルデータモデル」などがあり、データモデルの選択によってデータの操作が可能となります。(これは「論理的なレベルでの操作」であって物理的な部分の詳細には依存しません。)
「リレーショナルデータモデル」…テーブル形式で構造化されたデータモデルです。データをリレーションの集まりで表現します。数学の集合論に立脚したデータモデルとなります。
SQLの概要
SQLは「Structured Query Language」(構造化問い合わせ言語)といいます。SQLはデータベースの定義や操作を行うデータベース言語のひとつです。
SQLは次のように分類することが出来ます。
DDL Data Definition Language データ定義言語 | テーブル作成・変更・削除 CREATE・ALTER・DROP リレーション定義 リレーション制約の定義 PRIMARY KEY・ FOREIGN KEY・ CHECKなど |
DML Data Manipulation Language データ操作言語 | テーブルへの問い合わせ SELECT INSERT DELETE UPDATE |
DCL Data Control Language データ制御言語 | アクセス権限の設定 GRANT・REVOKE |
TCL Transaction Control Language トランザクション制御言語 | トランザクション管理 BEGIN・COMMIT・ROLLBACK |
SQLは「ユーザーが直接入力」もしくは「アプリケーションから入力」して専用のドライバを呼び出すことで処理を行わせることができます。イメージは下のイラストのようになります。

今回は以上になります。次回以降ではテーブルの定義に関わる「概念スキーマ」について概念モデル・論理モデルを扱っていきます。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

