Web教材一覧データベース

データベースの機能の概要

学習のポイント

データベースによるデータの持ち方は,通常のファイルと比較してどのような利点があるかを理解します。

  1. プログラムからの独立。それによるデータの部品化。
  2. 正規化による冗長性の排除。それによるデータ管理の容易化。
  3. 排他制御などによるインテグリティの確保。
  4. きめ細かいセキュリティ機能。
  5. バックアップ/リカバリ機能による事故対策。
  6. インデクスによる処理効率の向上。

これらはかなり抽象的な高度な概念ですので,厳密に詳細にわたることは避けて,その概要を理解するにとどめます。

キーワード

プログラムからの独立,ファイルデザイン,冗長性の排除,排他制御,同時更新,ロック機能,機密保護,障害回復,インデクス,B-tree,ビットマップ,更新処理,検索処理,OLAP

過去問題:「排他制御」( haita-seigyo.), 「バックアップとリカバリ」( backup-recovery


プログラムからの独立

通常のファイルは下図のような形式になっています。ファイルに入っているものはデータだけであり,「月日」や「得意先コード」などの項目名はファイルには含まれていません。さらに,物理的にはファイルの中では,項目間の区切りやレコードとレコードの間の区切りもありません。しかも,実際にはバイナリ表示になっているので,これよりさらに複雑になっています(図示)

1001500コダマ電器101目立テレビ10テレビ10401001500コダマ電器205HALパソコン20パソコン202001001500コダマ電器326松川ケータイ30ケータイ10101004600リラックス213MDBパソコン20パソコン30180・・・・

それで,プログラムでどこからどこまでを何という項目名で取扱うのかを定義する必要があります。すなわち、プログラマは利用するファイルの詳細を知る必要があったのです(COBOLでのファイル定義例)

下はCOBOL言語でのファイル定義文ですが,プログラマは個々のプログラムでこのような定義をしなければならなかったのです。

FD 売上ファイル.
01 売上レコード.
  02 月日    PICTURE 9(4).
  02 得意先コード  PICTURE 9(3).
  02 得意先名    PICTURE N(5).
  02 商品コード   PICTURE 9(3).
  02 商品名     PICTURE N(7).
02 商品区分コード PICTURE 9(2).
02 商品区分名   PICTURE N(4).
  02 個数      PICTURE S9(3) COMPUTATIONAL.
  02 金額      PICTURE S9(9) COMPUTATIONAL.

それに対して、データベースをアクセスするにはSQL言語が用いられますが,それでは下図のような記述ができます。

   SELECT 得意先名,商品名,数量
    FROM  売上ファイル
    WHERE 月日="1001";

ここでは,「得意先名」や「商品名」「数量」などの項目名はDBMS(データベース管理システム)で定義されているので,プログラマはファイルデザインを知る必要はないのです。

通常のファイルでは、個々のプログラムでファイルデザインを定義しているので、ファイルに新規の項目が追加された、既存項目の桁数が変更になったなど、ファイルデザインが変化したら、そのファイルを用いているプログラムをすべて変更しなければなりません。
 それに対して、個々のプログラムでは,そこで必要とする項目名だけを使っているのですから,後になってファイルデザインが変更になっても,プログラムを修正する必要はありません。すなわち,データベースでのデータをプログラムから独立して管理できるのです。

これは,データを部品と考えることでもあります。すなわち,データベースとはデータを部品として再利用することを目的としているともいえます。

冗長性の排除

データベースにするにあたり,データの正規化をすることが必要になります。正規化すると,全体としてのデータ量が少なくなり,ディスクなどの記憶装置のコストを少なくすることができます。
 それだけでなく,一つの項目は一つの場所にしか存在しなくなるので,データの管理が容易になります。たとえば,得意先名が多くのファイルに存在するとき,その名称が変更になったとしたら,どのファイルに該当する得意先があるのかを調べて,それを間違いなく修正しなければならなりません。これは大変な作業になるし,修正もれを完全になくすことは困難です。それに対して,正規化されていれば,得意先名は得意先マスタにしか存在しないので,得意先マスタを修正するだけで,すべてのシステムについて,間違いなく修正できたことになります。

排他制御

売上処理は担当者が多いので、売上ファイルを複数の人が同時に更新することがあります。それを同時更新といいます。同時更新が発生するファイルでは、データの一貫性(インテグリティ)を維持するために、ある人が更新をかけている場合、その処理が完了するまで、該当するファイルに他の人が更新をかけないようにロックをかけておき、他の人からの更新処理を待たせておく必要があります。この機能を排他制御といいます。
 DBMSでは、ファイル全体にロックをかけるのか、該当するデータにだけロックするのかなど、ロックの粒度を指定したり、ロックの解除、待っている処理の自動再開など、排他制御を効率よく行うための機能をもっています。
→詳細:「排他制御

機密保護

データベースに蓄えられているデータのなかには,特定の人以外には秘密にするべきデータもあります。通常のファイルでもファイル単位にユーザIDやパスワードにより,
   読み書き両方ができる
   読むことはできるが書くこと(更新)はできない
   読み書き両方ともできない
に分けてアクセス制御することができますが,さらにデータベースでは,DBMSが独自に
   列(項目)単位,行(レコード)単位でのアクセス制御できる
   アクセス資格を多様なグループ分けにして指定できる
など,きめの細かい機密保護ができるようになっています。

障害回復(リカバリ)

万一のトラブルによりデータの整合性を失ったとき,データベースを回復する機能があります。データベースを更新するとき,更新件数や時間などによりチェックポイントを設定しておき,チェックポイントになると,次のチェックポイントに達するまで,更新前と更新後の情報をログというファイルに記録しておき、チェックポイント間でトラブルが発生したときは,ログファイルを用いてデータベースの内容を直前のチェックポイントの状態に回復するのです。
→詳細:「バックアップとリカバリー

インデクス

通常の事務処理では、データの更新や照合など、データをあるキーで検索する処理が多発します。その処理を効率化するためには、データにインデクスという検索用の索引をつけておくことがあります。通常のファイルでも乱編成ファイルや索引つきファイルなどがありますが、データベースではDBMSがインデクスを管理しており、項目ごとに多様なインデクスがつけられるようになっています。
→詳細:「ファイル編成}、「インデクス


理解度チェック

第1問

  1. データベースの目的として,最も重要なのが[ 1 ]からの独立である。また,[ 2 ]化をしたデータをデータベースにすることにより[ 3 ]性が排除され,一つの項目は1カ所にしか存在しないので,データの管理が容易になる。さらに,データベースには,同時更新処理でのデータの一貫性を保つための[ 4 ]機能や障害が起こったときのリカバリ機能,特定の人以外にはアクセスを禁止する[ 5 ]機能などがある。
    1 プログラム 2 正規 3 冗長 4 排他制御 5 機密保護
  2. データベースの目的の一つに,プログラムからのデータの独立を図ることがある。
    ○ これがデータベースの最大の利点
  3. 同時更新にさいして,データに矛盾が起こらないようにする機能のことを機密保護機能という。
    × 機密保護機能→排他制御

本シリーズの目次へ