1. ホーム
  2. のらマネージャーのブログ
  3. WebDBを作ろう

WebDBを作ろう

第8回 Web-DBのメリットってなに?

2001年8月15日 12:00

前回までで一応、Web-DBを作るまでの基礎知識(与太話)をしてきました。
ちなみに、実際に作るとなるとあの与太話以上にもっとめんどくさい話が沢山あります。そして何より、一見すると非常にお金が掛かります。

たとえばWebサイトを100ページ程度作って、適当なホスティングを使えばレンタルサーバー+制作費でも標準的な物で、だいたい、1ページ二万円としてレンタルホスト+ドメイン取得を込みでもせいぜい250万円です。
ものにもよりますが、Web-DBであれば、DBソフト+インターネットライセンス だけで250万はたいてい超えます。さらにWeb-DB用のプログラムを一から開発すれば、総額500万だの1000万だのは楽に飛んで行きます。

そして、運用するための技術者の人件費!
なんちゃらマスターの「白金」なんかを頼むとそれはそれは計り知れないコストになります。当然、前回のように 安めのシステムもあるにはあるのですが。さて、そうまでして、このように金食い虫のWeb-DBを作るメリットはなんでしょうか?

それは、そのサイトを使った人の挙動を蓄積できるという一点につきます。「普通のWebのログでもユーザーの挙動が分かるじゃん」という人。
正解です。別にログを解析すればある程度は分かるのです。ところがもっと深いところ、すなわちユーザー個々人の挙動を多角的に分析するという時に、単なるログ解析では得られない相関関係を見つけることが出来ます。そうした解析で有名なところでは、「ブランデーを買う客はオレンジを買う」とか「週末に若い男はビールと紙オムツを一緒に買う」と言うようなルールを見出すことが出来ます。(これで、儲けを出したってんだからアメリカ人ってすごい)

そしてもうひとつ。そのDBをWebじゃないところでも活用できるという点です。
実店舗でのお買い上げの記録、電話でのお問い合わせの記録を、一緒のDBに入 れておけるので、簡単にその人の本当の全体像を掴むことが出来ます。電話で沢山の吟醸酒を買っている人が自社のWebに来たときに吟醸酒の情報を提 供したり、反対にWebでいつも純米酒のコーナーばかり見ている人に純米酒フェアのようなDMを出すなど実社会と連動したプロモーションを可能にします。

たしかに、どちらも別のところにデータベースを置いて、手入力なりまとめてロードするなりして、データベースを解析したり、統合したりも出来るのです が、それでは、タイムリーなお客への働きかけをするのが難しくなります。また、大量の顧客がその対象の場合や、実際の購買などをしていない潜在的な 顧客にたしての場合などにおいて、Web-DBは力を発揮します。

次回からは、この解析手法について、色々話をして行きたいと思います。だん だん専門用語なんかも増えてきて、分かり難くなるかもしれませんが、お付き合い下さい。----- EXTENDED BODY:

第7回 Web-DBを作ろう!

2001年7月15日 12:00

さて、本タイトルとサブタイトルが一緒という、極めて間抜けな状態です。こんなタイトルなんですが、まだ最終回じゃないんですね。
今回は、今までの復習をかねて、実際に構築したあるWeb-DBのお話をしていきましょう。

○営業のスケジュール管理がしたい!

という要望から、色々な手段の模索をはじめました。まずはじめに既存のスケジュール管理ツールを利用しようということで某MS社の某Oを採用して実作業 をはじめました。んが、しかし、営業マンが持っているノートPCの能力差があまりにも大きく、某Oのような重たいアプリケーションが動かない。 で困る人がぽろぽろと出てきました。そこで、あまり重たくないスケジュール管理ツールを開発しようということになりました。

○で、ご要望が。

ということで、必要な要件がぼろぼろと出てきました。さらには、社内イントラネットだけじゃなくて社外を回る営業マンも見れるようにして欲しいとのこ と。こりゃ、もうブラウザーだけあれば使えるWeb-DBしかないでしょ。ということで、開発を開始しました。

○「予算がないんですわ」

