矢沢久雄 グレープシティ アドバイザリースタッフ

今回のキーワード
・データベース
・DBMS

 この連載は,これからデータベース・システムの開発を始める人,あるいは実際には開発にかかわらなくても,基礎知識の一つとしてデータベース・システム関連の用語の意味を知りたい人を対象として,短期間でSQLとデータベースの全体像を把握していただくことを目的としたものです。

 コンピュータ業界は,日進月歩と言うよりは秒進分歩(?)と呼べるくらいの猛スピードで技術が進歩していますが,そんな中でデータベースを操作するための言語であるSQL(Structured Query Language)は,揺るぎようのない確固とした技術として確立されています。SQLを知っていれば,およそデータベースとはどういうものかが理解できます。ところが,SQLという名前だけを知っていても,ただそれだけ…という人が少なくないと思います。

 そんな人こそ,この連載をお読みいただきたいと思います。年始でお忙しいとは思いますが,少しだけ時間を割いてお付き合い願います。SQL文の羅列と解説ではなく,「なるほど!」と思っていただける情報を提供させていただきます。それでは,はじめましょう!

図1●データベース(DBMS)=データ・ファイル+データ管理プログラム

まずは,データベース用語をおさえておこう

 SQL(Structured Query Language)は,データベースを操作する目的で作られた言語ですが,いきなり言語構文の説明をしてもチンプンカンプンになってしまうでしょう。今回は,ウォーミングアップとして,SQLの構文を学習するために必要となる基礎知識を提供したいと思います。まずは,データベースにまつわるさまざまな用語をおさえておきましょう。

 「データベース(Data Base)」とは,再利用可能な情報の集合体のことです。例えば,皆さんの手帳に記された手書きの電話帳だって立派なデータベースと言えます。ただし,一般的にデータベースと呼ぶ場合には,コンピュータで処理される形式になった情報のことを呼びます。手書きの電話帳をワープロに転記すれば,コンピュータで処理することが可能になります。ところが,コンピュータが進歩した現在では,単にワープロのファイルとなっただけのものは,データベースとは言えなくなりました。今では,これはただの「データ・ファイル」です。

 それでは,現在では何がデータベースと呼べるのでしょう。現在では,データ・ファイルとデータ管理プログラムのセットのことをデータベースと呼ぶのが一般的です。このデータ管理プログラムは,データ・ファイルを読み書きする機能を提供するものです。そして,データ・ファイルとデータ管理プログラムのセットのことを「データベース管理システム(DBMS=Data Base Management System)」と呼びます。そうです! 現在では,DBMSのことをデータベースと呼ぶのです(図1[拡大表示])。マイクロソフト社のSQL Serverや,オラクル社のOracleなどは,市販DBMSの代表です。身近なところでは,Microsoft Officeファミリの一製品であるAccessもDBMSです。

DBMSの役割

 なぜ,データ・ファイルとデータ管理プログラムをセットにして使うのでしょうか? 大きく3つの理由があります。

 最初の理由は,データ・ファイルの構造がDBMSメーカーの企業秘密であるということです。メーカーがいろいろと工夫を凝らして,安全かつ高速にデータ・ファイルを読み書きできるようにしたデータ・ファイルの構造を公開してしまったら,競合メーカーにノウハウを知られてしまいます。そこで,データ・ファイルの構造を秘密にしたままで読み書きを実現するために,読み書き用のプログラムをセットで提供するわけです。図1に示したように,データベースのユーザーは,データ管理プログラムを仲介させて間接的にデータ・ファイルを読み書きすることになります。

 2つ目の理由は,仮にデータ・ファイルの構造を公開したとしても,構造が複雑すぎて取り扱いが面倒だということです。DBMSの持つデータ・ファイルは,所詮ただのファイルなのですから,ユーザーが独自に作成したプログラムでも読み書きできます。しかし,これでは,ありとあらゆる処理を手作りで実現しなければなりません。しかし,データ管理プログラムがあれば,それが提供してくれる簡単な手続きだけを利用してプログラミングすればよいことになります。データ管理プログラムが,複雑なデータ・ファイルの構造をブラックボックス化してくれるわけです。

 3つ目の理由は,複数のユーザーが同時にデータ・ファイルを読み書きすることを可能にし,さらにデータ・ファイルの内容を保護(アクセス権や障害復帰など)するためです。データ・ファイルというものは,1つのプログラムによってオープンされ,それがクローズされるまでは,他のプログラムから書き込みできません。これでは,企業で利用されるデータベースにはなり得ません。ネットワークに存在するデータベース・サーバーに接続された複数のクライアントから同時に読み書きできてこそ,企業向けデータベースだと言えます。

図2●ファイル・サーバーとデータベース・サーバーの違い
 そのためには,データベース・サーバーの中にあるデータ管理プログラムだけがファイルをオープンし,各クライアントは,管理プログラムを仲介させて間接的にファイルを読み書きすればよいのです。また,データ・ファイルは,単なるデータなのですから,ファイル自身がアクセス権をチェックしたり,障害復旧などの動作をしたりはできません。動作がからむなら,何らかのプログラム(つまりデータ管理プログラム)が必要なのです。

 先ほど,いきなり「データベース・サーバー」という用語を使ってしまいましたが,これはDBMSがインストールされたサーバー・マシンのことです。データベース・サーバーと混同されやすいものに「ファイル・サーバー」があります。ファイル・サーバーとは,ネットワークに接続されたマシンの中で共有フォルダ(他のマシンに公開されたフォルダ)を持ったもののことです。皆さんがお使いのマシンがネットワークに接続されていて,かつ共有フォルダが1つでもあるなら,それは立派なファイル・サーバーです。ただし,共有フォルダの中にあるデータ・ファイルは,同時に1つのクライアントからしか読み書きできません(図2[拡大表示])。

◎今回の復習
・データベースとは,データ・ファイルとデータ管理プログラムのセットのことである
・DBMSは,データ管理プログラム,データ・ファイルの隠ぺい,同時アクセスの実現の3つの機能を提供する