この講義では、データベースの思想をまず理解し、 次に仕組みを理解する。 最終的にはデータベースの構築方法について学び、 データベースから必要な情報を取りだすための設計と、 回収したデータの解析が自分でできるようになることを目的とする。
Web アプリケーションとデータベースを連動させるまでの、 仮定を理解し、Ruby on Rails 等の Web 上のデータベースサーバの中の、 実際の仕組みの原理を理解する。 基礎プログラミング II で学んだ、CGI の仕組みを思い出そう。
商品の在庫管理や、図書館の検索システム、 本学の成績登録サーバなどの仕組みを理解しよう。
Web アプリケーションは、CGI にデータを入力する。 Web サーバは入力したデータをデータベースに登録し、 入力終了を返す。
ユーザが Web アプリケーションを使って登録したものを調べたい場合は、 入力したデータをデータベースで検索し、 検索した答えをデータベースが返すので、 それを結果として Web サーバが Web ページを作成する。
データベースの中を分析する作業は、データマイニングと呼ばれる。 データマイニングのなかで、 とくにアンケートの自由記述欄を自動的に分析するような場合、 テキストマイニングと呼び、 マーケティングなどの手法に使われている。 たくさんのデータがあるときの分類についてもふれる。
データベースは情報資産である。 保守管理には厳しい。
登録したユーザしか表を見ることはできない。 また、表を変更したりする場合にはさらにユーザに権限を与えることによって のみ、可能である。 本日の出席 の提出によりユーザ登録を行う。
おいおいデータベースサーバを使って登録する方法を学ぶが、 まずは、登録するデータを少し作成してこよう。 本日のレポート の提出内容を次回使用する。
% mkdir RDB
Ctrl-x Ctrl-f で、
Find File: ~/RDB/ファイル
とし、以下この中で作業するとよい。
確定の学生にのみ権限を与える。データベースを作る権限を有効とする。 本学データベースサーバは roy で、 管理者は psql コマンドの createuser を実行する。
roy{superuser}% createuser -U postgres ta05001
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
roy に入った新規のユーザは
roy{superuser}%createdb (データベース名)
を実行し、データベースを作成する。
データベースを操作する言語を SQL と呼ぶ。 これを動作させるために作られたシステムにはいくつかあり、 それぞれコマンドが作られた。 本学では PostgresQL を使用している。
大文字は SQL 言語による操作であり、小文字で \ からはじまるコマンドは、 PostgresQL が使用するものである。
うっかり管理者権限をつけて発行した場合
superuser=# alter user ta05001 nocreateuser;
ALTER ROLE
が使える。
自宅で作成し、メール添付で作成したファイルを処理しようとすると、 RDB で読みこめないことがある。 原因は Shift JIS で作成されたデータをメールで JIS に変換して送り、 EUC の RDB でアクセスするどこかの過程で、 改行がなかったり空白文字になったりするものがあるためであるようである。 ちなみに「こがね」のどこかに反応して空白文字になった。
データベースに使う資料は大学で作成した方がよさそうである。
OpenOffice.org の Calc で CSV 形式に出力する方法もある。 これはややお奨め。