という、上司のとっても素敵な一言。あるもので、何とかならんですかというありがちな、最悪の状態。で、そのとき、その会社の中にあったのが、 Windows-NT、Ms-Access97、ファイルメーカーPro4.0。確かに、アクセスもファイルメーカーもDBであることには違いないけど..。 私が一番気にしたのが、どっちも同時多ユーザーアクセスが出来ないDBであるという点。そこで、トランザクションの頻度を確認。まぁ、1日1回30人 程度の営業マンが書き込みで、他は1日数回上司が状況チェックという程度なので、何とかなると判断。

○どっち使おう?

実は、その会社は印刷屋なのでファイルメーカーのスキルはあるんですね。で、ファイルメーカーにWeb発行という機能があるので、それを使いたい! という話が、はじめに出ました。実は私としては、そこに溜まった履歴をオフラインで顧客分析や営業マン動向分析など様々に利用したかったので、この意 見を却下。次に、システム全体がWindows-NTなのでミドルウェアのことや親和性を考えてMs-Access97を選択。

○で、決まった構成が

データベースにMs-Access97、WebサーバーにPWS、これを1台のWindows-NTの 入ったPCで動かすということになりました。で、プログラム言語はASPを採用。よって橋渡しのミドルウェアは自動的にODBCに決定。

○作ってみよう!

まず、Webサーバーの準備。といってもPWSをインストールするだけ。次に、DBサーバーの準備。といってもMs-Access97をインストールするだけ。 次に、二つをつなぐODBCを設定。こいつはちとめんどくさい。実は開発ツールを使うと勝手にこの設定を作ってくれるのですが、今回は手動で。コントロー ルパネルの中のODBCデータソースというのを、こちゃこちゃといじって作ります。実は、こいつを手動でやるのは結構面倒なので、ここでは詳しく解説しま せん。また別の機会に。

○後はプログラムを作るだけ?

ということで、ガリガリとASPのプログラムをメモ帳でプログラムを組みまし た。まぁ、3日くらいで簡単にデモ版を作成。操作性も某Oのスケジュール管理程度と、そこそこの仕上がり。

でも、ちゃんとオチがあって、作ってる間に会社のほうが、とっても高いメモリーと増設用のハードディスクを買ってきて、某Oで実運用が始まっちゃった のです。よって、こいつはお蔵入り。やれやれでした。でも、10台分のメモリーと増設ディスク買う金あるなら1個ちゃんとしたDB買えよとかいいたいところです。

こんな感じでWed-DBの製作というのは流れていきます。実はやってることは単純なので、誰でも出来ると思います。で、次回からは、一番肝心かなめの部分 「データベースから情報を引き出して分析するプログラム」について、簡単な概説をしていきます。----- EXTENDED BODY:

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

2001年6月15日 12:00

前回は、やや退屈なデータベースの製品紹介らしきものでした。第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:

第5回 RDBMSの製品群

2001年5月15日 12:00

先週まで、RDBMSについての分かったようなわかんないような、与太話でしたが、今週は先週書きましたRDBMSの要件を満たすような製品にどのような物があるの かを、羅列していきたいと思います。RDBMSは色々な切り口で分けることが出来ます。また、その得手不得手でWeb-DB を作るときに適切なRDBMSを選ぶことが重要です。現在Web-DBを作ることが出来るRDBMSは大きく分けて、商用、非商用に分けるこ とが出来ます。また、商用に関しては、さらにマルチセッションの向き不向きということで分けることが出来ます。

【商用RDBMS】
以下は商用のRDBMSになります。ただ、DBの価格というのは、はっきり言って「時価」みたいな物ですので、それはその都度、メーカーやベンダーに交渉してみて下さい。

DB2
IBMのリレーショナルデータベースです。ちなみに、リレーショナルデータベースというのはIBMが一番はじめに考えた物だそうです。ERPのパッケージのDBソフトとして利用されていることが多いようです。非常に高価で実際に使う機会はまずないだろうというのが実感ですが、信頼性の高い基幹業務やメーカーの大量の部品に管理などにむいているのではないでしょうか。Web-DBにも当然使えますが、 オーバースペックでは?と思います。

Sybase
ちょっと前まで、「銀行の基幹系のDBといえばSybase」というくらい、信頼性、 コストパフォーマンスともに優れているRDBMS。近年はインターネットブームで、今までのシステム構成とは全く違った物が求められ、そのジャンルに特化したOracleの大攻勢にあい、シェアがやや低落気味。元々信頼性が高いDBなので、Web-DBでも基幹系と関わりそうなものに関しては導入の検討も良いのではないでしょうか。

Oracle
今や飛ぶ鳥を落とす勢いのRDBMS。特にインターネット戦略を早くから考えた作りのためWeb-DBの選択肢としてはオールマイティで、よっぽどのことが無ければ、これを選ぶと良いでしょう。とはいえ、初心者には敷居が高いのも事実(上記2製品も同じだが)で職人の腕前の差が一番露骨に出る製品でもあります。職人のグレードを計るのにオラクルマスターなどという資格まであります。
ちなみに、オラクルの意味は「御神託」ということですが、初期製品は余りに酷く多くのユーザーが「おら狂う」という意味だと怒り狂ったものです。(使っていると、いろんな場面で本当にこっちが狂いそうになります)今のR8.1.6はどうなんでしょうね。(今は9iがリリースされています。)

MS-SQLServer
ビルゲイツ率いるマイクロソフトの戦略商品です。パフォーマンス的には上記3製品にやや引けを取るものの、普通のWeb-DBを構築するには能力的に問題はあまりないでしょう。また、NTとの親和性も抜群です。NTベースでシステムを構築する際にはひとつの有効な選択肢であることに間違いはありません。 サポートもそこそこ親切です(高いけど)。


上記4製品はマルチユーザーのアクセスを大前提としているRDBMSですが、この 「桐」はどちらかというとPC単体上で動かすことを前提としているRDBMSになります。一応、これでWeb-DBを組むことは出来ますが、パフォーマンス的にや や難があります。でも、以外と隠れ「桐」ユーザーも結構いて、大きい企業なんかでも、ネットワーク上の共有のDBで使っていたりもします。

MS-Access
これも「桐」同様、PC単体上で動かすことを前提としているRDBMSになります。メリットもデメリットも「桐」に近い物があります。ただ、この手のRDBMSとし ては、圧倒的なシェアを誇り、参考書もごまんと出回っていてツールの使い方を知っている人も多いので小規模のWed-DBや練習用にはぴったりと言えるで しょう。あと、コンバート用のツールも結構出ていて、はじめにこれでWeb-DB を作って、後からDBだけをOracleやMS-SQLServerにするのも手でしょう。

【非商用RDBMS】
今までは、商用のRDBMSを紹介して来ましたので、基本的に金が掛かるものです。以下は非商用で金は掛かりません。ただし、サポートもマニュアルもないので、 出来る人間を捕まえてこないとそもそも始まりません。下手すると、その人間の人件費が高く付いたりもします。さらに言えばUNIX系のものが主流ですので、 その辺の知識も必要になったりします。

mSQL
好き好きなんでしょうが、RDBMSから色々機能を削ったものと言った感じの 代物です。マルチセッションやいくつかのSQLコマンドが使えなかったりしますが、そんなに困ることはないかもしれません。機能を削った分、「早い」というのが 売りのようです。

MySQL
最近、ホスティングサービスやプロバイダーのWeb用のサーバーで、RDBMSが使 えるものが、ちょこちょこ出てきているようです。たいてい、そういうホスティングサーバーで利用されているのがこのMySQL。パフォーマンス的にはそ んなに問題がないと思いますが、安定性や信頼性にやや難点を感じます。もっとも、私もそんなに使いこんではいないので、使いこむとその辺の克服は 簡単なのかもしれませんが。
ちなみにこのWebもMySQLを使ってます。

PostgreSQL
実は、Web-DB用のRDBMSとしては、実は一時期これが業界標準でデファクトスタン ダードでした。世界のWeb-DBシステムで一番利用されているデータベースだそうです。たしかに、有名ないろんなショッピングサイトのDBもこれのようです。 そういう意味では、安定性や性能面では商用のDBに劣らないものがあるとはいえそうです。

世の中もっと色々DBがありますが、今回は代表的なものだけをかいつまんでみました。実際にはもっと複雑な話ですが、取りあえず、こんな感じの製品があるんだなとつかんで貰えればそれでいいと思います。次回は前回予告してい たうちのもうひとつ、WebサーバーとDBサーバーのつなぎ方を説明します。----- EXTENDED BODY:

