DBMSの役割と構造
■データベースの設計とDBMS
 データベースは、「情報」の集まりであるが、数百万件にのぼるデータを管理することは大変なことである。 そのデータベースを管理するシステムがDBMS(Data Base Management System)である。図書館へ行って 目的の本を簡単に見つけられるのは、担当の職員が図書の整理をしているおかげである。DBMSは、図書館の 職員と考えても良い。後に記述してあるが、DBMSは、多数のアクセスに対する制御・データの安全性・ バックアップ等を考慮したシステムである。

データベースの設計とスキーマ
 会社で、商品を作る場合には、設計図が必要となります。当然、データベースを構築する場合にも設計図が 必要となります。データベースのでいう設計図をスキーマと言います。データベースを作成するときに、まず、必要な情報を 洗い出し、そのデータを整理します。そして、それをどのように処理をするか検討します。その後、実際に そのために応じたDBMS用にデータモデルを設計します。現在は、そのスキーマを次のように三層スキーマと して定義しています。
●概念スキーマ(論理データモデル)・・・データベースの全体の基本構造を表現したもの。
●外部スキーマ(論理データモデル)・・・ユーザの立場から見たデータ構造やデータの関係を表現したもの。
●内部スキーマ(物理データモデル)・・・実際にデータをどのような物理的データモデルにするか、ハードディスクに どのように置くかなど表現したもの。


概念スキーマを簡単な図で表現したものが、ER図です。実体(商品と得意先)・関連(売り上げ)・実体と実体の 関係(多対多)というようにデータベース全体の構造を表現します。

物理的データモデル
DBMSのデータ構造(データとデータの関係)には、次の3つのものがある。
階層型(ハイアラキカル)データモデル ネットワーク型データモデル リレーショナル型データモデル
1969年、IBM社によるIMS(Information Managing System)で実装されたモデルである。 ツリー状にデータがポインタで接続されている。上位から下位に高速に検索できるが、データの種類が 増えるにつれて構造が複雑になる。同一部下が複数の部署の兼務などになると対応できない。 1964年、ゼネラルエレクトリック社からリリースされたIDS(Integrated data Store)で、 DBMSの起源とされている。その後、アメリカのCODASYL(コダシル アメリカ国防省がメーカ や政府関係者を集めて、プログラミング言語を開発する団体)が、COBOL言語に組み込み公開をする。 データの基本単位をレコードとし、レコード同士が網で結ばれていた。階層構造の問題が解消されているが、 データの独立性に乏しく、処理経路を越えたアクセスが効率的に行えない。 1970年、IBM社のコッド氏によって提唱されたモデルである。2次元の表の概念を利用する データベースモデルである。ネットワーク型や階層型のように物理的構造を気にする必要がなく、データをアプリケーションから 独立されることも容易であり、現在のDBMSの主流となっている。RDBMS(Relational Data Base Management System)と 呼ばれている。これ以降は、RDBMSを中心に話しを進めていくこととする。 現在、商用RDBMSとしては、オラクル、フリーRDBMSでは、PostgresSQL、MySQL等が多く使用されている。

■DBMSの役割
DBMSは、データを入れる箱であるが、それだけでは、なんの意味もなさないわけです。データを利用するための いろいろな機能があります。
●問い合わせ処理
 一般的な検索処理で、問い合わせに対して適切なデータを返す役割である。また、データの追加や変更に対して、 不適切な値や重複するデータなどが入力されないかなどのチェックも行う。
●セキュリティーの確保
 データベースでは、多数によりデータの共有がなされるために、セキュリティーを保つ必要がある。DBMSでは、 ユーザ毎に検索・更新・追加・削除ごとに細かく権限を与えることできる。
●同時実行制御処理
 商品の在庫を確認して、商品を出庫したデータを商品数から減じたデータを書き込むという一連の操作をトランザクション という。トランザクション処理をデータベースに反映させることをコミットいい、トランザクション処理中にトラブルが起きた場合は、 すべての処理が破棄される。これをロールバックという。複数のユーザが同時にアクセスした場合、データに矛盾が起こる場合がある。 データベースの矛盾を防ぐ機能を、同時実行制御処理という。
自分がアクセスしている場合に他からのアクセスを制御することをロックという。次のような種類がある。
排他ロック・・・他からの検索・更新などのすべてのロックする
共有ロック・・・他からの参照のみ許可する
デッドロック・・お互いのトランクザクションガじゃまをして、お互いのロックを待つことにより、処理が止まった状態。DBMSは、 これを監視し、解除するシステムも持っている。
●障害復旧機能
 突然の停電などにより、障害が起きたときには、ログファイルによりもとの状態にデータベースを戻す機能を持っている。 システムがダウンした時点で、トランザクションが終了してなければロールバックしトランザクション処理以前の状態に戻す。

給料はどこへ
Aさんは、給料日に銀行へお金をおろしに行きましたが、残高ゼロでびっくり。確かに30万円の給料は振り込まれていたが、 なぜこのようなことがおきたのか。


同時実行制御機能がないと、上のようなおかしなことがおきてしまう。給料の振り込みとローンの引き落としが、 同じデータをもとに処理を行い、引き落としのデータ処理が振り込みより遅れて処理されるとこのようなことが 生じることとなる。

HOMEへ データベーストップへ <<<情報化社会とデータベースへ戻る RDBMSと正規化について>>>