今回のテーマはDBMSとスキーマについてです。
DBMS?スキーマ?
基本情報技術者試験や応用情報技術者試験で出題される「データベースのスキーマ」についての問題。過去問を見ると難しく感じますが、3層スキーマについて理解していれば、難しい問題ではありません。
本記事では、「データベースのスキーマ」について解説します。
スポンサーリンク
目次
データベース
データベースとは
データベースとは、データを1つの場所に集約して管理し、データの抽出・追加・変更・削除を容易にできるようにした「箱」のようなシステムのことです。
アプリケーションやシステムで使うデータをデータベースで管理し、そこから必要な情報を取り出したり、更新(登録・更新・削除)したりと、データを柔軟に扱えるため、アプリケーション開発ではデータベースの存在は欠かせません。
例えば、あるWebサイトで会員情報を登録した場合、登録した内容はデータベースに保管されます。データベースに保管することで、データ抽出や更新などの操作が柔軟にできます。
関係データベース(リレーショナルデータベース)とは
関係データベース(リレーショナルデータベース)とは、データを表の形で管理するデータベースのことです。
次の表は関係データベースのイメージ例です。テーブル(表)は、レコード(行)とフィールド(列)によって形成されています。
テーブルにレコードを追加する
テーブルにデータを登録すると、次のようにテーブルに新しいレコードが追加されます。
次の例では、「ID=000005、名前=桜井五郎、住所=沖縄県那覇市」のデータを登録しています。
テーブルのレコードを更新する
テーブルに登録したデータは、簡単に更新できます。
次の例では、「ID=000001」の住所を「東京都品川区」に更新しています。
テーブルのレコードを削除する
テーブルに登録したデータは、簡単に削除できます。
次の例では、「ID=000003」のレコードを削除しています。
DBMS(データベース管理システム)
DBMS(データベース管理システム)とは、データベース機能を提供するミドルウェアのことです。
ミドルウェアとは、アプリケーションとオペレーティングシステム(OS)の中間に入るソフトウェアのことで、オペレーティングシステム(OS)の機能拡張やアプリケーションの共通的な機能を集めたものです。
代表的なDBMS(データベース管理システム)には次のようなものがあります。
名称 | 説明 |
Oracle | 米国オラクル (Oracle) が開発・販売しているDBMS(データベース管理システム) |
DB2 | IBMが開発・販売しているDBMS(データベース管理システム) |
SQL Server | マイクロソフトが開発・販売しているDBMS(データベース管理システム) |
MySQL | オープンソースのDBMS(データベース管理システム) |
PostgreSQL | オープンソースのDBMS(データベース管理システム) |
データベースのスキーマ
データベースのスキーマとは、データベースの構造や仕様を定義するものです。
ANSI/X3/SPARC規格は、3層スキーマ構造で「外部スキーマ」「概念スキーマ」「内部スキーマ」という3層に定義を分けています。
- 外部スキーマ:利用者(またはアプリケーション)から見たデータの形を定義するもの。関係データベースでは、ビュー表が該当する。
- 概念スキーマ:データの論理的関係を定義するもの。関係データベースの実体が該当する。
- 内部スキーマ:データの物理的関係を定義するもの。記憶装置にどうデータを格納しアクセスするかなどを定義したもの。
3層に定義を分けることで、データの独立性を高めています。
ビュー(外部スキーマ)を変更しても、データベースのデータ構造(概念スキーマ)に影響はなく、物理的に記憶させるハードウェア(内部スキーマ)が変わっても、プログラムの修正は必要ありません。
基本情報技術者試験 過去問の解説
スポンサーリンク
基本情報技術者平成27年春期 午前問26
DBMSが,3層スキーマアーキテクチャを採用する目的として、適切なものはどれか、ア~エを順番に確認していきます。
ア:関係演算によって元の表から新たな表を導出し,それが実在しているように見せる。
不正解:ビューの目的です。ビューとは、1つ以上のテーブルから必要な要素だけを取り出して作った仮想的なテーブルのことです。
イ:対話的に使われるSQL文を,アプリケーションプログラムからも使えるようにする。
不正解:カーソル操作の目的です。
ウ:データの物理的な格納構造を変更しても,アプリケーションプログラムに影響が及ばないようにする。
正解:3層スキーマの目的です。3層に定義を分けることで、データの独立性を高めています。
エ:プログラム言語を限定して,アプリケーションプログラムとDBMSを緊密に結合する。
不正解:3層スキーマは、データの独立性を高める目的があるので、アプリケーションプログラムとDBMSは分離する必要があります。
「ウ」が正解です。
応用情報技術者平成28年秋期 午前問26
データベースの3層スキーマ構造に関する記述のうち,適切なものはどれか、ア~エを順番に確認していきます。
ア:概念スキーマは,データの物理的関係を表現する。
不正解:概念スキーマは、データの物理的関係ではなく、論理的関係を表現するものです。
イ:外部スキーマは,データの利用者からの見方を表現する。
正解:外部スキーマは、利用者(またはアプリケーション)から見たデータの形を定義するものです。
ウ:内部スキーマは,データの論理的関係を表現する。
不正解:内部スキーマは、データの論理的関係ではなく物理的関係を表現するものです。
エ:物理スキーマは,データの物理的関係を表現する。
不正解:ANSI/X3/SPARC規格の3層スキーマ構造には、物理スキーマは存在しません。
「イ」が正解です。