【Webプログラミング - enterprise.001 】 データベースアラカルト連載開始!

                                                          2002年05月27日発行
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■Webプログラミング - enterprise.001
                                              http://www.ichikoro.com/webp/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

               【 Subject:データベースアラカルト連載開始! 】


こんにちは、編集者の勝部です。

今週は「enterprise版」ということで、内容的にはチョコッと難しく書いています。
コラムの方は以前お話してました「インターネットで気持ちは伝わるか」をお届けし
ます。次回(来々週)からは、ネットワークプログラミングでもはじめようかと思いま
す。お楽しみに。

書かなければいけない原稿がたまってまして、B'zをバックに景気入れて書いてはい
るのですが、今夜はどうやら徹夜っぽいです(笑泣)

大変ではあるのですが、思いついた文章をアウトプットする作業はとても心地よく、
楽しいです。日記を毎日...というのは続きそうも無いですが、一週間に一回、一番
心に残ったことを書き留めておくと、積み重ねていく感があっていいですよ。このメ
ルマガのもう一つの側面はそれだったりするのですが(笑)

では今週も行って見ましょう!


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 01. データベース アラカルト:「データベースって何だっけ?」
──────────────────────────────────────

当分の間「データベース」をテーマに、色々とお話していこうと思います。
今回は概念となる部分をお話します。

    ■データベースって何だっけ?
        世にいわれている「データベース」という言葉には、様々な意味が
        含まれています。その中でも大雑把に分けると、

            ・製品の種類(カテゴリ)
                Oracle、Microsoft社のSQLServerやAccess、
                フリーで配布されているPostgreSQLやMySQLなど。

            ・サービス名称
                例えば、駅前探検クラブ(http://www.ekitan.com/)は、
                全国の時刻表が検索できるデータベースだといえます。

        WWWも巨大なデータベースといえます。


    ■データベースの種類
        市販されているものを見ると、大雑把に分けると以下の二つに
        分類することができます。

            ・カード型
                代表的なのは、主にMacintoshで使用されている
                「ファイルメーカー」でしょうか。

            ・リレーショナル型
                リレーショナルデータベース(RDB)と呼ばれる物で、最近の
                中〜大規模システムでは、こちらがスタンダードと言えるで
                しょう。OracleやSQLServer、Accessなどはこちらです。
                    ※まぁ使い方によってはカード型と全く変わらな
                     いシステム構成になってしまいますが(^^;


    ■データベースの要件
        「製品」とまでいかなくても、基本的には

            (1)データを保存する
            (2)データを検索する
            (3)データを更新する
            (4)データを削除する

        この4つを行うことが出来る何らかの手段を提供されていれば、DBMS(データ
        ベースマネジメントシステム)、一般に言う「データベース(DB)」と呼ぶこと
        ができるでしょう。


    ■何はともあれ作ってみよう!
        では上記で示した4つをこなせるプログラムを「それぞれ」書いて見ましょう。
        言語は何でもかまいません。お好きな物をお使いください。サンプルとして当
        面はPerlで書きますが、ご要望があれば変えます。

            (1)データを保存する

                #-- 保存する内容 --#
                $save_date = "りんご";

                #-- ファイルに記録 --#
                open(DAT, ">>file.txt");       #ファイルを開く
                print DAT $save_data . "\n";   #ファイルに記録
                close(DAT);                    #ファイルを閉じる


            (2)データを検索する

                #-- 検索する言葉 --#
                $search_word = "りんご";

                #-- ファイルから検索 --#
                open(DAT, "file.txt");       #ファイルを開く
                while( $buff = <DAT> ){      #データを一行取得(取得できなくなったら終了)
                    chomp $buff;             #改行を削除

                    #-- 検索する言葉と、ファイルから取得したデータが一緒かチェック --#
                    if( $buff eq $search_word ){
                        print "ヒット!\n";            #一緒だったらその旨表示
                    }

                }
                close(DAT);                 #ファイルを閉じる


            (3)データを更新する

                $search_word = "りんご";   #置き換え前の言葉
                $update_word = "みかん";   #置き換え後の言葉

                #-- ファイルから検索 --#
                open(DAT, "file.txt");        #マスターファイルを開く
                open(TMP, ">file.txt.tmp");   #一時ファイルを開く
                while( $buff = <DAT> ){      #データを一行取得(取得できなくなったら終了)
                    chomp $buff;             #改行を削除

                    #-- 検索する言葉と、ファイルから取得したデータが一緒かチェック --#
                    if( $buff eq $search_word ){
                        print TMP "$update_word\n";            #一緒だったら置き換え後の文字に。
                    }
                    else{
                        print TMP "$buff\n";                #違ったら取得データをそのまま書き込み
                    }

                }
                close(TMP);     #ファイルを閉じる
                close(DAT);

                #-- ファイルの置き換え --#
                rename("file.txt.tmp", "file.txt");


            (4)データを削除する

                #-- 削除するデータ --#
                $search_word = "りんご";

                #-- ファイルから検索 --#
                open(DAT, "file.txt");        #マスターファイルを開く
                open(TMP, ">file.txt.tmp");   #一時ファイルを開く
                while( $buff = <DAT> ){      #データを一行取得(取得できなくなったら終了)
                    chomp $buff;             #改行を削除

                    #-- 検索する言葉と、ファイルから取得したデータが一緒かチェック --#
                    if( $buff eq $search_word ){
                        ;                                    #一緒だったら何もしない
                    }
                    else{
                        print TMP "$buff\n";                #違ったら取得データをそのまま書き込み
                    }

                }
                close(TMP);
                close(DAT);                 #ファイルを閉じる

                #-- ファイルの置き換え --#
                rename("file.txt.tmp", "file.txt");


        もちろん、これらは解法の一つに過ぎません。
        様々なやり方がありますので、ぜひ調べてみてください。


    ■次回は?
        これらを組み合わせた、簡易データベースを作成をしてみましょう!


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 02. コラム:「インターネットで気持ちは伝わるか」
──────────────────────────────────────

技術っぽい話じゃないのですが、以前お話していた関係から今回仕上げてみました。
ちょっと長いですが、ぜひ最後までお読みいただければと思います。

また、ご感想などありましたらお送りください(^^)/

  mm-webp@ichikoro.com


■一枚のグリーティングカードが気づかせてくれたこと

    今年の三月、とあるホームページ(個人サイト)がリニューアルしたという話を
    聞き、何かお祝いがしたいなぁと思い「う〜ん」とうなっていたところ、たま
    たま会社のホームページにグリーティングカードを送れるWebサイトへのリンク
    を発見、「これだ」と。

    早速どれにしようかと考えはじめるのですが、「やっぱFLASHだよね」「こいつ
    は面白いがやりすぎか?」「う〜ん、これ送られてうれしいのかなぁ」などなど
    考えることおよそ2日(笑) その後意を決して送信しました。

    それから3時間後、管理人さんからサンキューメールが届きました。向こうも同じ
    サービスを使ったカードだったのですが、その時スゴクうれしいなぁと感じたの
    です。


■一番大切なのは“時間”

    たくさんのカードの中から選んでくれたんだなぁ、そのために大切な時間を使って
    くれたんだろうということが、すごく嬉しく思えたのです。実際FLASHだと選ぶの
    に時間かかりますしね(^^;

    インターネットで気持ちを伝えることができるかという問いに、私は出来ると答え
    ます。もちろんケースバイケースではありますが、インターネットは手段でしかな
    いということを、今回の出来事から感じたのでした。


■企業からの広告メールをユーザーが嫌うわけ

    インターネットでは古くから問題になっており、iモードなどの携帯電話で一気に社
    会現象化しましたね。では嫌われるメールとはどのような物をさすのでしょうか?

        ・無差別に送られたうちの一通
            →自分のために送られたものではない。

        ・あらかじめパーミション(了解)を得ていない
            →どっかの名簿屋から購入したリストを使って送っている。

        ・送信者が全く知らない人物(会社)
            →上と同じ。
             どっかの名簿屋から購入したリストを使って送っている。

    「迷惑メール」と呼ばれている物は、このうちのどれか二つ以上に該当すると
    思われます。

    ユーザーはこれらのメールが大して時間をかけず、無差別に送っていることに、
    大抵の場合気がついています。実際には制作費やメールを送るためのシステム代、
    人件費などの諸経費がかかっているわけですが、送る人数に換算して考えた場合
    非常にコスト安だといえます。


■“気持ち”と“時間”

    私の業務の一つに、ユーザーからの問い合わせ対応(Eメール版)という物があり
    ます。オフィスでパソコンを叩いている時間が多い中、こうやって直接ユーザー
    の方と対話する機会は非常に大切だと感じます。

    実際にやってみると分かるのですが、結構激しい口調で送られてくるものも多
    く(そんな言い方しなくてもというヤツです)、精神的に参りそうになるのも納得
    できます。また、キチンと向き合って回答するのは想像以上にハードです。

    その中で、回答してから数日後「ありがとうございました」というメールを受
    け取るのがどんなにうれしいか。そういう業務を行ったことがない方は、ぜひ
    一度担当者や、実際に業務を行っている方とじっくり話してみると、色々と参
    考になる話がきけますよ!


■コスト面で考えてみる

    私は会社から額面で28万円くらい多い時でもらっています。実際には人件費と
    してこの3倍かかると言われていますから、会社的には「いるだけ」で84万円の
    支出となるわけです。

    問い合わせ対応に当てている時間は、一日の実労働時間が平均10時間中2時間
    程度。つまりこの5分の1の人件費がかかっているわけです。84を5で割ると
    16.8万円、さらにこの対応をしているのが6人いますから、月あたりおよそ
    100万円がかかっている計算になります。

    これを問い合わせ者数で割ると、一人当たりにかけるコストが算出できます。
    便宜上1日30人(いいかげんな数字です)とした場合月900人、これを100万円で
    わると一人当たりおよそ1111円がかかる計算になります。


    同じように複数の人に同一の内容のメールを配信する場合を考えてみましょう。
    様々なケースがありますが、一週間に一度1万人に対してメールマガジンを配信
    することにしましょう。この時かかるコストを大雑把に算出すると、

          サーバ代:一ヶ月15万円の法人向けレンタルサーバとします。

           制作費:原稿料などで1回10万円、月4本で40万円

        担当者人権費:校正など含めて一回5時間とすると、月4本で20時間。
                     一日の労働時間が10時間で20営業日とした場合、
                     月に200時間勤務。このうちの20時間ですから、総人
                     権費の1/10がかかる計算になります。先ほどの84万円
                     で計算すると、8.4万円となります。

    このトータルは63.4万円です。
    これを、63.4万円/(10000人×4回配信)とすると、1人当たり15.85円の
    計算になります。

    つまり、一人当たりのコストは下記のようになります。

        ・問い合わせ:1111円
        ・メルマガ:15.85円

    適当に計算してますので、実際には抜けている要素がたくさんあります。
    本当はもっと厳密に試算しないといけませんが、大雑把なところではこんな
    感じではないかと思われます。

    これをどうとらえるかは考え方次第です。
    ただ、この問い合わせ対応でのやり取りは「迷惑メール」と比べると非常に
    価値のある物だといえます。それが証拠にどちらがユーザーから「ありが
    とう」と感謝されているでしょうか。

    同じメールなのに、一体何が違うのでしょうか?
    そこには先ほどお話した“気持ち”と“時間”がこめられているからでは
    ないでしょうか?
        ※時間≒コストであることは認識済みですよね?


    冒頭で書いた管理人さんから「うれしい」と思えるメールをもらったのは、
    そこにやさしい“気持ち”と、私のために使ってくれた“時間”を感じるこ
    とが出来たからです。

    「迷惑メール」が、迷惑だと思われるのは、きっとこの二つがかけている、
    もしくはユーザーがそれを感じることが出来ないからではないでしょうか。

    「ユーザー」と一くくりにしていますが、一人一人趣味趣向は違いますし、
    生きてきた時間も違います。こうしたユーザー一人一人と向き合うことが、
    まずは必要なのではないでしょうか?
   ※そして、最高のマーケティングは口コミなのです。


■「距離」を越えたコミュニケーション

    高2の頃からずっと好きだった子にふられたのは、高校を卒業して島根県から関東
    に初めて上京した年の夏の終わりでした。目の前が真っ暗になり、生きていく希
    望を無くすというのはこういう心境を言うのだろうと、どうしようもない状況を
    嘆いていたいたのを覚えています。(同じ頃他にも色々あったのです)

    当時は「距離」のせいにしていました。
    手紙や電話だけでは気持ちは伝わらない、その時はそう思っていました。
    1000km離れた場所にいる相手にどうやったら気持ちを伝えることができるだろ
    うか、そのことを必死に考えるとともに、これをライフワークにしようと心に
    決めたのは、その夏から1年後のことでした。


    しかしインターネットで気持ちを伝えることが出来るのだと考えると、実はそう
    ではなかったのではないかと改めて思います。距離を言い訳にしていたのではな
    いかと。インターネット以上にコミニュケーションが出来る...それこそ物質転
    送機が開発されたとしても、結果は同じだったのではないかと。

    大切なのは“気持ち”と“時間”、この二つだったのです。それに時間を共有す
    ることは、一緒にいることだけではないのだなぁとも感じました。どのみち私の
    方に問題があり、結局は上手くはいかなかったのでしょう。


    あれから5年余りたった今でも、こうして教えられることがあるかと思うと、そ
    の子には感謝の気持ちで一杯です。もちろん、管理人さんにも同じくらい感謝し
    てます。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 03. インタネット業界の一週間
──────────────────────────────────────

※今回は時間の都合上お休みします。
 次回にご期待ください!



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                           編    集    後    記
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

先日「社会人として大切なことはみんなディズニーランドで教わった」という本を
買い、読み始めてから2時間程でページをめくり終わりました(笑) そもそも薄くて
字が大きいというのもあるのですが、内容にすごく共感することが多く、時にはホ
ロッとすることが随所に。

ディズニーランドの裏側がのぞけるという楽しさもあるのですが、

    ・「働くこと」ってそもそも何なのだろう、
    ・「残業って意味知ってる?」
     「この残業代は今日きてくれたゲスト(お客さん)のお金だぞ」
    ・「ミーティングとは話し合いで何かを決めること。評論家はいらないんだ」
    ・「最初に受けた感動は絶対忘れないんだよ」
    ・「嫌われ役は必要だけど、嫌われ者になっちゃいけないんだ」
    ・「いつの間にか作業が中心になって、本当の意味を忘れちゃう」

などなど、心にストレートに響くエピソードが満載です。

昔、iモード事件を読んだときに、「こういう仕事がしたいな」と思いました。
この本では、「こういう風に思える自分になりたいな」と感じました。

    「社会人として大切なことはみんなディズニーランドで教わった」香取 貴信 (著)
        http://www.amazon.co.jp/exec/obidos/ASIN/4769607695/250-3593465-4954611

ちなみにこの本、もともとはメールマガジンを本にしたもので、
まぐまぐの紹介ページで私も初めて知りました。

なかなかの良書です(^-^)



ではでは、また来週お会いしましょう (^-^)/~~

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

                   【 Webプログラミング Code Sample 】

                    発  行 : ichikoro.com
                発行責任者 : 勝部 麻季人
                              < katsube@ichikoro.com >
                  発行部数 : 2029部(前回)
                 Webサイト : < http://www.ichikoro.com/webp/ >
            お問い合わせ先 : < mm-webp@ichikoro.com >

                            Powerd by まぐまぐ
    All Right Reserved, CopyRight(C) 2001 Webプログラミング Code Sample
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■