オープンソースのデータベース管理システムの中でも人気が高い「PostgreSQL」。このPostgreSQLを使って,データベースの基本を学んでいこう。初回はPostgreSQLとは何かを紹介する。

 PostgreSQLは,オープンソースのリレーショナル・データベース管理システム(RDBMS)である。「ポストグレスキューエル」や「ポストグレス」と発音する。日本では「ぽすぐれ」と呼ばれることも多いようだ。

 PostgreSQLの特徴は,オープンソースのRDBMSでありながら有償のRDBMSに劣らない本格的な機能を備えていることである。そのため,学習用途から企業内のシステムまで,多岐に渡って利用されている。

 本連載では,「これからPostgreSQLに乗り換えようとしているデータベース経験者」だけでなく,「初めてデータベースに取り組む人」も読んでいただけるよう,PostgreSQLの基本から活用方法までを分かりやすく解説していく。PostgreSQLを実際に使いながら「データベースの基本」を学んでいこう。第1回は,PostgreSQLを知らない読者向けに,PostgreSQLの概要から解説しよう。

PostgreSQLの歴史

 PostgreSQLは,1973年にカリフォルニア大学バークレー校(UCB)のデータベース研究プロジェクトにより開発されたRDBMS「INGRES」が基になっている。INGRESは,Michael Stonebraker教授のグループにより,「Postgres」として引き続きUCBで開発される。

 その後,データベース研究プロジェクトは解散したが,プロジェクトに参加していた当時の大学院生らの手で「Postgres95」として開発は継続された。彼らの卒業に伴い,インターネット上のコミュニティがPostgres95の開発を引き継いだ。そして1996年に「PostgreSQL」という名称に変更された。

 INGRESの開発が始まった時期から数えると30年以上が経過しており,PostgreSQLは古い歴史を持ったRDBMSだと言える。

 現在,PostgreSQLの開発チームは,「PostgreSQL Global Development Group」という名称だ。開発チームは,開発方針を決定する開発者「コア・メンバー」と,機能を実装する開発者「ディベロッパ」で構成される。開発者は世界中にいるため,開発方針はすべてメーリング・リストを通じた議論により決定される。メーリング・リストは,開発者に限らずだれでも参加可能である。

 メーリング・リストの参加方法については,PostgreSQL Global Development Groupの公式サイト(http://www.postgresql.org/)を見てほしい(写真1)。

写真1●PostgreSQL Global Development 
Groupの公式サイト
写真1●PostgreSQL Global Development
Groupの公式サイト(http://www.postgresql.org/

PostgreSQLに関するさまざまな情報やドキュメントが掲載されている。

 公式サイトはすべて英語で書かれているため,気遅れしてしまうこともあるだろう。PostgreSQLに関する日本語の情報は,非営利団体「日本PostgreSQLユーザ会」*1のWebサイト( http://www.postgresql.jp/)を参照されたい(写真2)。日本PostgreSQLユーザ会は,PostgreSQL付属マニュアルの日本語訳の公開をはじめ,PostgreSQLに関するセミナーなどのイベントを多数実施している。

写真2●日本PostgreSQLユーザ会のWebサイト
写真2●日本PostgreSQLユーザ会のWebサイト(http://www.postgresql.jp/
日本語でPostgreSQLに関する情報が手に入る。

PostgreSQLの特徴

 冒頭でも述べたようにPostgreSQLは,有償のRDBMSに匹敵する機能を実装した本格派RDBMSだ。PostgreSQLの機能実装の歴史(表1)をみると,早い時期から重要な機能が多数組み込まれており,最近のバージョンではRDBMSに必要な機能がほぼそろったと言ってもよい。以下には,PostgreSQLの特筆すべき特徴をまとめた。

表1●PostgreSQLの各バージョンにおける主な新機能
表1●PostgreSQLの各バージョンにおける主な新機能
[画像のクリックで拡大表示]

(1)日本語対応の早さ

 PostgreSQLは,1998年に公開されたバージョン6.3から,日本語にも対応している。海外で開発されたソフトにありがちな「日本語を含むマルチバイト圏の言語が正しく扱えない」という問題に,早くから対処していたわけだ。

 このマルチバイト対応は,日本人開発者の石井達夫氏が行った。同氏はまた,雑誌や書籍,メーリング・リストなどのさまざまな媒体を通じた,日本語によるPostgreSQLの情報発信に貢献している。

(2)SQL文法の充実度が高い

 RDBMSのほとんとがデータベースの問い合わせ言語として「SQL」を採用している。SQLは国際標準化機構(ISO)やアメリカ規格協会(ANSI)で規格化されており,日本では日本規格協会(JIS)で定められた規格でもあることから,RDBMSの標準問い合わせ言語とみなせる。

 有償/無償を問わず主要なRDBMSのほとんどは,SQLを採用している。SQLを知っていれば,他のRDBMSでもその知識を流用できる。そのため,SQL文法の充実度が異種RDBMS間での移行のポイントになるケースが多い。

 PostgreSQLもSQLを採用している。具体的にはSQL92に準拠し,SQL99にも一部対応している。また,問い合わせクエリー内にさらに問い合わせクエリーが記述できる「サブクエリー」,データ間の整合性を自動的に保つ「外部キー」,データベース・サーバー内に関数を記述するプロシージャ言語「PL/pgSQL」などの機能が比較的早くから実装されている。他のオープンソースのRDBMSと比べると,機能の豊富さは際立っている。そのため,複数のテーブルを組み合わせて複雑なSQL文法を使いたいケースなどで多くの実績がある*2

(3)大規模向けの機能を備える

 オープンソースのRDBMSを選択する理由としてよくあるのは,「有償データベースを採用するほどのお金がない」ことだ。初期投資額を抑えて“スモール・スタート”したいWebシステムではよくある話である。こういった場合,コストのかからないオープンソースのRDBMSを選択せざるを得ない。ただ,ビジネスが成長してアクセス数が増えたときに,すぐ負荷に耐えられなくなってしまうようでは困る。安価ではありながらスケールアップに耐え得るRDBMSが求められるわけだ。

 PostgreSQLは最近,大規模システム向けの機能拡張がめざましい。データベースのデータを複数のディスクに分割して,ディスクI/Oの負荷軽減を図る「テーブル・スペース」や,1つのテーブルのデータ量が多くなると性能劣化が起きるため,テーブル内のレコードを擬似的に分割する「テーブル・パーティショニング」などの機能が既に実装されている。

(4)利用しやすいライセンス

 PostgreSQLでは,BSDライセンスが採用されている。BSDライセンスは,Linuxカーネルに代表されるGNU GPLに類似する。つまり,ソース・コードが公開されていて無償で利用できる点は同じだ。

 ただし,異なる点もある。GNU GPLでは,ソース・コードを改変して販売したりする場合には,改変後のソース・コードの公開が義務づけられる。BSDライセンスにはその義務はない。この違いは,ソース・コードを改変せずに利用する場合にはあまり影響がないだろう。しかし製品等に組み込むために改変が不可欠な場合などでは,大きな差異となる。

 また,BSDライセンスなら,PostgreSQLを改良したソフトのソース・コードを公開することなく,別の名前で販売できる。筆者が所属するSRA OSSでもこのライセンスを生かして,PostgreSQLを改良したものを「PowerGres」という名前で有償RDBMSとして販売している。

(5)有償サポートの選択肢が多い

 RDBMSは,多くのシステムの核になるソフトだ。そのため,企業で利用することを考えれば,サポートは重要である。PostgreSQLのサポート・サービスは,いくつかのベンダーが提供している。それらの中から,希望する内容に合致するサポート・サービスを受けるのがよいだろう。

PostgreSQLの利用事例

この先は会員の登録が必要です。有料会員(月額プラン)は登録月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら