Linuxmaniaトップ活用ガイドLinuxでPostgreSQLを作ってみよう

Linuxmania:活用ガイド

■LinuxでPostgreSQLを使ってみよう(CentOS)

データベースの作成およびテーブル作成

新規データベースを作成してみましょう。
データベースを選択して右クリックをして表示されたコンテキストメニューの中より
「新しいデータベース」を選択してください。
ウィザードが表示されますので、作成するデータベースの名前を入力してください。(ここではsampleとしてます。) ウィザード画面
図16 ウィザード画面

pgadmin3の画面に戻るとデータベースの項目部分に先ほど作成したデータベースが追加されています。 データベースが作成された
図17 データベースが作成された

つぎにテーブルを作成してみましょう。
pgadmin3の画面よりスキーマの部分を選択してテーブルを選んでください。 テーブル作成
図18 テーブル作成

そこで右クリックをしてコンテキストメニューより「新しいテーブル」を選択するとウィザードが表示されます。 テーブル作成ウィザード(1)
図19 テーブル作成ウィザード(1)

以下のような内容でテーブル名を作成してみましょう。

  • テーブル名 : USERINFO
  • カラム1 : ID int
  • カラム2 : NAME varchar(128)
  • カラム3 : MAIL varchar(128)

プロパティにある名前の部分にUSERINFOと入力します。次に列のタブを選択してカラムを追加してください。
※pgadmin3では、varcharはcharacter varyingとなっています。
テーブル作成ウィザード(2)
図20 テーブル作成ウィザード(2)

同様に制約のタブを選択してIDに"主キー"を設定してください。これでテーブル作成は完了です。 テーブルが作成された
図21 テーブルが作成された

次にユーザーtaroが作成したテーブルへアクセスできるようにするために権限を変更します。
USERINFOを選択して右クリックをしてコンテキストメニューの中よりプロパティを選んでください。
次に権限のタブを選択してください。
SELECT権限にチェックをつけて「追加/変更」を押してください。
これでユーザーtaroがUSERINFOテーブルに対してSELECT権限が付与されました。 SELECT権限を付与した
図22 SELECT権限を付与した

このようにpgadmin3のGUIを使うことでデータベースの作成およびテーブル作成が簡単にできるようなります。

Hint&Tips

PostgreSQLでは、MySQLに備わっているauto_incrementの機能が存在しません。
同等の機能を実現するためには、シーケンスを作成することで同等の機能を実現することができます。

create sequence next_id_seq;
create table userinfo (
   id int default nextval('next_id_seq'),
   name varchar(128) not null,
   mail varchar(128) not null
);

PostgreSQLについて

PostgreSQLは、早い段階でトリガーやストアドプロシージャなど商用RDBが持つ高機能を備えていました。
また標準SQLをほぼサポートしているため、商用RDBからオープンソースRDBへと移行するケースでよく使われています。
日本ではMySQLよりもPostgreSQLのほうが多く利用されているようです。

PostgreSQLは記型アーキテクチャでデータを管理してます。
追記型アーキテクチャとは、レコードの削除において、そのレコードを実削除するのではなく削除フラグをつけているだけということです。 更新の場合には、削除と挿入を同時に行っています。
安定性はありますが、論理行数に変化がなくてもファイルサイズが増加するので パフォーマンス劣化が起こります。これを回避するため定期的にバキューム*1と呼ばれる処理を行う必要があるので、 更新処理(UPDATE、DELETE)が多いアプリケーションの場合には配慮が必要です。

PostgreSQLは、商用DBから移行がしやすく安定性重視ですので、業務・勘定系のシステムに適していると言えるかもしれません。

  1. バキュームとは、追記型アーキテクチャで不要な領域を再利用またOSへ返却する処理のことです。

ページの先頭へ戻る