第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: