かつてデータは、プログラムに与えるだけのその場限りのものとして取扱われてきました。確かに、コンピュータが発明されたばかりのころのデータ入力手段は、紙テープやパンチカードしかなかったため、それを保管しておくという発想はあまりありませんでした。

 しかし、データの記憶媒体の技術がどんどん進化するにつれて、データを大量に、しかも安価にコンピュータの中に蓄積しておくことが可能となった今、蓄積されたデータを有効に活用したいという願いが出てくることは、ごく自然なるものであると言うことができるでしょう。

 当初は、大容量のデータはコストの関係で磁気テープに保管されることが多くありました。しかし、最近ではパソコンに搭載される磁気ディスクでも1TGバイトを超えるものも少なくなく、大容量データであっても磁気ディスクに格納されるようになりました。

 近年のデータベース技術は、このように磁気ディスクの発展とともにその重要性が認識され研究が重ねられてきたとも考えられます。

 特に、DBMS(データベース・マネージメント・システム)の分野では、階層型DBMS、ネットワーク型DBMS、リレーショナル型DBMS、さらに高度な使い方のDBMS(マルチメディアオブジェクト、etc)へと、研究が進み、現在では、パソコンレベルでもリレーショナル・データベースを実務で使うことが出来る状況に至っています。

 そうしますと、企業などで大量に集められたデータをリレーショナル・データベースに蓄積し、縦横無尽にそれを検索し活用したくなるのは、しごく当然の要求だと言うことができます。

 その考え方ををベースにしている手法が、データ中心アプローチ(DOA:Data Oriented Approach)であり、この考え方のもとで成果を上げている企業も多くあります。弊社では、それを具体的なデータベースに格納する手法にし、「データベース中心主義」と呼んでいます。

 企業にとって、人・物・金・情報の四つの資源が重要であるとよく言われていますが、果たして本当に情報が人・物・金と同じくらいに重要だと認識されているでしょうか。自社に蓄積した情報は、貯めたお金と同じぐらいに活用されなければ、それはまさしく宝の持ち腐れとなってしまいます。

 もし、システムの都合などで蓄積した情報を自由に取り出せないとするならば、それは、例えば銀行に預金したお金を自由に引き出せないことと同じことを意味するのです。

 それでは、ここで先ほど示しました開発のソフトウエアのタイプごとに、どの程度データベースの利用ができるのかを見てみたいと思います。

 
ソフトウエアのタイプ
パッケージソフトウエアを利用
データベースツールを利用
一からプログラムを作る

制限あり
(表定義が非公開が多い)

ほぼ制限なしに可能
制限なしに可能
ユーザが新しく
表定義を行うこと
基本的には既存の表を
利用する
表の数、名称など
自由に設定できる
表の数、名称など
自由に設定できる
データ項目名を
自分の好みで定義
基本的にはすでに定義された名称を使う。日本語でないものも多い。
自由に名称を定義できる
自由に名称を定義できる
運用後の項目追加
ほとんど不可
プログラムと一体化しているため
自由に追加できる
自由に追加できる
SQLの利用
直には利用できないものが多い
(別パッケージで対処もある)
データ定義が見えており、
SQLを自由に使える
データ定義が見えており、
SQLを自由に使える
別パッケージを購入して対応
XMLで対応可もあり。
DBの基本ソフトで可能
DBの基本ソフトで可能だがプログラムの作成が必要なものもあり
    以上のように、どちらかと言えば、パッケージソフトウエアは、データベースをアクセスメソッド(本来のデータベースの見方を提供せずデータの入れ物として用いる方法)として利用しているきらいがあり、たとえ汎用の有名なリレーショナル・データベースを利用していたとしても、外部からはデータの利用を制限している場合が多くあります。

 従って、パッケージソフトを利用する場合には、売り手に確認をしたほうがいいかと思います。

 弊社もマイクロソフト社のSQL Serverを利用しているので、あとのデータの利用が便利だろうと思って、ある有名な会計ソフトの導入を行いました。そして、そのあとデータベース内の自社のデータを利用しようとしましたが、データベースの名称や、表名、さらにデータ項目名もアルファベットと数字からなる記号のような内部的名称で、またデータがコード化され、そのコードの意味を書いた資料もないため、結局はデータの利用を断念をした経緯があります。

SQLをエンドユーザに開放するべきか

 さらに、SQLは難しいということで、ソフトベンダが独自の検索言語を出しているところもありますが、例えば、英語は難しいので、別の片言言葉を話しましょうと言っているようにも思えます。英語は難しいと言っても、もちろん英語の全ての文法や単語を覚えるならばそうですが、道を尋ねたり、ホテルでの簡単な会話なら、さほど難しくはありません。

 さらに、一番困ることは、ソフトベンダの言葉が、標準的にどのソフトウエア(表計算、ワープロなど)でも、そして、どのメーカのコンピュータ機種でも使えるのならいいのですが、そのベンダのソフトウエアにしか通用しないとなれば、運命を共にすることになりかねません。これがソフトウエアの恐ろしいところでもあります。

 SQLは、せっかく標準化されてどこにでも通用することが保証されていますので、これは利用者にとっては、むしろ利用しない手はないといえるでしょう。

 SQLはかなりの機能を持っています。ですから、確かにそれを全て使いこなすのは難しいでしょう。英語で言うなら、辞書の全ての単語を覚えて使いなさいということと同じになるでしょう。でも、ネイティブスピーカだって全ての単語を知っている訳ではありません。

 逆に、それだけ表現機能が高いということは、データベースへの処理内容が高度になっても対応できると言うことであり、それは嬉しいことでもあります。

 ですから結論としては、これからSQLをエンドユーザに積極的に開放すべき時に来たということができます。もちろん、データには人事などの機密性の高いデータもありますので、権限の設定(GRANT句)の設定をすることが前提となります。

 ではここで、SQLの基本機能を少し見てみましょう。
  (データ更新は、エンドユーザでは行わないとして)

 (1)顧客の名称や住所など、格納されているデータの全てを知りたい

   SELECT * FROM 顧客マスター

 (2)東京都の顧客の全てを知りたい(住所を前方一致を使って検索)

   SELECT * FROM 顧客マスター WHERE 住所 LIKE '東京都%'

 (3)2002年8月の売上が100万円以上の顧客名を知りたい
    (2つの表を結合して検索)

   SELECT 顧客マスター.顧客名 FROM 顧客マスター,売上マスター
      WHERE 顧客マスター.顧客コード = 売上マスター.顧客コード
           and 売上マスター.時期 = 200208
           and 売上マスター.売上額 >= 1000000

 (3)の2つの表を結合して検索を行う例は、少し初めての人には難しいかも知れません。しかし、データの更新を伴わないならば、覚える命令は、基本的にはSELECTだけですから、さほど難しくはないのではないでしょうか。

 しかも、SQLは標準の言語なので、どのソフトベンダやメーカにも共通して通じると言うならば、これは少々難しくても覚えがいがあると言うものでしょう。

 
     
   

 

  Rsun,株式会社アールサン,データベース中心主義,会社で蓄積したデータ資源を有効に使いきるために