新規データベースを作成してみましょう。
データベースを選択して右クリックをして表示されたコンテキストメニューの中より
「新しいデータベース」を選択してください。
ウィザードが表示されますので、作成するデータベースの名前を入力してください。(ここではsampleとしてます。)
pgadmin3の画面に戻るとデータベースの項目部分に先ほど作成したデータベースが追加されています。
つぎにテーブルを作成してみましょう。
pgadmin3の画面よりスキーマの部分を選択してテーブルを選んでください。
そこで右クリックをしてコンテキストメニューより「新しいテーブル」を選択するとウィザードが表示されます。
以下のような内容でテーブル名を作成してみましょう。
プロパティにある名前の部分にUSERINFOと入力します。次に列のタブを選択してカラムを追加してください。
※pgadmin3では、varcharはcharacter varyingとなっています。
同様に制約のタブを選択してIDに"主キー"を設定してください。これでテーブル作成は完了です。
次にユーザーtaroが作成したテーブルへアクセスできるようにするために権限を変更します。
USERINFOを選択して右クリックをしてコンテキストメニューの中よりプロパティを選んでください。
次に権限のタブを選択してください。
SELECT権限にチェックをつけて「追加/変更」を押してください。
これでユーザーtaroがUSERINFOテーブルに対してSELECT権限が付与されました。
このようにpgadmin3のGUIを使うことでデータベースの作成およびテーブル作成が簡単にできるようなります。
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は、早い段階でトリガーやストアドプロシージャなど商用RDBが持つ高機能を備えていました。
また標準SQLをほぼサポートしているため、商用RDBからオープンソースRDBへと移行するケースでよく使われています。
日本ではMySQLよりもPostgreSQLのほうが多く利用されているようです。
PostgreSQLは記型アーキテクチャでデータを管理してます。
追記型アーキテクチャとは、レコードの削除において、そのレコードを実削除するのではなく削除フラグをつけているだけということです。
更新の場合には、削除と挿入を同時に行っています。
安定性はありますが、論理行数に変化がなくてもファイルサイズが増加するので
パフォーマンス劣化が起こります。これを回避するため定期的にバキューム*1と呼ばれる処理を行う必要があるので、
更新処理(UPDATE、DELETE)が多いアプリケーションの場合には配慮が必要です。
PostgreSQLは、商用DBから移行がしやすく安定性重視ですので、業務・勘定系のシステムに適していると言えるかもしれません。