情報工学実験II: RDBMS (平成13年度版)

RDBMS とは何か?

データ、データ操作、データ定義、データベース管理機能を含んだシステムをDBMS と呼ぶ。DBMS の役割をまとめると次のとおりになる.

  • DBMSはデータ操作が正しく行えなくてはならない。そのためには、まず、処理の基盤となるデータモデルが正しくなくてはならない。
  • DBMSはデータベースの構造を変えても以前のアプリケーション・プログラムがそのまま動かなくてはならない(データの独立性)。
  • DBMSはデータ操作が迅速に行えなくてはならない。
  • DBMSは同時に複数のユーザーが利用しても正常に動作しなくてはならない(並行処理制御とトランザクション機能)。
  • DBMSはデータベースが正常な状態か否か(一貫性を保っているか)チェックできなくてはならない。
  • DBMSはユーザーのセキュリティ確保のためアクセス権管理ができなくてはならない。
  • DBMSは障害が発生しても少ない手間で障害前のデータベース状態に戻せなくてはならない。

DBMS は、データ操作が正しく行えるということが何よりも重要である。データ操作の途中でデータが消えてしまったり、検索結果が間違っていたとしたら誰もそのようなシステムは使わないでしょう。DBMS は、データモデルという数学的に定式化されたあるモデルをもとにテータ操作を行い、そのデータモデルに沿った形でデータベースにデータを格納していく。データモデルでは次のことが決められている。

  • データが、データベース上でどのようなデータ構造をしているか。
  • データに対してどのようなデータ操作ができるか。
  • データを正しい状態に保つためにどのようなルールを定義するか。

データ構造は、3とおり、木構造、ネットワーク構造、表形式であり、RDBMSではデータをすべて2次元の表形式で表現する。このようなモデルをリレーショナル・モデルと呼ぶ。

RDBMS はリレーショナル・モデルに基づいた DBMS である。SQL は,リレーショナル・モデルのデータベースを利用する.SQL は、データ操作文(DML: Data Management Language)、データ定義文(DDL: Data Definition Language)両方を含む言語である。

リレーショナル・モデルでは、すべてのデータは2次元の表(table)で表す。例えば、図1にある社員と所属部署の表現を見てみよう。この図の表「社員」と表「部署」のように、意味的にみてひとまとまりとして考えるとよい対象を、表にする。表は複数の属性(attribute)から構成され、その属性値によってその特性を表している。属性はフィールド(field)とも呼ばれる。この例では表「社員」の属性として「社員番号」、「氏名」、「住所」が定義されている。

 

図1:リレーショナル・モデルの例

 

データ定義の作業には、このほか、データ間の関係および制約の定義や、属性のデータ型および形式の定義、アクセス権に関する定義も含まれる。属性のデータ型とは、例えば、文字列型なのか、イメージ型なのか、というようなデータの性質のことである。文字列型であれば、許される文字列の長さも定義する。イメージ型であれば、さらに、その中で各種のデータ形式に分かれるので、そのデータ形式を定義することが必要になる。アクセス権とは、この部分のデータは誰が見てもよいというようなデータを見たり書き換えたりできる権利のことである。

こうしたデータベースの枠組というべきものを、データベースのスキーマ(schema)という。データベースというデータ集合は、このスキーマの中にデータを入れていくことによってでき上がっていくのである。データ定義は、スキーマ定義とも呼ばれる。データ定義をする人は「このデータベースはどのような使い方をされるだろうか」ということを十分に検討し、「皆が必要なデータが入っていて、かつ、使いやすいスキーマ」をつくらなくてはいけない。何を一つの表としてまとめるか、これはその人の物の見方に依存するが、できるだけ偏りのない適切な見方をしなくてはならない。

E-R モデル(Entity-Relationship model)による表の設計

データ定義の場合、いきなり表を書き出すということはまずない。はじめに概念レベルで対象となる世界を記述して、それからリレーショナル・モデルのスキーマに変換する。概念レベルの記述には、E-Rモデル(EntityRelationship Model、実体−関連モデル)が広く使われている。E-Rモデルでは、世の中の事象を実体(entity)と関連(relationship)の二つで表現する。実体とは、実世界の中で私たちが認識する物や事がらのことである。それらの実体間の関係を表すものが関連である。図2に、図1でとり上げた社員と部署の様子をE-Rモデルで示した。この図をE-Rダイヤグラムという。長方形は実体を表し、ひし形は関連を表している。関連「所属」はM対N関連なのでひし形から伸びている線に、MとNと書いてある。長方形から伸びている楕円は実体の属性である。

 

図2:E-Rモデルの例

データベースのアクセス法

一般にDBMSでは数種類のファイル編成法を用意しており、インデックス(index、索引)用などのように用途別に使い分けている。DBMSを構成するモジュールのうち、データベースヘデータを格納したりデータを検索したりする部分のことをアクセス法(access method)と呼ぶ。インデックス用ファイルというのは、他のファイルがデータそのものを入れているのに対し、特定の属性をインデックスとし(この属性をインデックス・キーと呼ぶ)、そのインデックス・キー値から本体のデータの入っている場所(これをデータベースの世界では普通 Record IDと呼ぶ)を探し出す、という機能をもっている。図3を見てみよう。この例では表「本」に対して属性「タイトル」と属性「著者名」を、インデックス・キーとしている。インデックス・キーに対しては、それぞれ一つのインデックス・ファイルが作成される。どの属性をインデックス・キーにするかはデータ定義のときに指定する。インデックスをつけたほうが当然検索は速くなるが、このインデックス・ファイルの内容はデータ更新のたびに、DBMSによって変更されるので、過度にインデックスをつけると更新が遅くなってしまうおそれがある。

 

図3:インデックス・ファイルとインデックス・キー

 

 

補助資料:

 

 

実験資料PDF形式 

 

参考文献:

“実践SQL教科書” 西尾草治郎 監修 ASCII 出版局 1996.