トップページ -> コンピュータ実習 -> PostgreSQL インストールと各種ツールの使用法 -> PostgreSQL 上で,Eclipse のデータツール・プラットホーム (DTP) を使う
[サイトマップへ]  

PostgreSQL 上で,Eclipse のデータツール・プラットホーム (DTP) を使う

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ設定 教材(公開) サポートページ

Eclipse のデータツール・プラットホーム (DTP) とは, リレーショナルデータベースの操作と管理の機能を持ったソフトウエアです.

この Web ページでは,Eclipse のデータツール・プラットホーム (DTP) の操作法を説明する.

この Web ページでは,リレーショナルデータベース管理システムとして,PostgreSQL を使う. ( MySQLJava DB (Derby) など,他のリレーショナルデータベース管理システムについては,別のページで説明している).

参考 Web ページ

DTP の Web ページ:http://www.eclipse.org/datatools/


必要となるソフトウエア

あらかじめ決めておく事項

使用するデータベースのデータベース論理名と, PostgreSQL にログインするために使うデータベース・一般ユーザのアカウント(ユーザ名とパスワード)を決めておくこと. この Web ページでは,次のように書きます.

(参考)データベースとアカウントの作成

この Web ページの手順を試すために,新しいデータベースと,新しい一般ユーザのアカウントを作りたいという場合は, PostgreSQL のコマンドラインクライアント を使って作るのが簡単です. Windows のコマンドプロンプトなどで,次のコマンドを実行します.

※ まずは,Windows で「スタート」 →「プログラム」 →「PostgreSQL 8.3」 →「コマンド・プロンプト」と操作
createuser -U pgadmin -P -S -D -R testuser
createdb -U pgadmin -O testuser -E UTF8 testdb

なお,データベースとアカウントの作成には,PostgreSQL データベース管理者ユーザ名パスワード必要になるので,前もって調べておくこと. 上記では,Postgres データベース管理者のユーザ名を pgadmin と書いています.

設定項目

設定に必要になるので,前もって,Eclipse インストールディレクトリと, PostgreSQL のバージョンと, PostgreSQL 用 JDBC の jar ファイルが存在するディレクトリ を調べておいてください この Web ページでは,次のように書きます.

※ JDBC の jar ファイルが無いときは,http://jdbc.postgresql.org/

PostgreSQL を使うために,次の設定を行うことになるので,確認しておく.


データツール・プラットホーム (DTP) の機能

データツール・プラットホーム (DTP) が持つ以下の機能を説明する.

DTP のバージョンが古いと,他のプラグインとの相性だと思うのですが,DTP がうまく動かないという場合がありました.その場合は, 「Eclipse でインストール済みのフィーチャの更新」 のWeb ページを参考にして,DTP の更新を行ってみてください.


PostgreSQL ドライバー定義

【要点】Eclipse で JDBC ドライバー定義を行う.

  1. 設定項目の展開

    ウインドウ (Window)」-> 「設定 (Preferences)」-> 「データ管理」を展開-> 「接続 (Connectivity)」を展開,という手順で操作する.

  2. ドライバーの追加の開始

    「接続」の下の「ドライバー定義」をクリックする

  3. ドライバーの追加

    「ドライバー定義のウインドウ」が開く.右の方にある「追加 (Add)」をクリック.

  4. ドライバー・テンプレートの選択

    「新規ドライバー定義 (New Driver Definition) のウインドウ」が開くので, 「PostgreSQL JDBC ドライバー PostgreSQL 8.x」をクリック.

    まだ,設定があるので,「OK」を押さないこと.

  5. Jar リストの設定
    1. Jar リスト」をクリックした後,右側の「JAR/ZIP の追加」をクリック

    2. Postgres 用 JDBC の jar ファイル>C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar を設定

    3. 古い設定「postgresql-8.1-404.jdbc2.jar」を消去する.

      まず,「postgresql-8.1-404.jdbc2.jar」をクリックして, 「JAR/Zip の除去」をクリックする.

  6. プロパティーの設定

    プロパティー」をクリックした後, 次のように設定する.

    以上の設定が終わったら,「OK」をクリックする. これで,PostgreSQL を使うためのドライバー定義が終わった.

  7. 設定の確認

    PostgreSQL JDBC ドライバー」 というような名前が付いた行が増えているので確認しておく.


PostgreSQL への「接続」の設定

  1. (前準備) 上記の「PostgreSQL ドライバー定義」が終わっていること.

  2. データ・ソース・エクスプローラーを開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. データ・ソース・エクスプローラ (Data Source Explorer) が,左側に開くので, 「データベース接続」を右クリックし, 「新規 (New)」を選ぶ.

  4. 「新規接続プロファイル (connection profile) のウインドウ」が開くので, 「PostgreSQL」を選び, 「次へ (Next)」をクリック.

  5. 接続のテスト

    「接続プロファイルのウインドウ」が開くので, 「接続のテスト」をクリックする.

  6. 「ping が正常に終了しました」 と表示されることを確認

    確認したら「OK」をクリック.

    エラーが出たときのヒント

  7. 新規接続プロファイルの要約が表示されるので確認

    次へ」をクリック. 新規接続プロファイルの要約が表示されるので確認. 「終了」をクリックし,新規接続の設定を終える.

  8. データ・ソース・エクスプローラでの確認

    データ・ソース・エクスプローラ (Data Source Explorer) に,いま設定した「接続」が表示されるので確認する.

これで,PostgreSQL への「接続」の設定が終わった.


 

テーブル定義

  1. (前準備) 上記の「PostgreSQL への『接続』の設定」が終わっていること.

  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 PostgreSQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

  4. 新規 PostgreSQL (PostgreSQL v ...)」のにある データベース論理名「testdb」を展開(左横の「+」をクリック).

  5. testdb」の下の「Catalogs」を展開(左横の「+」をクリック).

  6. Catalogs」の下の「testdb」を展開(左横の「+」をクリック).

  7. testdb」の下の「スキーマ」を展開(左横の「+」をクリック).

  8. スキーマ」の下の「public」を展開(左横の「+」をクリック).

    展開の結果,テーブル名の一覧が表示される.

  9. ツールの起動」 「public」の下の 「テーブル」を右クリック. 「新規テーブル」を選ぶ.

  10. 「オプションのウインドウ」は,何もせず,「次へ」をクリック.

  11. 「列のウインドウ」が現れたら,まず「列追加 (Add Column)」をクリック

  12. 1列追加されるので,下の方の 「列詳細」で,「名前」と「データ型」と「長さ」と「NULL 可能」と「デフォルト値」を設定.

    例えば

    のように.

  13. 「列のウインドウ」では,「テーブル名」の記述も行っておくこと.

    テーブル名は,デフォルト値は「new_table」になっている.変えておく.

  14. 列の追加とテーブル名の設定が終わったら,「次へ」をクリック

  15. 主キーの設定

    一意の値をとる(行が違えば,値が違う)属性で,かつ NULL になることがないものを主キーとして設定します.設定が終わったら「終了」をクリック.

  16. すると,SQL ステートメント・エディタが開き,この中に,自動生成された SQL プログラム が書かれています.

  17. まだ,テーブルはできていません. SQL ステートメント・エディタ内の任意の場所で右クリックして「すべて実行」を選んで下さい. これによって,SQL が実行されて,テーブルが生成されます.

  18. 確認のため, データ・ソース・エクスプローラ (Data Source Explorer) で,右クリックして「リフレッシュ」を実行してください.新しく生成したテーブルが現れます.

    ※ 現れないときは,「テーブルの生成」に失敗したことを疑って下さい.

    「SQL の結果」ウインドウで「失敗」(つまりエラーメッセージ)が無いかを確認してください. (つまり,自動生成された SQL プログラムにエラーがあることを疑って下さい.「primary key」の部分で,エラーが出ることがあります.対処は簡単にできると思います).

    「成功」しているときは,「切断」と「接続」をやり直すと,うまく表示されるかも知れません.

