ラベル データベース の投稿を表示しています。 すべての投稿を表示
ラベル データベース の投稿を表示しています。 すべての投稿を表示

2012年8月3日金曜日

1.2 データベース管理システム


データベースを運用・管理し、データへのアクセス要求に応答する
ソフトウェアをデータベース管理システム(DBMS:DataBase
Management System)といいます。データベースへデータを格
納したり、データを検索したりする機能は、DBMSによって提供さ
れます。

1.2.1 DBMSの機能

DBMSの主な機能として、トランザクション管理、排他制御、障害回復があ
ります。
◆トランザクション管理
銀行の口座送金処理を例に取りましょう。Aさんの口座からBさんの口座へ1
万円を送金するとします。この処理は、
①Aさんの口座残高を1万円減らす
②Bさんの口座残高を1万円増やす
という2つの処理に分けることができます。しかし、㈰の処理が完了した時
点でシステムエラーが起きたとするとどうなるでしょう。Aさんの口座は1
万円引かれ、Bさんの口座はそのままなので、1万円が消えてしまいます。
つまり、これら2つの処理は、どちらかが欠けると整合性が取れなくなって
しまうわけです。そのような分割不可の処理単位をトランザクションといい
ます。正常にトランザクションが完了したときはデータベースが更新されま
すが、途中で失敗した場合はデータベースに反映されません。そのようにし
てデータベースの整合性を維持するのがトランザクション管理です。

◆排他制御
複数のユーザーが同時に一つのデータにアクセスし、別々の更新処理をかけ
るとデータに矛盾が発生してしまいます。そのようなことを防ぐのが排他制
御機能です。あるユーザーがデータにアクセスしたときにデータベースにロ
ックをかけ、他のユーザーが利用できないようにします。ロックには、デー
タの参照と更新をともにロックする「占有ロック」と、データの更新だけを
ロックする「共有ロック」があります。

◆障害回復
ハードウェアやソフトウェアに障害が発生しても、データベースの内容を復
旧する機能が障害回復機能です。障害回復処理には、ロールフォワードとロ
ールバックがあります。
DBMSは、データベースに対して更新処理が行われると、その内容をログフ
ァイル(ジャーナル)に保存します。障害が発生したとき、データベースの
バックアップに加えて、ログファイルに記録されている処理を再現し、障害
が発生する直前の状態まで復旧させるのがロールフォワードです。一方、障
害が発生したとき、バックアップ時点までデータを巻き戻してから改めて処
理を開始することをロールバックといいます。

1.2.2 アプリケーションからのデータベースの利用

アプリケーションでデータベースを利用する際の処理の流れを図に示しま
す。












アプリケーションからはDBMSに対して指示を与えます。DBMSは指示を解
釈し、OS上にあるデータベースのファイルにアクセスし、結果をアプリケ
ーションに返します。このように、DBMSはアプリケーションとデータベ
ースとの仲介役を果たしています。



1.1 データベース


データベースとは、構造化された電子データの集合です。単なるデ
ータの集まりではなく、相互に関連するデータを整理・統合し、検
索性を考慮して構造化しています。


1.1.1 データベース利用のメリット

さまざまな業務システムやWebアプリケーションにおいては、データベー
スを利用しないものよりも利用するものの方がずっと多いでしょう。現在
のアプリケーション開発では、データベースは不可欠なものとなってきて
います。
アプリケーションでデータを扱うには、たとえばファイルに独自フォーマ
ットでデータを記録する処理をアプリケーションごとに用意する方法もあ
りますが、そういった方法と比較して、データベースを利用するメリット
には、次のようなものがあります。
・データの一元管理
複数のファイルやホストにデータが分散せず、一カ所で一元管理すること
ができます。
・データの共有
複数のアプリケーション、複数のユーザーでデータを安全に共有できます。
・処理とデータの分離
データへアクセスするアプリケーションと、データそのものとを分離する
ことで、保守が容易になります。
・データを関連づけて格納
複数のデータを相互に関連づけて格納し、検索することができます。
・登録するデータへの制約付与
ある項目には数値のみ、ある項目には20文字以内の文字列しか登録でき
ないなど、制約を付けることができます。
・データの整合性確保
データの一貫性を確保することができます。
・複数のデータアクセス同時処理
複数のアプリケーションから複数のデータへ同時にアクセスしても、同時
に処理をさばくことができます。
・データの安全な格納
アクセス権限を設定し、機密性を確保しやすくなっています。

1.1.2 データベースの種類


データベースの論理的なデータ構造を論理データモデルといいます。論理
データモデルには、階層型データベース、ネットワーク型データベース、
リレーショナル・データベース、オブジェクト指向データベースなどがあ
ります。
◆階層型データベース
データをツリー構造として格納するモデルです。親となるデータが複数の子
データを持つことができ、子データには必ず親データが存在します。
◆ネットワーク型データベース
データをネットワーク構造として格納するモデルです。
◆リレーショナル・データベース
データ構造を二次元の表を使って表します。表と表との間には関連づけ(リ
レーションシップ)を行うことで、複雑なデータ構造も表現できます。現在
主流となっている形式のデータベースです。
◆オブジェクト指向データベース
オブジェクト指向の概念(カプセル化、クラス、継承など)を取り入れてお
り、データをオブジェクトとして格納できます。そのため、オブジェクト指
向プログラミング言語での開発がスムーズになります。