イントロダクション

この講義では、データベースの思想をまず理解し、 次に仕組みを理解する。 最終的にはデータベースの構築方法について学び、 データベースから必要な情報を取りだすための設計と、 回収したデータの解析が自分でできるようになることを目的とする。

Web アプリケーションとデータベースを連動させるまでの、 仮定を理解し、Ruby on Rails 等の Web 上のデータベースサーバの中の、 実際の仕組みの原理を理解する。 基礎プログラミング II で学んだ、CGI の仕組みを思い出そう。

商品の在庫管理や、図書館の検索システム、 本学の成績登録サーバなどの仕組みを理解しよう。

Web アプリケーションによるデータ管理

Web アプリケーションとデータベース登録

Web アプリケーションは、CGI にデータを入力する。 Web サーバは入力したデータをデータベースに登録し、 入力終了を返す。

Web アプリケーションとデータベース検索

ユーザが Web アプリケーションを使って登録したものを調べたい場合は、 入力したデータをデータベースで検索し、 検索した答えをデータベースが返すので、 それを結果として Web サーバが Web ページを作成する。

データマイニング

データベースの中を分析する作業は、データマイニングと呼ばれる。 データマイニングのなかで、 とくにアンケートの自由記述欄を自動的に分析するような場合、 テキストマイニングと呼び、 マーケティングなどの手法に使われている。 たくさんのデータがあるときの分類についてもふれる。

ユーザ登録

データベースは情報資産である。 保守管理には厳しい。

登録したユーザしか表を見ることはできない。 また、表を変更したりする場合にはさらにユーザに権限を与えることによって のみ、可能である。 本日の出席 の提出によりユーザ登録を行う。

CSV 形式のデータ

おいおいデータベースサーバを使って登録する方法を学ぶが、 まずは、登録するデータを少し作成してこよう。 本日のレポート の提出内容を次回使用する。

2 次元表のデータ形式

データは、縦列は同じ情報が入る。 横列は、ある事象についての情報が並んでいる形になる。 時間割や名簿を思い出せ。 このようなデータの格納方法を関係データベースと呼ぶ。

この講義用の作業 directory の作成

% 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

が使える。

Microsoft メモ帳について

自宅で作成し、メール添付で作成したファイルを処理しようとすると、 RDB で読みこめないことがある。 原因は Shift JIS で作成されたデータをメールで JIS に変換して送り、 EUC の RDB でアクセスするどこかの過程で、 改行がなかったり空白文字になったりするものがあるためであるようである。 ちなみに「こがね」のどこかに反応して空白文字になった。

データベースに使う資料は大学で作成した方がよさそうである。

OpenOffice.org の Calc で CSV 形式に出力する方法もある。 これはややお奨め。