(参考)テーブル定義 (専用ツール) ・・・ 日本語のテーブル名,列名を持つテーブルの場合

この Web ページでは,PostgreSQL バージョン 8.3.3 での動作結果を報告します.

MySQL で,日本語のテーブル名,列名を持つテーブルを定義できるか試してみました.(簡単なものしか試してみませんが)出来るようです.


図.テーブル名「商品」,列名「商品番号」,「商品名」としてテーブルを定義しているところ


図.確認のため,データ・ツール・プラットフォームの SQL スクラップブックで,上記のテーブルを,使ってみているところ(うまく動いているようです).


図.テーブル名や列名に「〜」,「@」などの文字を含めた場合


図.確認のため,データ・ツール・プラットフォームの SQL スクラップブックで,上記のテーブルを,使ってみているところ(うまく動いているようです).


 

SQL 編集と実行,SQL 実行結果のファイル出力

SQL スクラップブックを使い,SQL の編集と実行ができます.

  1. (前準備) 上記の「MySQL への『接続』の設定」が終わっていること.

  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 PostgreSQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

  4. SQL スクラップブックを開く

    分かりにくいですが,Eclipse の上部に並んでいるたくさんのボタンのうち, 左から4番目の青色のボタンが「SQL スクラップブック」を開くためのボタンです.

  5. SQL の編集と実行

    ここでは,SQL の編集と実行の練習用に,SQL の見本をいくつか示している.下記をカットアンドペーストして,練習に使ってください.

    見本1.commodity テーブル

    commodity テーブルのテーブル定義

    ----------------------ここから---------------------
    CREATE TABLE commodity (
        type INTEGER primary key not null,
        name VARCHAR(32) not null,
        price INTEGER );
    ----------------------ここから---------------------
    


    図.commodity テーブルのテーブル定義


    図.上記の実行結果

    commodity テーブルへの列の挿入

    ----------------------ここから---------------------
    INSERT INTO commodity VALUES( 1, 'apple', 50 );
    INSERT INTO commodity VALUES( 2, 'orange', 20 );
    INSERT INTO commodity VALUES( 3, 'strawberry', 100 );
    INSERT INTO commodity VALUES( 4, 'watermelon', 150 );
    INSERT INTO commodity VALUES( 5, 'melon', 200 );
    INSERT INTO commodity VALUES( 6, 'banana', 100 );
    ----------------------ここまで----------------------
    


    図.commodity テーブルへの列の挿入


    図.上記の実行結果

    commodity テーブルに対する SQL の例

    ----------------------ここから---------------------
    select * from commodity;
    ----------------------ここまで----------------------
    

    期待される結果

     TYPE NAME       PRICE
     ---- ---------- -----
        1 apple         50
        2 orange        20
        3 strawberry   100
        4 watermelon   150
        5 melon        200
        6 banana       100
    


    図.commodity テーブルに対する SQL の例


    図.上記の実行結果

    見本2.科目テーブル,学生テーブル,履修登録テーブル

    今度の見本(見本2)では,日本語のテーブル名,日本語の列名を試します.

    ※ テーブル名に日本語を使っていますが,特に問題ありませんでした.

    科目テーブルのテーブル定義

    ----------------------ここから---------------------
    create table 科目 (
           科目番号	  integer	not null,
           科目名	  varchar(100)	not null,
           単位数	  integer	not null,
           担当教員名 varchar(100) 	not null,
           primary key (科目番号)
    );
    ----------------------ここから---------------------
    


    図.科目テーブルのテーブル定義


    図.上記の実行結果

    学生テーブルのテーブル定義

    ----------------------ここから---------------------
    create table 学生 (
           学生番号	  integer	not null,
           氏名	  varchar(100)	not null,
           primary key (学生番号)
    );
    ----------------------ここから---------------------
    


    図.学生テーブルのテーブル定義


    図.上記の実行結果

    履修登録テーブルのテーブル定義

    ----------------------ここから---------------------
    create table 履修登録 (
           科目番号	  integer	not null,
           学生番号	  integer	not null,
           primary key (科目番号,学生番号),
           foreign key (科目番号) references 科目(科目番号),
           foreign key (学生番号) references 学生(学生番号)
    );
    ----------------------ここから---------------------
    


    図.履修登録テーブルのテーブル定義


    図.上記の実行結果

    テーブルへの列の挿入

    ----------------------ここから---------------------
    insert into 科目 values ( 1001, 'データベース',    2, 'X' );
    insert into 科目 values ( 1002, 'プログラミング',  2, 'Y' );
    insert into 学生 values ( 2008001, 'AA AAA' );
    insert into 学生 values ( 2008002, 'BB BBBB' );
    insert into 履修登録 values ( 1001, 2008001 );
    insert into 履修登録 values ( 1001, 2008002 );
    insert into 履修登録 values ( 1002, 2008002 );
    ----------------------ここまで----------------------
    


    図.テーブルへの列の挿入


    図.上記の実行結果

    科目テーブル,履修登録テーブルに対する SQL の例

    ※ データベースの中身に日本語が含まれていますが,特に問題ありませんでした.

    ----------------------ここから---------------------
    select 科目.科目番号, 科目.科目名
    from 科目, 履修登録
    where 履修登録.学生番号 = 2008001 AND 履修登録.科目番号 = 科目.科目番号;
    ----------------------ここまで----------------------
    


    図.科目テーブル,履修登録テーブルに対する SQL の例


    図.上記の実行結果

    データとして「@」や「〜」を扱う例

    ※ 特に問題ありませんでした.

    ----------------------ここから---------------------
    insert into 科目 values ( 1003, 'プログラミング演習V@〜A', 2, 'X' );
    ----------------------ここまで----------------------
    


    図.データとして「@」や「〜」を扱う例


    図.上記の実行結果


    図.確認のため,科目テーブルの中身を表示した結果

  6. SQL 実行結果の保存

    SQL 実行結果が表示されているウインドウで右クリックすることで, 実行結果を,簡単にファイルに保存できます.


 

