第6回 データベースをつなごう!

前回は、やや退屈なデータベースの製品紹介らしきものでした。第2回とあわ せてWebサーバーとDBサーバーがそろいましたので、次はこの二つをつなぐ作業です。久々の、Web-DBに必要な5つの仕組みを書きますと、

 1・当然、情報を発信するためのWebサーバー。
 2・お客の情報を蓄積していくデータベース。
 3・Webサーバー上の履歴をデータベースに渡すプログラム。
 4・データベースから情報を引き出して分析するプログラム。
 5・分析結果に応じて必要なHTML(ホームページ)を
   吐き出すプログラム。

となります。

ここで、3と5のプログラムの言語はちょこっと説明したのですが、実際に3と5をやるためには、色々な意味で、きちんとデータベースとWebサーバー が接続している必要があります。じゃ、どうつなぐの?ということになりますが、当然、データベースの入ったPCとWebサーバーが 入ったPCの2台をケーブルでつなぎます。と、いいたいところなのですが、実は1台でもOKだったりします。
1台のPCのなかに、データベースとWebサーバーの両方をインストールしておけばケーブルでつながなくてもOKです。

でも、1台のPCに入れると一つのPCでデータベースの仕事とWebサーバーの仕事を同時にさせるので、一人二役、二人分の仕事を一人でやるようなもので、 えらい負荷がかかって、人間と同じように仕事のスピードが遅くなったり、はたまた、ダウンして仕事が出来なくなったりすることもあります。
まぁ、とにかく繋がったので、めでたしめでたし。と言いたいところですが、ただ二つつなげばOKなどという甘い世界じゃありません。
昔のPCと周辺機器の接続を思い出してください。線をつないだって、周辺機器はろくすっぽ動きません。ドライバーという間を媒介するものが必要でし た。
今は、つなげば勝手にその辺の設定をしてくれて楽チンですが。実は、データベースとWebサーバーの間にも、こういうドライバーのようなも のが必要です。それが、ミドルウェアと呼ばれる一連の製品群です。こいつがないと、繋がってるけど、SQLが伝わらないので、何にも出来ない 間抜けな状態です。(そのまえにネットワーク用のプロトコルも繋がってないと駄目ですけど。)このミドルウェアというものは、データベースソフトごとの独自のものや、 Webサーバー独自のものまで、これまた色々あります。ここでは代表的なものをいくつか紹介します。たいていはこんだけ知っていれば、まず問題はありません。

ODBC---------------------------------------------------
まぁ、現代のMS支配のご時世では一番使うことが多いミドルウェアです。いわゆるWindows系のOS専用です。でも、WebサーバーがWindowsでなけれ ばいけないというだけで、データベースはMS製品じゃなくてもOKです。オラクル、Sybase、DB2、などなど何でも繋がる、結構便利なやつです。 器用貧乏なのか、パフォーマンスが上がらなかったりリソースを食ったりと欠点もちらほら。

OO4O/OCI------------------------------------------
どちらも、データベース界のデファクトスタンダード「オラクル様」専用の接続手法です。OO4O(オーオーフォーオーと読むらしい......)は、オラク ル様のスーパーパフォーマンスはODBC如きを使っていては引き出せないということでWindowsOS上のアプリで開発するときに用います。
OCIはいわゆるオラクル専用のインターフェースで、「ネィティブ(意味不明(笑))」な接続で使えます。ちなみにCやPHPのときに使います。なんてっ たってネィティブなので、パフォーマンスは最高だとか。

JDBC---------------------------------------------------
JっていうくらいだからJAVA用。ちなみに、筆者は使ったことがありません。おっきな仕事をしたい人は覚えましょう。おっきな仕事でも、どんくらい ニーズがあるかは不明。世界中のベンダーがいろいろ言うからきっとニーズがあるんでしょう。最近はJSPとかサーブレットがはやってきたので、小規模でもじわじわ使うところが増えて来てます。

DBD・DBI---------------------------------------------
apacheなどCGI系統の方は、これが必須でしょう。世界中に色々なデータベース用のモジュールが転がっているので、つなげないデータベースは存在しない といっても過言ではありません。モジュールの探し方使い方が謎なことが多く、その道に精通している人の助けが必要です。ちなみに、DBD/DBIからODBCを経 由して色々なDBにつなぐという、よくわかならないけど便利なことも出来たりします。

とりあえず今回で、

 1・当然、情報を発信するためのWebサーバー。
 2・お客の情報を蓄積していくデータベース。
 3・Webサーバー上の履歴をデータベースに渡すプログラム。
 4・データベースから情報を引き出して分析するプログラム。
 5・分析結果に応じて必要なHTML(ホームページ)を
   吐き出すプログラム。

の、1,2,3,5の要素がだいたい出揃ったので、次回以降は具体的な組み立て手順のお話をしたいと思います。----- EXTENDED BODY: