Database Lecture 9/2
Database Lecture 9/2
夏休み前の復習
- データベースの設計
- さまざまなデータベースのアクセス
- カード型データベース/QBE
- SQL / MiniSQL
- CやPerlのAPI
- トランザクション
QBE(Query By Example) と SQL
データベースへのアクセスはSQLで行うのが標準だが、ユーザが使うという
視点からは、フォームを埋めるような方法が望ましい。
このようなデータベースに対するフロントエンドがあると便利である。
このようなフォーム生成は、データベースシステムに付属している
場合もある。(Ex. SybaseのAPT, Microsoft Access) これらを4GL
(第4世代言語)と呼ぶこともあった。
しかし、これらのフォーム生成ツールを使うためには、やはり膨大な
マニュアルを見なければならないのが普通である。
でも、情報工学科を卒業するならば、これらの変換ぐらいは自分で
できるようになって欲しい。
- 問1
図のフォームに対するデータベースを設計し、図の例の入力に対応する
検索と変更のSQLを記述してみよ。変更にはupdateを使う事とする。
実際の処理では、SQLのエラーを避けるための工夫が必要となる。例えば、
存在しないレコードに対してupdate するとエラーになり、代わりにinsert を
使わなければならないなどである。
また、検索した結果を表示する操作を別に行わなければならない。
それは、表示するシステムに依存するが、それほど難しいわけでは
ない。
問1の変換を行うプログラムを、自分の得意なプログラミング言語
で記述してみよう。実際には、
- フォームの入力をどのように受け取るか
- SQLをどうやって生成するか
- 生成したSQLを実行するにはどうすれば良いか
- 検索した結果を表示するにどうすれば良いか
などの問題を一つ一つといていく必要がある。ここでは、WWWを例に
とって考えてみよう。
WWWとデータベース
< HTML > < HEAD >
< TITLE > 探索フォーム < /TITLE >
< /HEAD > < BODY>
< H1> WWWアドレスマネージャ< /H1>
< P> 1つ以上のフィールドに,探索したい値を記入してください.< /P>
< FORM METHOD=POST ACTION="/cgi-bin/address.cgi">
< HR> < PRE>
< B> 名前< /B> < INPUT TYPE="text" NAME="Name" SIZE=40>
< B> 住所< /B> < INPUT TYPE="text" NAME="Address" SIZE=40>
< B> 電話< /B> < INPUT TYPE="text" NAME="Hphone" SIZE=40>
< B> 会社< /B> < INPUT TYPE="text" NAME="Work" SIZE=40>
< B> 電話< /B> < INPUT TYPE="text" NAME="Wphone" SIZE=40>
< /PRE>
< INPUT TYPE="submit" VALUE="検索">
< HR>
< /FORM> < /BODY> < /HTML>
入力されたデータの処理は、/cgi-bin/address.cgi が行うことになる。
実際には、Perlと、CGI用のライブラリを併用することが多い。
- 問2
入力がrecordという配列に文字列として格納されているとして、SQLを生成
する プログラムを自分の得意なプログラム言語で書いてみよ。
もちろん、出力はHTMLで出力してやれば良い。そうすれば、WWW ブラウザを
通して(もちろんCGI経由で)表示されることになる。
- 問3
SQLでの検索結果の一つがrecordという配列に文字列として格納さ
れているとして、HTMLを生成する プログラムを自分の得意なプロ
グラム言語で書いてみよ。
できれば、Mini SQLを使ったCGIアプリケーションを自分で作成して
みよう。
イントラネットとデータベース
このようにデータベースシステムやオフィスアプリケーションをを、
インターネット上のサービスを使って実現することをイントラネッ
トと世の中では呼んでいるようである。
従来は、これらのフォームやデータベースは、メインフレーム上で
動作するCOBOL言語により個別にプログラムされていた。従って、
コンピュータを導入するということは、その会社向けのプログラムを
同時に開発するということを意味し、最低でも1千万円が必要とされる
ことになる。
インターネットは20年に渡る実績があり、閉鎖的なCOBOL文化と違って
自由度の高いサービスが作られてきた。閉鎖的な文化は、オープンな
文化にとって変わられる運命にある。イントラネットの動きは、それを
証明している。イントラネットの利点はその
拡張性にある。WWWブラウザさえ持っていれば、どこからでも
データがアクセスでき、httpd 経由で、さまざまなシステムとの
連係が可能になっている。
しかし、イントラネットには利点だけがあるわけではない。以下のような
点に考慮しつつシステムを構築していかなければならない。
- ネットワークのトラッフィクは十分か?
- どこでセキュリティを確保するか
- アクセスの集中をどのように解決するのか?
- パソコンとの連係は大丈夫か?
例えば、以下のようなことをしてはいけない。
- 巨大なデータベースを繰り返しダンプする
- 一つのサーバになにもかも頼る
- トラフィックを考慮せずにネットワークを作る(64Kは個人には十分な
容量だが、サーバ側ではまったく足りない)
- パスワードセキュリティもないようなシステムを接続する
- サーバ管理者がパスワードをつけてない
- 問4
イントラネットの利点と欠点に付いて、ここに書いてある以外のことを
探しだして書いてみよう。
Prev
Next
Kono's home page