どうも、porukaです。
第三回も、データベースについての説明をしていきます。前回は、「データベース製品の種類」、「SQLの標準化」、そして、「データベースサーバ」について解説しました。
今回は、前回の予告通り、Webシステムを例にクライアント/サーバモデルについて解説して行きます。
1.Webシステムとは
2.RDBMSのクライアント/サーバ
3.Webアプリケーション
この三つについてお話しして行きます。
1.Webシステムとは
Webシステムは、ブラウザとWebサーバから構成される、クライアント/サーバモデルの一つです。
クライアントであるブラウザというのは、この記事を見ている今でも使ってるもので、SafariやGoogle Chromeのことを指します。このブラウザは、ユーザがクリック及び入力によって指定したURLによって示させるWebサーバに要求を出します。要求というのは、URLの指し示すページのデータが欲しい、ということです。
クライアントの要求というのは、この Webシステム上では、「リクエスト」と呼ばれます。このリクエストを受け取ったWebサーバは、それに答えるように処理を始めます。
例えば、クライアントの要求が「ページを見たい」というものであれば、Webサーバは、HTMLで記述されたそのページの内容のデータをクライアント側に送ります。この、Webサーバからの返答を「レスポンス」と言います。
その後、ブラウザはそのデータをもとに画面にページ内容を表示します。
まとめると、
1.ブラウザがURLを指定
2.ブラウザがURLの指し示すWebサーバに対して要求を出す(リクエスト)
3.Webサーバは、要求を受け取りそれに対して処理を開始
4.Webサーバは、HTML等で記述されたページの内容をクライアント(ブラウザ)側に返す (レスポンス)
5.ブラウザはそのデータをもとに画面に結果を表示
この1〜6の全てが終わって初めて一つの処理が終わったということになります。
この繰り返しによってWebアクセスというものは出来ています。
2.RDBMSのクライアント/サーバ
RDBMSは、Webシステムに加え、ユーザ認証というシステムが加わります。これにより、RDBMS内のデータにアクセスすることができるユーザを限定したり、データベースの使用を制限することが出来ます。
ユーザ認証は、基本的にユーザIDとパスワードによって行われます。ユーザIDとパスワードの両方をあらかじめRDBMSに登録していなければ接続することが出来ないようになっています。
ユーザ認証を経て、RDBMSと接続出来たら、SQL命令をサーバ側に送ることが出来るようになります。一度、接続してしまえば、SQL命令を何度も送ることができ、ネットワークが途切れていなければ、その都度、返答が帰ってきます。
3.Webアプリケーション
Webアプリケーションとは、Webサーバとデータベースサーバの組み合わせで構築されたものが多いです。では、その仕組みがどのようなものなのか、解説します。
Webサイトが静的なHTMLページのみで構成されている場合は、Webサーバのみで構成されているWebシステムもありますが、Webアプリケーションと言われるものは、データベースとも連携を取って作られているのです。
Webサーバ上に動的なコンテンツを配置するためには、それらを制御するプログラムが必要になります。Webサーバには、CGIという拡張方式があり、これを使ってプログラムとWebサーバが連携します。CGIは、データベースからのデータを元にHTML生成します。
プログラミング言語としては、PHP、Perl、Rubyなどのスクリプト言語が使用される傾向にあります。中には、JavaとServletの組み合わせによるものもあります。
このような背景から、実際にデータベースにアクセスするのはPHP、Rubyなどのプログラミング言語で記述されたCGIプログラムであることが分かるかと思います。また、Webサーバ内において、CGIプログラムがデータベースのクライアントの立ち位置になります。
クライアントとサーバは、ネットワークにさえ繋がっていれば、何台あっても大丈夫です。つまり、クライアントが増加したら、それに合わせてサーバの数を増やすという柔軟な対応を取ることが出来ます。
まとめ
Webシステムは、クライアント(ブラウザ)、Webサーバによって構成されている。
Webアプリケーションは、 Webシステムの規模が大きくなったもので、クライアント、Webサーバ、データベースサーバによって構成される。
これで、データベースの解説は終わりになります。