Lesson1 リレーショナルデータベースの基礎


データベースとは結局のところただのデータの蓄積に過ぎません。しかし、その歴史的背景には様々な変動のようすを見ることができます。そしてその変動の歴史の中、データベースはより洗練され、より使い勝手のよいものに姿を変えてきました。データベースはコンピュータと共に、確実に進化をとげ、現在では私たちの生活のいたるところに存在しています。
そして、コンピューターがもっとも活用される場でもあるのです。
最初の Lessonではこのようなデータベースの概要とそれにまつわる歴史について考えてみたいと思います。

1.1 データベースとは?
データベースというものは基本的にデータの蓄積です。データは1件でも構いませんが複数存在することで意味を持つようになります。
例えば図書館を考えてみてください。図書館には沢山の本(データ)がありますが、これが多ければ多いほど図書館としての役割を果たすことができるようになります。

ただし、それが全てのケースにおいて正しいと言い切れるでしょうか?

例えば、ある目的の本を探したい場合を考えてみてください。ソフトバンクから出ているSQLの本とだけ分かっている本を探す場合に、大量に蔵書されている国会図書館の中から探し出すのと、町の小さな図書館から探すのであれば、殆どの場合は町の図書館から探す方が簡単でしょう。理由は探す対象が少なければ少ないほど探す手間がはぶけるからです。しかし、問題はその本が無ければまったく意味が無いということでしょう。

つまり、結局はデータは多ければ多いほど良いが、それなりの対処を施しておかないとかえって状況は悪くもなりうると言えます。
ではどのようにすれば良いでしょうか。例えば、図書館の場合はその本の種類ごとの棚にならべたり、あいうえお順にならべたりとやり方はいくつかあるでしょう。図書カードを作ってどの棚に何の本があるかという情報を記録していくというのも良いかもしれません。

つまり、データベースも使いよう、効率的に使うにはそれなりの作業が必要というわけです。(少々強引ではありますが。。。)

そこでデータベースを上手に制御して作業の効率化を図るシステム、データベースマネージメントシステム(DBMS)が必要になって来るわけです。DBMSはデータベースとユーザーとの中間に入り、単なるデータの蓄積を非常に便利で有意義なものに変えてくれます。大量のデータの中から簡単に目的のデータを取得することができ、複雑な要求をいとも簡単にこなすことができます。そして、このようなデータベースとユーザーが対話する言語こそ、SQLなのです。

1.2 データモデル
SQLの話を始める前にもう一つデータモデルに関して話しておかなければなりません。データモデルとはデータベースに貯えられるデータの構造のことです。つまり、データベースにどのようにデータを蓄積するかによってさまざまな種類に分かれます。データモデルには階層型やネットワーク型などのいくつかに別れますが、最近の主流はリレーショナルモデルと呼ばれるものです。リレーショナルモデルとは現在ではデータベースの父とも呼ばれているIBM研究所の E.F.Codd 氏に 1970年に発表されたもので、基本は関係演算と集合演算で全てのデータを扱うように設計されています。これらの演算では、データは2次元の表として考えられ、互いの表の関連をキーと呼ばれるもので擬似的に結合することによってデータを表現できるようになっています。また、リレーショナルデータベースの各表と表はキーによって結ばれデータの重複をはぶき効率的にデータを管理できるようになっています。また、キーによって各表と表とが結ばれることによって、データ構造の変更に柔軟に対応することもできます。このように、リレーショナルモデルは非常に効率的で優れたデータモデルと言えるのです。なお、リレーショナルデータベースの構造を効率化していくプロセスのことを正規化といいます。

このように、リレーショナルモデルに基づくデータベースをリレーショナルデータベース、そしてリレーショナルデータベースを制御するDBMSをリレーショナルデータベースマネージメントシステム(RDBMS)と呼んでいます。

なお、RDBMSとの対話にSQL言語を採用しなかったデータベースシステムもいくつか存在しました。しかし、現在ではそのようなリレーショナルデータベースはほとんど無いようです。

まとめ
 データベースマネージメントシステムはデータベースを上手に制御して効率化を図るシステムです。これによって、単なるデータの蓄積を効率的で有意義なものに変化させることができます。現在ではデータベースのデータ構造(データモデル)はリレーショナルモデルが主流です。また、これらRDBMSとユーザーとの対話には一般にSQLが使われています。



本書での要点

  1. リレーショナルデータベースの詳細とキーの役割
  2. 集合演算と関係演算の詳細
  3. データの正規化の方法


<戻る>