「コンピュータ、ソフトがなければただの箱」という言葉がありました。 データベースもそのデータを有効に活用する業務、アプリケーションがあって初めて役に立ちます。
PowerGres Plus は、Java (JDBC)、Perl、PHP とさまざまな言語のインタフェースを用いてアプリケーションを作成することができます。 また、Administrator はもちろん、オープンソースの pgAdmin III など多くの GUI ツールを使用して簡単に、データベースやテーブルを作成できます。
第 2 回では、さまざまな周辺ツールを使用して簡単にデータベースを作成し、アプリケーションを作成する過程を説明します。
それでは実際に書籍データベースを作成しながら、PowerGres Plus での業務作成の流れを説明します。 書籍データベースは、書籍タイトルに含まれる文字や、作者の名前などから目的の書籍の情報を見つけ出すシステムです。 書籍データベースのシステムを作成するためには、データベースや、データベースにアクセスするためのアプリケーションを作成し、データのメンテナンスや保護をどのように行うかを考えなければなりません。 今回は、データベースの作成とアプリケーションの作成を以下の手順で行います。
データベースを構築するには、まず、データベースを作成し、次に書籍情報を格納するためのテーブルを作成します。 その後、書籍情報のデータを入力します。 今回は、以下の順で説明します。
第 1 回目で紹介したセットアップが完了すると、Administrator を起動するための URL が表示されます。
https://server:13000/admin/postgres.html
server | セットアップを行ったサーバ名 |
---|---|
postgres.html | setup で作成したインスタンス名が「postgres」の場合、「postgres.html」になります。 |
ブラウザで、Administrator を起動するための URL を入力すると、最初に日本語表示か、英語表示かを選択する画面が表示されるので、日本語表示画面の方を選びます。
初期画面が表示されるので、インスタンス管理者用のユーザ ID とパスワードを入力します。
画面左の インスタンスの起動停止 を選択し、インスタンスが起動されているかを確認します。 停止 状態のときは、起動 ボタンをクリックして、インスタンスを起動します。
なお、以下の説明では、PowerGres Plus でリソースの格納に必要なディレクトリを指定します。
インスタンスを格納するディレクトリ | /PlusData/postgres |
---|---|
データベーススペースを割り当てるディレクトリ | /PlusDbspace/postgres |
起動が確認できたら、画面左の データベースの操作 – データベースの追加・削除 を選択します。 データベースの追加画面が表示されるので、以下のようなデータベースを作成します。
データベース名 | dbsample |
---|---|
データベーススペース名 | dbsamplespace |
パス名 | /PlusDbspace/postgres/dbsamplespace |
サイズ | 100 MB |
各画面には、ヘルプ ボタンがあり、入力する内容もわかるようになっています。
図 1: Administrator によるデータベース作成
これで、データベースの作成が終わりました。データベースには、格納する情報の形式に合わせて、さまざまなテーブルを作成することができます。 今回は書籍の情報を検索するためのテーブルを作成します。 テーブルの作成には pgAdmin III というツールを使ってみます。
ダウンロードしたファイルを解凍して作成される、「pgadmin3.msi」を実行してインストールします。 インストールは、ウィザード形式で簡単行なえます。
図 2: pgAdmin III インストール画面
pgAdmin III では、ODBC ドライバを使用するので、ODBC ドライバをインストールします。
ODBC ドライバは以下から入手できます。 バージョンは、7.03.02.00 以降を推奨します。
Windows システムに PostgreSQL ODBC Driver をインストールします。
インストールした ODBC ドライバを選択して、「PowerGresPlus」というデータソースを新規に追加します。 この例では、あらかじめ作成した「dbsample」というデータベース名を指定します。
図 3: ODBC ドライバセットアップ画面
スタートメニューの pgAdmin III 1.4 – pgAdmin III を選択します。
ファイル – サーバの追加 を選択して以下のように入力します。
アドレス | アクセスするサーバ名を入力します。 |
---|---|
記述 | ODBC ドライバで作成したデータソース名を設定します。 |
Port | 使用する Port を設定します。 |
DB メンテナンス | アクセスするデータベースとして先ほど作成した「dbsample」を指定します。 |
ユーザ名 | アクセスするデータベースのインスタンス管理者を指定します。 |
パスワード | インスタンス管理者のパスワードを指定します。 |
図 4: 新しいサーバの登録画面
ツリーに、PowerGresPlus が追加され、そのツリーを展開すると、dbsample の内容が閲覧できます。
ツリーから、データベース – dbsample – テーブル を選択し、ポップアップメニューで、新しいテーブル を選択し、以下のようにテーブルを作成します。
名前 | books |
---|---|
オーナー | postgres |
列名 | 型 | |
---|---|---|
ISBN | varchar | not null |
TITLE | text | |
AUTHOR | text | |
PRICE | int4 |
主キー | ISBN |
---|
図 5: 新しいテーブル
データビューから、以下のデータを入力します。 以下のデータは、amazon.co.jp で「PostgreSQL」をキーに検索した書籍データをランダムに抽出したものです。
ISBN | TITLE | AUTHOR | PRICE |
---|---|---|---|
4798109576 | PostgreSQL 徹底入門8対応 | 石田朗雄、浅羽義之 | 3444 |
4844320998 | PostgreSQL 徹底活用ガイド for Windows | 斉藤 浩 | 3129 |
484432053X | まるごとPostgreSQL!Vol.1 | 石井達夫 | 1890 |
4774118117 | PostgreSQL全機能リファレンス アドバンストリファレンスシリーズ | 鈴木啓修 | 3129 |
4873111021 | 実践PostgreSQL | John Worsley, Joshua Drake | 5040 |
0201703319 | Postgresql: Introduction and Consepts | Bruce Momjian | 5829 |
アプリケーションは、先ほど作成したテーブルを検索し、価格の安い順に、以下のようにフォーマットして出力するプログラムを JDBC で作成してみます。
=[ISBN番号]============================================ タイトル:xxxxxxxxxxxxxxxxxxxxx 著者:yyyyyyyyyyyyyyyyyyyyy 価格(税込み):zzzz円 =======================================================
図 7: アプリケーション概要
アプリケーションは、Windows の Eclipse で開発します。 以下の手順で説明します。
以下の URL よりダウンロードできます。
2005 年 11 月 10 日現在では、1.4.2_10 が最新です。 Windows Platform 用で、インストーラ付きのものをダウンロードします。 ファイル名は、以下となります。
j2sdk-1_4_2_10-windows-i586-p.exe
ダウンロードが完了したら、上記のファイルを実行しインストールします。 インストールは、ウィザード形式なので、簡単にできます。 C:\j2sdk-1.4.2_10 にインストールします。
以下のように環境変数をシステムに設定します。
JAVA_HOME=C:\j2sdk-1.4.2_10 PATH=%JAVA_HOME%\bin;%PATH%
私の環境ではすでに j2sdk-1.4.2_04 がインストールされているので、環境変数は以下のように設定しました。
JAVA_HOME=C:\j2sdk-1.4.2_04 PATH=%JAVA_HOME%\bin;%PATH%
PowerGres Plus に添付の JDBC ドライバを任意のディレクトリに複写、または、インストールして環境変数を設定します。
以下に JDBC ドライバをインストールしました。
C:\JDBC\jdbc3\postgresql.jar
以下のように環境変数を設定します。
CLASSPATH=.;"C:\JDBC\jdbc3\postgresql.jar";%CLASSPATH%
Eclipse は最新の R3.1.1 Windows 版を使用して開発します。
Windows 用の最新ファイルを入手します。 以下の URL からダウンロードできます。
https://eclipse.org/downloads/
2005 年 11 月 10 日現在、eclipse-SDK-3.1-win32.zip が最新でした。
上記のファイルを解凍して作成された eclipse というディレクトリを任意の場所に複写します。 「C:\eclipse」に複写します。
C:\eclipse\eclipse.exe を起動します。
最初の起動では、ワークスペースを作成する場所を尋ねてきます。 今回は、以下のように入力します。
C:\workspaces
以下のような画面が表示されるので、右上の矢印をクリックしてワークベンチを開きます。
プロジェクトの新規作成では、Eclipse のウィザードを利用して、Java 用のプロジェクト「PGSAMPLE」を作成します。 また、プロジェクトで使用するクラスとして、JDBC ドライバを追加します。
以下に手順を説明します。
File メニューの Project を選択し、Java Project を選択して、Next ボタンをクリックします。
次の画面で、Project Name に「PGSAMPLE」と入力し、Next ボタンをクリックします。
次の画面では、Library タグを選択し、Add External JARs ボタンをクリックし、postgresql.jar を追加します。
図 9: Java Settings
最後に Finish ボタンをクリックします。
プログラムは、メインとなるクラスを 1 つ作成し、そこでデータベースにアクセスする処理を記述します。
File メニューの New から Class を選択し、以下のように入力します。
図 10: Java Class
Finish をクリックすると、main メソッドを持つ、PGSAMPLE クラスが作成されます。
以下のようなソースコードを作成します。
import java.sql.*; public class PGSAMPLE {ldelim} String url="jdbc:postgresql://Server1:5432/dbsample"; String username="postgres"; String password="post000"; /** * @param args */ public static void main(String[] args) {ldelim} // TODO Auto-generated method stub PGSAMPLE object = new PGSAMPLE(); object.run(args); {rdelim} public void run(String[] args){ldelim} try {ldelim} Class.forName("org.postgresql.Driver"); Connection db = DriverManager.getConnection(url, username, password); Statement st = db.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM books ORDER BY \"PRICE\" "); while (rs.next()) {ldelim} System.out.println("=["+rs.getString(1)+"]====================================="); System.out.println("タイトル:"+rs.getString(2)); System.out.println("著者:"+rs.getString(3)); System.out.println("価格(税込み):"+rs.getString(4)+"円"); {rdelim} System.out.println("=================================================="); rs.close(); st.close(); {rdelim} catch (Exception e){ldelim} System.out.println("error occurred."+e.getMessage()); {rdelim} {rdelim} {rdelim}
SELECT 文では、カラム名を記述するとき、ダブルクォーテーション (“) で囲みます。 これは、pgAdmin III でテーブルを定義するときに、初期設定でカラム名をダブルクォーテーションで囲んで定義しているためです。 本来は、ダブルクォーテーションは、SQL の予約語や、英字の大文字、小文字を識別するために指定します。 PowerGres Plus では、ダブルクォーテーションを指定しない場合は、英小文字として扱われるため、これを回避するために、ダブルクォーテーションで囲んでいます。
実行は、Run メニューの Run を選択し、表示された画面で、実行クラス「PGSAMPLE」を指定して実行します。
以下のように Eclipse のコンソールに表示されます。
=[484432053X]===================================== タイトル:まるごとPostgreSQL!Vol.1 著者:石井達夫 価格(税込):1890円 =[4844320998]===================================== タイトル:PostgreSQL 徹底活用ガイド for Windows 著者:斉藤 浩 価格(税込):3129円 =[4774118117]===================================== タイトル:PostgreSQL全機能リファレンス アドバンストリファレンスシリーズ 著者:鈴木啓修 価格(税込):3129円 =[4798109576]===================================== タイトル:PostgreSQL 徹底入門8対応 著者:石田朗雄、浅羽義之 価格(税込):3444円 =[4873111021]===================================== タイトル:実践PostgreSQL 著者:John Worsley, Joshua Drake 価格(税込):5040円 =[0201703319]===================================== タイトル:Postgresql: Introduction and Consepts 著者:Bruce Momjian 価格(税込):5829円 ==================================================
Eclipse でデバッグを行う場合は、Run メニューの Debug を選択して行います。
デバッグ用の Perspective に切り替わります。
ブレークポイントの設定は、Run メニューの Toggle line breakpoint または、Ctrl + Shift + b キーで設定・解除できます。
while 文中の先頭の行にブレークポイントを設定して実行すると、以下のようにブレークポイントで停止している状態が表示されます。
図 13: Debug Perspective
クラス内から参照できる変数や、クラスの内容は Variables に表示されます。
図 14: 変数表示
デバッグを終了する場合は、Run メニューの Terminate を選択します。
その他のデバッグの詳細については、Eclipse のヘルプを参照してください。
PowerGres Plus で、Administrator、pgAdmin III を使用して簡単にデータベース定義ができることを説明しました。 今回は、Java によるアプリケーションを作成しましたが、PowerGres Plus には他にも C 言語、Perl、PHP などのインタフェースが装備されていますので、お好きな言語でプログラミングすることができます。 次回は、今回作成した dbsample データベースのバックアップとリカバリを行い、その内容を皆様にお伝えします。