第4回 リレーショナルデータベース

2001年4月15日 12:00

このコラムを書くのに、いろいろな資料をひっくり返していたら、私が大学生のころ使ったソフト(スウィングver.2)の説明書が出てきました。
ま、いわゆるNECのPC98用のソフトでかれこれ十年くらい前の物。ハードディスクも10MBで、インターネットなんて誰も知らなかったころです。
その説明書、よくよく見てみたらリレーショナルデータベースシステムって書いてあって笑ってしまいました。そんなこと意識しないで、このソフトで、自宅の図書管理システムとバイト先の某家電チェーンの顧客管理システムを作ってたとは。そういうことで、この与太話を読まないでも、差し支えなくRDBMS(リレーショナルデータベースマネジメントシステム)はマスターできるということのようです。

ま、でも簡単な解説?をしましょ。(じゃないとこのコラムの連載が終わってしまう)Web-DBのデータベースというものは、どういうものかというのを、前回の定義から。

 ・データを格納する形式
 ・データを操作するインターフェース
 ・Webサーバーと連動機能
 ・データベースから情報を引き出して分析可能

でしたね。RDBMSははじめの二つに特徴があります。まず、「データを格納する形式」です。いくつかのテーブルをあるキーで関係付けをするという特徴があります。
こう書くと「なんのこっちゃ?」という感じなので、分かりやすく説明してみましょう。たとえばどっかの企業の社員。

この人に関する情報はどんな感じになっているかと言うと、

名前
住所
所属部所

でも、これだとこの人どこでなんの仕事してるのか分からないので、

名前
住所
所属部所
所属部所の仕事内容
会社の住所

なんて情報を加える必要があります。さらに行くと、会社自体の規模だの所属部所の実績などなど 加え出すときりがないわけです。しかもその部所には何人もいるわけですから、情報が爆発的に増えるわけです。でも、ちょっと考えると、まとめたり 共通で使える情報があるはずです。たとえば

・個人の情報
名前
住所
所属部所名

・部所の情報
部所名
所属部所の仕事
内容会社の住所

このときに、ある個人の情報を見て、そこの所属部所名を見て、部所の情報を拾うという手続きをとれば、人数分の部所情報を用意しないでも良いわけです。
こういうなんか探す手がかり(キー)を元に、他の情報の塊から内容を引っ張ってくることができることをリレーション構造といいます。
こういう構造を持ってるのがRDBMSの特徴のひとつです。この特徴を使うと、いろいろすごいことを知るための構造を作れます。
そのために、Web-DBのDBに必要な条件の
 ・データベースから情報を引き出して分析可能
を満たしていると言えます。どうしてリレーション構造があると こういうことが出来いるのかはそのうちおいおいということで。もうひとつのRDBMSの特徴に「データを操作するインターフェース」があります。
このRDBMSのインターフェースは超有名です。「SQL」と呼ばれているものです。これは、構造型問い合わせ言語の英語訳の省略形で、Structured Query Languageの略です。まぁ、手っ取り早い話がさっき言ったリレーション構造になっている情報を手早く探して来たり、内容を書き換えたり、内容を追加したりする言語です。
言語というくらいですから、インターフェースとは言っても、えっらい地味です。
こっちがなにやってるのか悩めます。MACやWindowsなどのGUIに馴染んだ人々にはなんのこっちゃという代物です。
ただ、このままではちょっと問題があるんですね。RDBMSはSQLしか理解できないということです。Web-DBを作る上ではこのSQLをいかに してWebサーバーからデータベースに引き渡すのかが問題になります。ここの部分は、各ベンダーごとやシステムごとの独自の技術なんで、 次回はここに焦点を絞りつつ、現行のRDBMSの製品を紹介して行きましょう。----- EXTENDED BODY:

アイリンクへのお問い合わせ

お問い合わせメールフォームはこちら

2016年12月移転 北海道旭川市神楽1条7丁目4−8 お問合わせはメール・SNSアカウントで mail
  • twitter
  • facebook
  • google
  • noimage
  • noimage
  • noimage