データベース千夜一夜第1回

データベースよもやま話 長谷川裕行
有限会社 手國堂

RDBMS以前と以後

現在では当たり前となったRDBMS(リレーショナル・データベース管理システム)ですが、それが登場する以前にも、業務処理ではデータベースを扱っていました。扱い方は現在のデータベースとまったく異なりますが、基本的な考え方は同じです。


- なんでもかんでもデータベース -

データベースとはどのようなものか? 読者のみなさんにとっては、非常に簡単な問いだと思います。「一定の書式に従って、情報を蓄積したもの」これが、データベースに対する最も端的な定義でしょう。

もちろん、世の中には電話帳や住所録、図書館の蔵書目録などなど、紙情報のデータベースもたくさんありますが、ここではコンピュータで扱うデータベースを対象としています。

さて、「コンピュータで扱うデータベース」と簡単に言いましたが、それでも、多くの方がイメージしている「いわゆるデータベース」とは異なる形態のものが、実はたくさんあります。例えば、TCP/IPネットワークのDNSサーバーが管理しているドメインとIPアドレスの組み合わせ情報、WindowsやUNIXなどのユーザー情報などもデータベースです。Windowsのレジストリもデータベースの一種だと言えるでしょう。

こういった設定関係の情報はWindowsではバイナリファイルとして記録されますが、UNIXではテキストファイルとなっています。ファイルの形式にかかわらず、基本的には「一定の書式に従って記録された情報群」はすべてデータベースであると言えます。


- RDBMS以前のデータベース -

現在、コンピュータの、特にプログラミング分野で「データベース」と言った場合、多くの方はRDBMS(リレーショナル・データベース管理システム)で管理されるデータファイルまたはデータ群そのものを指すと捉えるはずです。しかし、リレーショナルでないデータベースや、管理システムで管理されていないデータベースもたくさんあります。

RDBMSが登場する以前には、特に業務アプリケーションの分野では、COBOLによるファイルアクセスでデータベースを扱っていました。つまりデータベースは、ディスク上に記録された単なるファイルだったのです。

これは、COBOLに限らず汎用機やそこから派生したオフコン(オフィス・コンピュータ)のOSでは、ごく当たり前のことでした。そもそもこれらのOSでは、ディスクに記録するファイルに順編成ファイルと索引順編成ファイルの2種類があり、それらの操作は基本的にOSが管理していました。

順編成ファイルは文字通りファイルの先頭からシーケンシャルに読み書きするファイル、索引順編成ファイルは番号によって任意の行を指定して読み書きできるファイル形式で、どちらも予め1件分のバイト数と件数を決めてその領域を確保(アロケート)してから利用するものでした。


- COBOLのデータ定義 -

例えば、商品の情報を記録する1件分のデータが以下のような形態だとします。

用途 商品コード 品名 単価 単位
形式 文字列 文字列 数値 数値
桁数 12

桁数(バイト数)を合計すれば24桁となるので、このデータベースは1件が24バイトとなります。これを1,000件分記録できるようにするなら、およそ24Kバイトの領域を確保する必要があります。

このような形式のデータを、COBOLでは以下のように定義して操作します。

**********************************************
WORKING-STRAGE
01 SYOHIN-DATA.
02 SCODE
02 HINMEI
02 TANKA
02 TANI
SECTION.

PIC X(4). * 商品コード
PIC X(12). * 品名
PIC 9(6). * 単価
PIC 9(2). * 単位

蛇足ですが、過去のCOBOLプログラミングでは、例えば「しょうひん」は“SHOHIN”ではなく“SYOHIN”などと、シンボル名を文部省式表記のローマ字で行う人が多かったようです。


- RDBとSQLの誕生 -

上のようなCOBOLのデータ定義は、リレーショナル・データベースのレコード定義と同じ形式です。ただ、COBOLでは文字列(X)と数値(9)の2種類のデータ型しか扱えないため、定義は非常に単純です。

軍事目的から始まったコンピュータの利用が、学術研究や国勢調査、財務など一般用途へと広まり始めた1960~1970年代にかけては、このようなファイル操作によるデータベースが使われていました。

1970年代に入って、エドガー・コッド(Edger F. Codd)氏が提唱した関係モデル理論に基づき、IBM社のサンノゼ研究所でリレーショナル・データベースの原型が誕生しました。その後IBM社は、DOS上で動作するデータベース管理システムSystem Rを開発しました。これが、後にDB2へと発展します。

System Rには、データ照会用の言語SEQUEL(シークエル)が搭載されていました。この言語が様々な改良を経て、最終的にSQLとしてANSIとISOで規格化されました。


- パソコン用RDBMS -

やがてクライアント・サーバー型のネットワーク環境が一般化し、そこで動作する業務アプリケーションのデータベース管理に、リレーショナル・データベースを管理・制御するシステム――RDBMSが搭載されるようになり、クライアント・アプリケーションからサーバーの管理するデータベースに対してSQLで問い合わせる――というスタイルが確立されていきました。

1980年代に入ると、オラクル社とサイベース社が相次いでDOSベースのパソコン用RDBMSを発売し、マイクロソフト社もSQL Serverを開発します。こうして、クライアント・サーバーシステムでパソコンをデータベース・サーバーとする環境が一般化しました。

RDBMSによって、それまでアプリケーションごとにコンピュータのディスク内にファイルを準備し、個別に管理・制御していたデータベースを、一括して集中管理できるようになりました。そして、個々のアプリケーションからデータベースを操作する統一的な手段がSQLです。


トップページ
RDBMS以前と以後
なんでもかんでもデータベース
RDBMS以前のデータベース
COBOLのデータ定義
RDBとSQLの誕生
パソコン用RDBMS
様々なデータベース
データベースの構成要素
あとがき
Copyright © MESCIUS inc. All rights reserved.