WWW上で稼動するデータベースについて

本田整形外科クリニック 本田忠


○はじめに
 今回はWWW上で稼動するデータベースについて検討してみます。ホームページでデータベースを開いている部屋は、まだ日本では少ないようです。インターネットも一般化して、各ホームページもすこしづつ、データが蓄積されてきています。データが蓄積されればされるほど、検索機能は大切なこととなります。情報処理の基本は分類整理ですので、これはまさしくデータベースの得意分野です。上手に導入し、整理された見やすい部屋を作るべきです。
○ソフトの種類
 ソフトは簡単なものから複雑な重厚長大なものまでいろいろあります。NT用とUNIX用などのOS依存もあります。機能と用途のバランスが取れることが大切かと思います。データ量や、回線スピードを考慮すれば、簡単なデータベースソフトでも、十分実用になると思います。これは文献検索程度ならリレーショナルデータベースより、簡単なカード型データベースのほうが実用性が高いのと同じです。要は用途とソフトの機能とバランスをとった使い方ができればよいと思います。なお今回は実用性に重きをおいて、必ずしもフリーウェアとはいかないソフトも入ります。

○全文検索エンジン
 ネット上のホームページの全文を検索できるものです。散らばった未整理かつ多数の文書群の中から、目的の文書をすばやく拾い出すことを目的とするものです。用途としてはホームページの内部文書、論文集、メーリングリストの過去ログアーカイブを全文検索するときに便利です。これらを扱うのは既存のDBMSではどちらかといえば不向きであることから、専用の全文検索システムが開発されてきたわけです。個人ユースならMatt氏やとほほ氏のCGIが導入しやすいでしょう。しかし医師会などある程度以上のシステムなら、PDFやMS-Word文書などにも対応したNamazuがすすめられます。
具体的なソフト
CGIタイプ
 コンテンツに対してあらかじめインデックスを作成しておき、Webブラウザ経由の検索要求に対してCGIがその度にインデックスを直接検索して結果を返すタイプ。現在ではこのタイプが主流になっています。
1)Namazu-2.0.4 (高林哲氏、Namazu プロジェクト)
 もっとも標準的な検索ソフト。UNIX系Os、Windowsでも動作する。
2)とほほのWWW入門 / 検索フォーム設置法 (とほほ 氏)
3)WASearch v2.2.2 (鷲崎弘宜 氏)
  Perlで記述された設置サイト内簡易検索CGI。
4)ネットサーフレスキュー[Web裏技] 簡易サーチエンジン (レスキュー 氏)
5)Simple Search for Japanese (ハ−トコンピュ−タ)
Matt Wright氏が制作した「Simple Search」を 日本語でも検索できるように改造したもの。Perlスクリプト。私も使用経験があります。よくできています。
参考文献
日本語全文検索エンジンソフトウェアのリスト
サーチエンジン
全文検索ソフト(Perl版)徹底比較
ここでは設置が比較的簡単なPerl版のフリーソフトを取り上げます。個人の小規模サイトならこれで十分でしょう。ホームページに全文検索エンジンを設置したいと考えている人の参考になれば幸いです。
DataBase
Namazu-2.0.4
とほほのWWW入門
検索フォーム設置法 (とほほ 氏)
WASearch v2.2.2
鷲崎弘宜 氏
レスキュー
Simple Search for Japanese (ハ−トコンピュ−タ)

○WWWで動く汎用データベース
 いろんなソフトがあります。機能の非常に簡単なものから、複雑なものまで種種ありますが、当然機能が充実しているものは設定も比較的面倒になります。データの内容によって使い分けるとよいでしょう。
○具体的なソフト名
 難易度の低いほうから並べていきます。用途に合わせてお使いください。
1)簡易データベース
レスキューUNIX
 一番単純なデータベースですが対象によっては十分使えます。  なお以下のURLで改造方法が載っています。練習によいでしょう。
簡易データーベースの作り方
Web裏技版 チャレンジCGI簡易データベース。
2)
Ap-Database (UNIX)
 項目は自由に決められる。データファイルはCSV形式。管理者の審査を待つ仮登録モードやID・パスワードにより登録者はWEB上からデータを編集できるなど結構細かく設定できます。
3)selenaのデータベース(UNIX)
Selena Sol氏のフリーのデータベースです。perlで記述されています。すべて英語ですが、比較的簡単に設置できます。私は以前に文献の一万件をこれで行いました。十分実用的です。おすすめです。
深田氏のホームページ
深田氏によるミラ−サイト
4)その他
The CGI Resource Index
英語ですが、紹介されているCGIの数は膨大です。ここであげられたものは日本語化はしなければいけません。(簡単ですが)
例としては
Perlで記載されたもの(Flatfile Databases)
1)Webteacher's Webdata,- $199 - Platform(s): Unix, Windows 95/NT
Self installs on Unix or Windows web servers. Easy to customize and match your site. Import/Export from other programs, customize records, fields, and text options from your browser. No programming experience required.
2)DBman, Free/$100 - Platform(s): Unix, Windows 95/NT
DBMan is a full featured database manager used to handle one or multiple flat file databases through an easy to use web interface. Supports such features as: record ownership, authentication, user administration and powerful searches.
3)FLATTEXT (Class B), - $18 - Platform(s): Unix
Paste a sample of your flat text delimited (comma, tab, or other) database and a custom Perl script and html"> code are created that lets web users search your database. You can add, edit and delete records in the database through your web browser, or open it up for anyone to add. Extremely easy to configure and includes line-by-line annotation of your Perl script and detailed instructions.
4)EZDB, - Platform(s): Unix, Windows NT
EZDB features include: database manipulation (multiple access, multiple users) with strong security management, and a new audit feature to rollback changes.
5)Ziga Turk's wBASE, free
Turk explains, "wBASE is about 70k of perl code which make it very easy to create a (more or less) flat multimedia database and let it be maintained, added-to, modifed, and queried through the WWW."
6)Databaser R- $99 - Platform(s): Unix, Windows NT
Databaser lets you add, modify and delete items and search the entire database. You can create an unlimited number of new databases with freely configurable fields. Add or change existing field names. Databaser includes a powerful User Management and is password protected. The User Management provides with the capability to set permissions for each area, for each user and for each database.
7)Database Doctor,- Free - Platform(s): Unix
It features easily customizable entry forms for adding new items (just pop some html"> in a text file...the script does the rest), preview, the ability to check for unique item-ids for all you webstore owners, editing, deleting, search, sort by field, and will even prepare a page of your data for printing.
8)Extropia: WebDb, - Free
This script provides users a web interface that allows them to manage their databases and organize information. Can add, modify and delete from multiple databases based on keyword recognition.
9)CNC Technology Secured Database System Rating: Unix
A simple, powerful, flexible, affordable and secured Flat File Database System with add, edit, delete, search, display and image upload capabilities. Definition of database fields and output layouts are controlled by html"> templates.
10)Simple Database Rate It! - Free - Platform(s): Unix, Windows 95/NT
Small script that allows you to add, edit and delete entries in a database on the fly.
11)dbSpace Rate It! - Free - Platform(s): Unix
dbSpace is an online database manager that provides an easy to use interface to add, delete, modify and search records in a flatfile ASCII database.
12)DBMEdit Rate It! - Free - Platform(s): Unix
DBMEdit is a Web-based DBM file editor, very convenient if you use DBM files. Each record in a DBM file may be treated as several "fields", delimited by a user-defined string-- in effect, supporting multiple columns within a DBM file. DBMEdit displays a DBM database as a table, and provides auto-sized entry forms. Very simple to use.
13)Dave's DB Sorter Script Rate It! - Free - Platform(s): Unix
This database sorting script is designed to alphabetically sort a database file which contains records and to remove all duplicates that exist in that file.
14)DB LiNKeR Rate It! - $32 - Platform(s): Unix
DB LiNKeR is a comprehensive database management tool. It features admin e-mail notification of new records, classification of records, graphics tags, user updatable, history activity log, a page view counter and more. It utilizes a flat file database for quick retrieval of records.
15)EasyData Rate It! - $59 - Platform(s): Unix
EasyData is a powerful database management system, able to handle multiple databases. Human-friendly administration panel; fully customizable search tool; automated record expiration feature; easy to install and maintain.
16)ReadCSV Rate It! - Free - Platform(s): Unix, Windows 95/NT
ReadCSV is a FREE CGI script that can be used to retrieve selected data from a CSV (Character Separated Interface) database into html documents. ReadCSV automatically defines fieldnames for the database, and allows full customization of html templates.
17)MemberManager Rate It! Free - Platform(s): Unix
Membermanager takes a character separated file, sorts the whole thing by whichever field you like and creates an html"> file for each letter of the alphabet with contents of each file also sorted. It also automatically hyperlinks any email address in the email field.

○市販のデータベースを利用する。
 これはフリーソフトでという、今回の趣旨とは若干外れるのですが、日常的に使いこんでいるソフトをアップするのは、非常に容易です。ただしソフトを公開するには何らかのCGIが別に必要になります。
1)
ファイルメーカープロ(NT、Macintosh上)
homepage
CGIの候補としては製品版ではTango、WebFM3.0、Lassoなどがありますが、私は同じ会社のホームページプロver3.0を使用しています。ほとんどhtmlエディタの感覚で掲示板や、データベースがすぐできます。例としては 私のホームページを見てください。ただし、多数データベースを、開いていても、ひとつトラブルで落ちると、開いているファイルメーカープロのデータベースプログラム全体が落ちるのには参っています。若干不安定です。
2)
dBASE
 dBASEも古くからあるデータベースの定番ですが、これも便利なCGIソフトがボーランド社から出ました。
Visual dBASE Internet Tools
Visual dBASE Power Pack Vol.1
 Internet Toolsは、Visual dBASE 5.5JおよびVisual dBASE Compilerと組み合わせることで、データベースと連動したWebアプリケーションが開発できる。たとえば、Webで入力されたアンケート結果やオンラインショッピングのデータをデータベースに格納したり、リアルタイムな売り上げ状況をWeb上で公開するなどの用途がある。
SQL経由でParadox、InterBase、Oracle、Sybeseなどのデータも使用可
標準価格:19,800円
ボーランド(株) インフォメーションセンター
Tel.03-5350-9380
)アクセス
MS-Accessは、SQLも扱えます。ウィンドウユーザには馴染み深いソフトで、参考書も数多く出ています。 方法としてはAccessとIIS(インターネット・インフォメーション・サーバー)を利用して、ODBC経由でアクセスできるようにするのが一般的でASPを使用するとよいでしょう。ほかに、Perl for Win32のODBCモジュールを利用するか、DBI(データベースインタフェース)とDBD(データベースドライバ)でも可能です。  いずれにしてもPerlの言語そのものの知識、データベース設計、ODBCに関する知識、SQL文の知識などが必要になります。
参考文献
簡単WebDB作成 TIPS
ODBCとIIS利用
PerlのODBCモジュール「Win32::ODBC」のページ
DBI+ODBCの方法
Accessの他にSQL Serverでも可能

○SQLデータベースを各種CGIを利用してアップする。
 使えるデータベースソフトは数種あります。
WWW-DB連携プログラミング

1)mSQL(miniSQL)
 mSQLはMinerva Network Management Environmentにより開発され、David J. Hughesによりコピーライトされています。シェアウェアです。商用的な使用の場合は250.00ドル(us)以上。個人ユーザの場合は65.00ドル(us)以上。教育、非商用的な機関の場合はフリーで使うことができます。これからデータベースの作成を始めようという初心者の方で単一テーブルのみでの小型データベースを作成する場合は、mSQLv1.0をお勧めします。大変シンプルで単純なテーブルが作りやすいからです。文献検索などには最適です。
利用CGI
msql独自のスクリプト言語(Lite)があります。シンプルな言語でmsql-2マニュアルに詳しく書かれています。msql-2 パッケージにはLiteを使った簡単なアプリケーションも附属しています。perlを使うなら、DBIと呼ばれるperlのデータベースインターフェースがあります。DBIはCGIとRDBMSをやりとりするインターフェースでDBDは各RDBMS(mSQL,MySQL,Oracle,Sybase等)毎のドライバです。使用するRDBMSによって専用のDBDが必要になります
MsqlPerl
MsqlPerl はperlスクリプトからmsqlに直接アクセスするためのライブラリです。
mSQL and perl Web Server Mini HOWTO Oliver Corff
mSQL - Manual
rapidSite コマーシャルプラン
2)mySQL
 複数のクエリーを同時に処理するマルチスレッド機能があり、多数テーブルを複雑に連結させた、比較的大型のデータベースを作成しようという方にはmySQLをお勧めします。Rapidsiteなどレンタルサーバでは、あらかじめ、mSQL,mySQLを実装しているところもあります。この場合は契約すれば直ちに使えることになります。
MySQL についての一般情報
MySQL のリファレンスマニュアル
A beginner's tutorial of how to start using MySQL
rapidSite コマーシャルプラン
mSQL,mySQLによるデータベースの作成
mSQL や MySQL の書籍
「MySQL & mSQL」 オライリージャパン
「PC-UNIX による高機能 Web サイト構築入門」 技術評論者
推奨CGI
 PHP3 はもともとデータベースと連動して利用するように作られた言語ですので、非常に簡単にデータベースと連携することができます。CGIを使うより格段に軽い動作をする。
PHP3 に関する書籍 「PHP徹底攻略」 ソフトバンクパブリッシング
「PC-UNIXによる高機能Webサイト構築入門」技術評論社 \2,780
3)Sybase
 これは市販ソフトですが、同じく結構早くて比較的簡単なデータベースです
SYBASE SQL SERVER on Linux レビュー
Sybase
jConnect
 SybaseのJDBCドライバ。日本語で書かれた jConnect for JDBC が用意されています。
web.sql
Sybaseのデータベースとwebを接続するためのツール。
4)Postgres
フリーウェアのDBMSとして定評のあるPostgresSQLです。しかし重厚長大は否めません。その分機能は豊富で、安定はしています。
PostgresSQLのHome Page
postgres95ユーザーマニュアル(日本語版)
Postgres + PHP/FI + Apacheという組合わせが主流です。
PerlインターフェースにはPostgresPerl、pg95perlがあります。PostgresPerlの方が使いやすいということです。
ドキュメントの日本語訳
Javaインターフェースは
Java-Postgres95
API's (Features of Postgres95)
OpenZOLAR
商用ソフトZOLARのフリーウェア版である
1) 99/01/25 発行 \2,880 技術評論社 石井達夫
 『PC UNIX ユーザのための PostgreSQL 完全攻略ガイド』
2) 98/11/26 発行 \4,800 オーム社
 糸魚川茂夫
 『FreeBSD/Linux で使う PostgreSQL 詳細』
3) トップマネージメントサービス
 『Linux/FreeBSD による SQL データベース構築入門/PostgreSQL+PHP/FI編』
4)『PC UNIX ユーザのための PostgreSQL 完全攻略ガイド』
Tcl/C/PHP/Perl/Java 等から PostgreSQL にアクセスする方法が具体的に書かれている
5)Oracle、SQL−server
 ここらは完全に商用です。基本的には上記と同じです。
oracle


使用可能CGIについて
DataBase
○パール言語
The CGI Resource Index
英語ですが、紹介されているCGIの数は膨大です ここであげられたものは日本語化はしなければいけません。 Programs and Scripts: Perl: Database Manipulation: SQL Databases
DB_Browser, Version: 1.3 - Free - Platform(s): Unix
A web-based CGI interface to an SQL, Oracle or Postgres database; search/edit/add tuples with improved searching, order by results and display formatting.
Tabelle (SQL2table) Rate It! Version: 1.2 - Free - Platform(s): Windows NT
A perl script that converts any SQL query (using ODBC) into a table. Just add #exec cgi... tag in your shtml file. Many options, different kinds of tables.
MySQLMan Rate It! Version: 1.01 - Free
MySQLMan is a web-based database management solution that allows you to perform tasks such as browse, add, modify and delete databases, tables, columns, keys and more from your mySQL server.
DBMan SQL Rate It! $350
DBMan SQL is a full featured database manager used to handle large databases through an easy to use web interface. Supports such features as: record ownership, authentication, user administration and powerful searches.
EyB Rate It! Version: 0.8 $33 - Platform(s): Unix
EyB (EdityourBase) is a full-featured database manager that provides a web interface to add, remove, modify, and view records in an Oracle or mySQL database.
Mysql editor Rate It! Version: 1.0.2 Platform(s): Unix
Enables you to view and edit the contents of a mySQL database. However, it does not support modifying the database structure.
○Java言語
JDBC
Javaにおける標準データベースアクセス1.0Jの紹介
 JDBCとは、Java Database Connectivity APIの略でJava言語での標準的なデータベースアクセス用APIとして使用する。アクセスする対象サーバは、NT、UNIXからAS400及びメインフレームまで対応。データベースは、ORACLE、INFORMIX、SQL Server、Sybase、DB2等の主要なデータベースをサポート。アップルコンピュータからもMRJ(MacOS Runtime for Java)と呼ばれる、Macintosh上のJavaの開発及びランタイム環境がある。
Hamilton
米Microstate、オープン・ソースのJavaアプリケーション・サーバー. Oracle、PostgreSQLなどのデータベース製品を利用できる。
他のデータベース
○PHP/IF言語
PHP
PHPの日本語ドキュメント
php-2.0b10 日本語マニュアル
PHP/FI のソースサンプル
○ASP
Active Server Pages (ASP) は、Microsoft の Web サーバー Internet Information Server 3.0 以上に組み込まれる機能で、ActiveX サーバー コンポーネントを組み合わせて Web 対応の強力なツールを作成するためのアプリケーション開発環境であり、コンパイルが不要、汎用性が高い、などの特長があります。 CGI とは違い html"> ファイル内のスクリプトを直接サーバーが処理し、結果をブラウザに送信します。スクリプトは VisualBasic 互換の VB Script や J-Script などを使用することができるので、VB プログラマならすぐにでもスクリプトを作成することができます。
DB アクセスとセッション管理
また、従来は難しかったデータベースへのアクセスも ADO と呼ばれる ActiveX コンポーネントを使用することで簡単に実現することができます。 ADO は ODBC 対応のデータベース(ACCESS / SQL Server / Oracle など)をサポートします。
また、セッション管理も Session オブジェクトを使用することで ASP が自動的に行ってくれるので、クッキー等を駆使してスクリプトを書く必要がありません
TRY!ASP
ASP講座 データベース編(入門)
RDBMS Access Online Conference
Active Server Pages (.asp files)
:Microsoft IISサーバーに通常使用される。ASPファイルは、VBScriptやJavaScript、PerlScriptなど異なったスクリプトエンジンで動作可能。

○その他のソフト
1)Allaire Cold Fusion
非常に使いやすい商用ウェブ開発環境。Windows NTのもとで出発したが、最近UNIXにも登場した。

2)Meta-html
UNIXシステムで利用可能なフリーソフト。ODBCをmSQL固有のインターフェイスと同様にサポートし、NetscapeとApacheウェブ・サーバー用のプラグイン・ソフトウェアを提供している。
Ralf Engelchallの
ePerl
3)Tango
Tango for WindowsNT とは?
Tango for WindowsNT はWindowsNTで動作するTangoです。アクセスに限定されているTango for アクセスとODBC対応データベース,Oracle(要SQL*Net)に接続出来るTango Enterprise for WindowsNTの大きく2種類の製品があります。Tango Enterprise for WindowsNTは、WindowsNTベースのWebサーバ(Internet Information Server、Fasttrack Serverなど)とODBC対応のデータベース、Oracleとの連携を計るためのツールです。
4)ZOLAR
ZOLAR
OpenZOLAR
ZOLARのLinux/FreeBSD版を無償提供
5)DB2 WWW Connectionとは
DB2 WWW Connection 使用者の手引き
DB2 WWW(World Wide Web)Connectionは、htmlの機能を最大限に活用し、またSQLの多機能性を利用することによって、インターネット上のどこからでもアクセスできる。DB2はメインフレームで動く、データベースです。


○まとめ
 医師にとっては個人的には文献や学術情報など、地域医師会などでは、医療行政など、情報全般にわたって、検索する需要は多いと思われます。たとえば医師会ホームページで各種通達などを、データベース化しないでhtml文だけで対処しようとすると、いたずらに項目が多くなり、かつ分類が細分化され、非常にみずらい部屋となります。データベース化しないで読める量はせいぜい100-200件でしょう。  現在はまさしく、ネット上のサーバでもスタンドアローンのPCと同じように自由に検索できることが必須となってきています。検索エンジンが有効になるほどの、充実した医療関係の部屋が多くなってくれればよいと思います。医療系の各サイトでネット上にどんどん情報を蓄積しましょう。

用語の解説
CGI
CGI(Common Gateway Interface)はデータを蓄えてあるシステム(今回はSQL をベースとしたシステムです)とネットワークプロトコル(html">)間のプログラミングインターフェースです。CGIは多くのプログラミング言語で構築できますがもっともよく使われているのはperlです。
perl
Perlはきわめてパワフルなスクリプト言語です。C言語、シェル言語、ストリーム操作言語(sed、awkなど)の長所を持っています。Perlには多くのモジュラインターフェースがあり、SQLデータベースをコントロールすることもできます。
ODBC(Open DataBase Connectivity)
 データベースアクセスのためのAPI(アプリケーション・プログラミング・インターフェース)仕様。クライアントから「サーバーのデータベース管理システム(DBMS)にアクセスする」部分を記述するのに使う。
SQL
Structured Query Languageの略。関連データベースのデータを操作する言語です。文法は簡単で広く商業的(wide industry)にもサポートされています。SQLを基にしたデータベースは典型的なクライアント/サーバの考えの中心(core)となるものです。多くのSQLシステムがあります。有名なものではOracle, Informixなどで、低価格のものや学術的/教育的な使用目的の場合は無料で入手できるようになりました。日本では1987年JIS規格となりDB言語の統一、異種DBMSとの互換性などの利点があります。
「はじめてのSQL」 技術評論社 \1,922(税別)