テーブルの一覧表示と中身の表示と更新(行の追加,行の削除,更新)

テーブルの中身を簡単に見ることができ, データの更新や,行の追加,削除も簡単に行えるツールです. SQL を使わずに簡単にできます.

上記の「PostgreSQL への『接続』の設定」が終わっていること.

  1. (前準備) 上記の「PostgreSQL への『接続』の設定」が終わっていること.

  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 PostgreSQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

  4. 新規 PostgreSQL (PostgreSQL v ...)」のにある データベース論理名「testdb」を展開(左横の「+」をクリック).

  5. testdb」の下の「Catalogs」を展開(左横の「+」をクリック).

  6. Catalogs」の下の「testdb」を展開(左横の「+」をクリック).

  7. testdb」の下の「スキーマ」を展開(左横の「+」をクリック).

  8. スキーマ」の下の「public」を展開(左横の「+」をクリック).

    展開の結果,テーブル名の一覧が表示される.

  9. 扱いたいテーブル(ここでは「COMMODITY」を右クリック.「データ」→「編集」と操作する.

  10. テーブル編集用のウインドウが開く. これで,更新,行の挿入,行の削除が簡単にできる. 更新後は,ウインドウ内のの任意の場所で右クリックして「保管」を選んで下さい. この操作を行わない場合,全ての更新が無かったことになる.

    (参考)日本語を使っても,特に問題はなさそうです.


 

テーブルのインポート・エクスポート

CSV 形式のファイルなどと,テーブルの中身をインポート・エクスポートすることも 簡単に行えます.

閲覧,編集したいテーブル名を右クリック. 「データ」-> 「ロード」でインポート. 「データ」-> 「抽出」でエクスポート.