お知らせ

データベースの成り立ち

データベースという言葉は、非常に頻繁に聞く言葉です。

OracleやMySQLなど現在主流のデータベースはリレーショナルデータベースと呼ばれる種類のデータベースです。

コンピュータはプログラムがデータを扱う、という仕組みによって動作します。

データは業務のものや、機器を制御するためのデータ、様々なデータを対応するプログラムが扱います。

データはプログラムの内部にあっても良いのですが、プログラム外部にデータを保管することで、追加や変更、他のプログラムからの利用が簡単になります。

そのデータの置き場所がデータベースで、そもそもはデータの先頭から読み出していく順次的なものでした。これをシーケンシャルアクセスと呼びます。

データベースの成り立ちはコンピュータの記録装置の歴史を辿ることになり、ハードディスク、フロッピーディスク以前にオープンリールなどのテープ装置が使われていました。

テープ装置はテープ先頭からの順次の読み出しが基本で、他にプログラムからの制御によって早送り、巻き戻しを行います。

データの保存はデータの最後尾に追加するか、既存のデータの上書きになります。

テープから読み出されたデータはメモリに格納され、プログラムによる処理が行われます。

この方式では処理に時間がかかることと、メモリの制約を受ける範囲内でしかデータは扱えません。

ハードディスクがコンピュータに備えられるようになって、データは自由にどこからでもアクセスできるようになりました。ランダムアクセスと呼びます。

ランダムアクセスによってデータの読み書きの効率は非常に高くなり、ハードディスクによって大量のデータが保管できるようになりました。

そこでデータとデータの間を連結リストなどのアルゴリズムを利用してデータの並び順を作ることで、データベース内のデータを素早く探索できるような仕組みが出来上がりました。これはインデックス(索引)と呼ばれます。

必要なデータを読み出す際、一定の項目によって順番に並んでいる時、バラバラに配置されたデータをすべて読み出して見つけるのとは比較できないぐらいの高速になりえます。

データの探索が高速で効率良くできることによって、二つのデータベースを関連付けるなどの効率が実用的となり、現在一般的に利用されているリレーショナルデータベースが主流となっていきました。

SQLというデータ呼び出し言語が多くのリレーショナルデータベースに付属しています。

それまでは各プログラムがデータを読み出して抽出、加工していたものを、簡易な言語によってデータベース側で実行できるようになりました。

もともとはプログラム側でプログラミング言語によって書かれていたアルゴリズムが、SQLによって簡易に記述できるようになり、データベースを扱う複雑なプログラムが隠蔽されるようになりました。

これにデータの読み出し、書き出しの要求を逐次処理するためのトランザクションも組み込まれて、複数の呼び出しなどにも正確に対応します。

これら機能が集約することにより、リレーショナルデータベース管理システム(RDBMS)は汎用性を持ち、各業務プログラムから独立してデータの読み込み、書き込みを担当するミドルウェアとして活用されています。