PowerGres

技術情報 | PowerGres を使ってみよう – PowerGres 体験記 第 1 回

対象バージョン: PowerGres 7
本文では Microsoft Windows 7 (64 ビット版) において PowerGres on Windows 7.1 を使用して解説しています。

PowerGres は、オープンソースデータベースとして実績・定評のある PostgreSQL をベースに、より使いやすく、より安心して使用できるように GUI の管理ツールやサポートサービスを付属したデータベース製品です。

コマンドラインに慣れていない Windows ユーザの方でも、PowerGres Manager という便利な GUI の管理ツールを使えば直観的にデータベースの管理・監視・運用ができます。 ここでは、 Windows 7 に PowerGres on Windows 7 のインストールを行うことを前提に、評価版のダウンロードから、インストール、セットアップ、基本的なデータベースの操作までを紹介します。

  1. 評価版のダウンロード
  2. 圧縮ファイルの展開
  3. インストール
    1. PowerGres 管理ツールの起動
  4. セットアップ
    1. サーバの登録とデータベースクラスタの作成
    2. サービスの登録と起動
  5. 基本的なデータベースの操作
    1. ロールの作成
    2. データベースの作成
    3. psql によるデータベースへの接続
    4. クライアント文字エンコーディングの設定
    5. SQL の実行
評価版のダウンロード

以下の URL から PowerGres on Windows 7 の評価版をダウンロードします。

https://powergres.sraoss.co.jp/pgweb/s/ja/download/download-onWin.php
圧縮ファイルの展開

評価版は、zip 形式の圧縮ファイルです。zip ファイルを選択した上で、右クリックの「すべて展開」とすると PowerGres7.1-ja というフォルダが作成されます。 インストール、セットアップの方法は、マニュアルにも詳しく記載されています。(マニュアルは、PowerGres7.1-ja\ja\manual\index.html になります。) オンラインマニュアルにもあります。

https://powergres.sraoss.co.jp/manual/onLinux/V70/admin/
インストール

インストールは、展開後のフォルダの PowerGres フォルダの Setup.exe を実行します。 ※インストール時のユーザは、Windows の administrator 権限のあるユーザで実行する必要があります。 ウィザード形式のウィンドウ画面にしたがっていけば、簡単にインストールができます。

図: インストール画面

ポイント1:評価版のライセンスキー入力を求められますので、 Evaluation と入力してください。

図: ライセンスキー入力画面

ポイント2:インストールするバージョンでインストールするマシンに適切なバージョン(32 Bit, 64Bit)を選択します。※インストールするシステム情報を確認する方法は、「コントロールパネル」 -> 「システムとセキュリティ」-> 「システム」で使用しているオペレーティングシステムが表示されます。

図: Windowsのシステム情報
図: インストールバージョン
図: インストール完了画面

PowerGres 管理ツールの起動

インストールが成功したら、デスクトップに PowerGres 7 のショートカットが作成されますので、それをダブルクリックし PowerGres 管理ツールを起動します。 起動できたら、インストールは成功です。次にセットアップをしていきましょう。

図: PowerGres を起動した画面
セットアップ

事前に、Windows OS に PowerGres サービス専用アカウント postgres を作成しておきます。PowerGres でのスーパーユーザとなるユーザです。

管理ツールからデータベースを管理するには、「サーバ登録」を行います。 その際、データベースのデータを格納する領域であるデータベースクラスタを初期化します。

サーバの登録とデータベースクラスタの作成

「サーバの登録」とは、管理ツールに管理対象のデータベースクラスタを登録する操作のことです。 「ファイル」の「サーバの登録」から、サーバ情報を入力してサーバを登録します。

ラベルには powergres7 と入力します。 ラベルは Windows サービスへの登録時にサービス名として使用されます。 このページで順を追ってセットアップを進めている場合には、データベースクラスタは作成されていないので、「新規データベースクラスタの作成」をチェックしてデータベースクラスタを作成します。 ここでは、以下の登録情報を入力して新規のデータベースクラスタを作成します。

新規データベースクラスタの作成情報
設定項目 設定値 設定項目の説明
ラベル powergres7 ラベルとは、Windows のサービス名として登録されるものです。
ポート 5432 ポート番号のことです。複数のサーバが存在した場合、このポート番号が重複しないようにします。
データベースディレクトリ C:\data_1 データベースクラスタのディレクトリになります。
文字エンコーディング UTF8 データベース側のデフォルトの文字エンコーディングになります。
スーパユーザ名 postgres デフォルトの postgres を使用します。こちらで指定したユーザが PowerGres のスーパユーザになります
パスワード 任意 スーパーユーザにパスワードを設定しています
図: サーバ情報入力画面

initdb を実行するユーザを選択してください」とユーザ選択画面が表れますので、Windows OS で作成した、PowerGres サービスアカウント用である postgres を選択します。 initdb とはデータベースクラスタを作成するためのコマンドです。

図: initdb ユーザ選択画面

ポイント1:データベースの文字エンコーディングは、日本語を使用する際には、 UTF-8, EUC-JP を使用するのが一般的です。

サーバの登録が終わると、左のボックスに管理ツールにサーバが登録され、クリックすると「サーバ情報」を見ることができます。

図: サーバ登録後画面

サービスの登録と起動

次に「サービス」をクリックし、「PowerGresをWindowsサービスとして登録」をクリックします。 Windows サービスへの登録により Windows 起動時に PowerGres が自動的に起動するようになります。

図: サービス登録画面

ここで「サービスを起動」をクリックし、 PowerGres サーバを起動します。

図: サービスの起動前画面

正常にサービスが起動すると、「サービスを起動」ボタンがグレーアウトした状態になります。

図: サービスの起動中画面
基本的なデータベースの操作

ロールの作成

ロール(ユーザ)を作成しましょう。

スーパーユーザ(postgres)でもデータベースを操作できますが、スーパーユーザには全てについて権限があります。 従って、セキュリティや誤操作防止の観点から、スーパーユーザとは別に一般ユーザ (のロール) を作成し、通常の操作を行うべきです。

ロールという概念は、ユーザとグループをまとめたものです。PowerGres ではログイン権限やデータベースオブジェクトへの各権限などをロール単位で設定します。 PowerGres のスーパーユーザ postgres は最初から作成されていますが、まだ一般ユーザはまだ作成していないので存在しません。

「オブジェクト」の「ロール」を見ると、ロールが確認できます。

図: ロール一覧画面

データベースの作成権限のある一般ユーザを作成したいので、「ロールを作成」をクリックします。

図: ロール作成画面

ロール作成画面でここでのロールは、以下の情報とします。

ロール作成項目 設定値
ロール名 testuser
パスワード 任意
ログイン権限 あり
スーパーユーザ権限 なし
データベース作成権限 あり
ロール作成権限 なし

testuser を作成すると、このように表示されます。

図: ロール作成後画面

データベースの作成

一般ユーザ testuser でデータベースを作成してみましょう。 データベースクラスタ data_1 のデータベースを見るには、「オブジェクト」の「データベース」をクリックすると一覧で出力されます。 この時、3 つのデータベースが既に存在します。※ initdb 時に postgres, template0, template1 が自動的に作成されます。 それぞれ postgres が PostgreSQL 自身を管理するデータベース、template0, template1 がこれから作成するデータベースの雛型データベースになります。

図: データベース一覧画面

「オブジェクト」の「データベースを作成」をクリックすると、データベースを作成する事ができます。 以下の情報で作成します。

図: データベース作成画面
図: データベース作成後画面

psql によるデータベースへの接続

psql でデータベースに接続してみましょう。 psql はデータベースに接続して SQL を実行するためのプログラムです。

「その他ツール」から「psql コマンドラインツールを実行」をクリックします。

図: その他ツール画面

psql を起動すると、以下のターミナルが立ち上がります。 その際、パスワードの入力が求められます。サーバの登録時にスーパーユーザ postgres に設定したパスワードを入力します。

psql コンソール

psql のプロンプトで PowerGres のスーパーユーザは =# 、一般ユーザは => で違いがあります。画面はスーパユーザが postgres データベースに接続している状態です。なお、 \q で終了します。 psql には SQL 以外にも psql 内のみで使える便利なバックスラッシュコマンド(メタコマンド)があります。 主なバックスラッシュコマンドは、以下のとおりです。その他のバックスラッシュコマンドは、 psql を使っていく中で紹介していきます。

主なバックスラッシュコマンド
コマンド 意味
\? コマンド一覧
\c databasename [username] 新しい接続で他のデータベースに接続。ユーザ名も付けるとそのユーザで接続
\h [SQL] SQL のヘルプ
\d [t|i|s|v|S] テーブル、インデックス、シーケンス、システムテーブルの一覧
\l データベース一覧
\d [NAME] 指定したテーブル、インデックス、シーケンスなどの定義を表示
\dT データ型の一覧
\df 関数の一覧

それでは、上記の \c コマンド を使って 先ほど作成したデータベース testdb に接続してみましょう。その後、SET ROLE 文でロールをスーパーユーザから、一般ユーザ用のロール testuser に変えてみましょう。

postgres=# \c testdb
testdb=# SET ROLE testuser;

ポイント1: RESET ROLE で元のロールであるスーパーユーザ postgres に戻れます。

図: psql から testdb に接続後、SET ROLE 文で testuser にスイッチしている画面

testdb に接続ができたら、 \d でまずテーブルを確認してみましょう。まだ testdb にはテーブルを作成していなので、以下のようなメッセージが出ます。

図: \d で testdb にテーブル確認画面

クライアント文字エンコーディングの設定

SQL を実行する前に、文字エンコーディングについて少し触れておきます。

データベースの文字エンコーディングは、データベース作成の時に UTF8 に指定しました。クライアントの文字エンコーディングは、デフォルトではデータベースと同じ UTF8 となります。しかし、Windows OS では文字エンコーディングが UTF8 のままでは日本語が文字化けしてしまうため、ここで設定します。

現在のクライアント文字エンコーディングを確認するには、\encoding を実行します。

\encoding
図:現在のclient_encoding確認画面

実行すると現在 UTF8 になっています。ここでは、Windows の文字エンコーディングである \encoding SJIS に設定しなおします。

\encoding sjis
図:client_encoding sjis変更画面

ポイント2:バックスラッシュコマンドで変更したパラメータは、永続的なものではなくその接続内だけ有効になります。

SQL の実行

psql 上で、SQL を実行し、簡単なテーブルを作成してみましょう。ここでは、社員テーブル employee を作成します。下の CREATE TABLE 文で 4 つのカラムを持ったテーブルを定義しています。

CREATE TABLE employee (
  number int,         -- 社員番号
  name text,          -- 名前
  position text,      -- 役職
  date_of_hire date   -- 入社日
);
図:create table 画面

\demployee テーブルを確認してみましょう。

\d employee
図: employee テーブル定義画面

SQL の基本となる 4つの構文 INSERT, SELECT, UPDATE, DELETE をそれぞれ実行して、データの投入から削除まで行います。

社員テーブル employee が定義できたら、INSERT 文で以下のデータを登録していきましょう。

INSERT INTO employee VALUES (1981352, '吉本 勘兵衛', 'staff', '1998-04-01');
INSERT INTO employee VALUES (1782822, '長崎 一郎', 'chief', '1978-10-01');
INSERT INTO employee VALUES (2081577, '山田 太郎', 'staff', '2008-04-01');
INSERT INTO employee VALUES (1851139, '大村 祐子', 'chief', '1985-04-01');

テーブルへのデータの登録が済んだら、 SELECT 文で確認してみましょう。

SELECT * FROM employee;
図: insert 後の select 画面

UPDATE 文でデータの更新を行いましょう。社員番号 1981352 の吉本さんの役職が、マネージャ(manager)に昇進しました。データの更新を行っていきます。注意しなければならないのは、WHERE 句で条件を指定しないとすべての行が更新されてしまいます。吉本さんの社員番号を元に条件を指定しています。

UPDATE employee SET position = 'manager' WHERE number = 1981352;
図: employee update の画面

DELETE 文で削除を行いましょう。社員番号 1851139 の大村さんが退職する事になりました。こちらも、UPDATE 文の時と同じように WHERE 句で条件を絞りこんでから削除をします。

DELETE FROM employee WHERE number = 1851139;
図: employee delete の画面

SELECT 文で確認してみましょう。

図: employee update delete 後の select の画面

吉本さんが manager へ、大村さんが削除されている事がわかります。

SQL 基本 4 構文
データの操作 SQL 構文例
登録 INSERT 文 INSERT INTO employee VALUES (1981352, ‘吉本 勘兵衛’, ‘staff’, ‘1998-04-01’);
検索 SELECT 文 SELECT name FROM employee;
更新 UPDATE 文 UPDATE employee SET position = ‘manager’ WHERE number = 1981352;
削除 DELECT 文 DELETE FROM employee WHERE number = 1851139;

ここまで、psql を使いテーブルを作成、SQL の基本構文を使いテーブル内のデータ操作を簡単に説明しました。次回はデータベースのメンテナンス作業のひとつであるバックアップ、リストアを実際にやってみましょう。

SRA OSS Online Shop

製品・サービスに関するお問い合わせ
03-5979-2701

お問い合せ受付時間 月 - 金 10:00 - 17:00

メールフォームでのお問い合わせ

ページトップへ