中山 康弘(なかやまやすひろ)
株式会社DTS所属

 前回は,IPythonを導入し,簡単なファイル管理のプログラムを作るところまで説明しました。今回はさらに踏み込んで,PostgreSQLを利用してデータベース・プログラミングにチャレンジしてみましょう。

 ここでは,SQLObjectというPythonのフレームワークを使います。SQLObjectを使うと,手軽にデータベースを扱うことができます。テーブルにid列が必須という制約がありますが,そうした規約を守っていれば,ほとんど設定無しでデータベースを取り扱うことができるので,小規模なプログラミングにはピッタリです。

 前回説明したUbuntuの「日本語ローカライズドDesktop CD」で起動した環境で,PostgreSQL 8.2本体,データベースへのコネクタ,SQLObjectフレームワークをそれぞれインストールします。コマンドは,以下のようになります。

sudo aptitude -y install postgresql-8.2 python-psycopg2 python-sqlobject

 CD起動の環境であれば,ちょっとした検証のためにパッケージをあれこれインストールしても,もともとのPCの環境へ影響を与えませんので,手軽に導入することができます。

 次に,PostgreSQLへ接続してみましょう(リスト1)。

sudo su postgres
psql postgres
リスト1●PostgreSQLに接続

 postgresユーザーにスイッチしてから,psqlでPostgreSQLに接続します。コマンドプロンプトが「postgres=#」となれば接続は成功です。さっそくSQLを発行して,sampledbデータベース,seisekiテーブル,gakkyuテーブルを作成します(リスト2)。

create database sampledb
\c sampledb
create table seiseki
(id serial, name text, kokugo integer, sugaku integer, eigo integer,
primary key (id));
create table gakkyu
(id serial, name text, gakunen text, kumi text,
primary key (id));
リスト2●データベースとテーブル(二つ)を作成する

 「CREATE TABLE」と表示されれば,テーブルの作成は成功です。作成したテーブルのスキーマを確認したい場合は,\d スキーマ名というコマンドを発行するとスキーマが表示されます(図1)。この時点ではまだ,テーブルにサンプル・データを入れる必要はありません。データは,後ほどプログラムでセットします。

図1●PostgreSQLに作成したテーブルのスキーマ情報(\記号は,シェル上ではバックスラッシュで表示される)
図1●PostgreSQLに作成したテーブルのスキーマ情報(\記号は,シェル上ではバックスラッシュで表示される)
[画像のクリックで拡大表示]

 もう一つ,データベースに接続するためのPostgreSQLユーザーを設定しておきましょう。す。

alter user postgres with password 'xxxxxx';

 と入力して(xxxxxxにはパスワードを入れる),GRANTと表示されれば成功です。\qでPostgreSQLを終了し,exitコマンドで元のコマンドプロンプトに戻りましょう。