第1回 PostgreSQLの今を知る
SRA OSS, Inc. 日本支社
稲葉 香理
PostgreSQL とは
PostgreSQL は、オープンソースのリレーショナルデータベースです。最近では、さまざまなところで利用されるようになっていますので、ご存知の方も多いことと思います。 商用データベースに匹敵する本格的な機能とオープンソースならではの利用の柔軟度が魅力のデータベースソフトウェアです。
PostgreSQL の開発
PostgreSQL は、PostgreSQL Global Development Group というオープンソースコミュニティによって開発されています。 商用のソフトウェアや一部のオープンソースのソフトウェアではベンダ主導の開発が行われていますが、様々な国の様々な背景を持った開発者が議論を公開しながら開発することで透明性の高い開発が行われています。 開発の意思決定は多数いる開発者の中の数名のコアメンバーによって行われています。 日本からも、企業や個人を含め開発者が参加しており、その成果として、古くは日本語対応に始まり、ODBC ドライバ開発、Windows 対応、再帰 SQL 開発(SQL 機能拡張の 1 つ)などがあります。最近は日本での利用が増えたことから開発者も増加傾向にあります。
PostgreSQL のステークホルダー
PostgreSQL に関するステークホルダー(利害関係者)は、コミュニティ(開発や普及活動を行う)、企業(関連するサービスを提供する)、ユーザ(ソフトウェアを利用する)に分けられます。
コミュニティは、企業やユーザから開発資金や開発そのものの提供を受けて開発活動を行いその成果を企業やユーザに提供しています。 サポートなどの関連するサービスを提供する企業は、コミュニティから提供されるソフトウェアを利用して対価を得てユーザにサービスを提供しています。 ユーザは、コミュニティから提供されるソフトウェアを利用、サービスは企業から受けています。
開発コミュニティは1つですが、サービスを提供する企業は複数、ユーザはそれ以上の数がいるという構造になっています。
一般に商用のソフトウェアのステークホルダは、企業←→ユーザ となります。ソフトウェアもサービスも提供元は1つの企業であり、企業とユーザの数の関係は 1:N となります。
PostgreSQL は、1 つのソフトウェアに対してサービスを提供する企業が複数あるという点からユーザの選択肢が広がること、ユーザがソフトウェアを提供される立場だけでなく、開発にも参画できる点などでソフトウェアの利用に対してユーザの自由度が高まると言えるでしょう。
PostgreSQL の利用状況
PostgreSQL は自由にダウンロード・複製して利用できるため正確な利用数は把握できませんが、さまざまなリサーチ結果などから見える傾向について紹介します。
まず、日本における RDBMS の市場全体から見てみましょう。RDBMS は、OS 別に見るとUNIX、Windows、Linux の順に利用台数が多く、近年の傾向として UNIX が減少傾向、Linux が上昇傾向にあります。
UNIX で はOracle Database が、Windows では Microsoft SQL Server がそれぞれ大きなシェアを持っています。 Linux では、UNIX 同様 Oracle Database が高いシェアを持っていますが、UNIX ほどではなく、オープンソースの RDBMS のシェアが比較的高い傾向にあります。
オープンソースの RDBMS では、PostgreSQL と MySQL がほぼ同程度のシェアです。このことから、Linux の利用拡大に伴い PostgreSQL の市場は拡大傾向にあると言えます。
また、PostgreSQL は 2005 年に Windows プラットフォームに正式対応し、近年 Windows での利用も増加しています。 SRA OSS, Inc.日本支社 が販売する PostgreSQLをベースにしたPowerGresでは、Windows 向けライセンスが Linux 向けよりも 10 倍近い販売実績があることからも、今後 Windows での PostgreSQL の利用も拡大すると考えられます。
PostgreSQL の成長と改善の歴史
PostgreSQL は年に約 1 回のメジャーバージョンアップにより機能の追加を行っています。ここでは、ここ数年の大きな機能追加や改善を見ることで、PostgreSQL の進化を紹介します。 下記は、PostgreSQL のバージョンとリリース年月、その際の主な変更点をまとめたものです。
ver. | リリース | 変更点 |
---|---|---|
7.4 | 2003年 11月 | 自動バキューム(運)、IPv6対応(機) |
8.0 | 2005年 1月 | PITR(機)(頼)、テーブルスペース(機)(性)、Windows対応(機) |
8.1 | 2005年 11月 | SMPにおける性能向上(性)、2相コミット(機) |
8.2 | 2006年 12月 | ウォームスタンバイ(頼)、GIN索引(機)、性能向上(性) |
8.3 | 2008年 2月 | HOT(性)、全文検索(機)、JIS2004対応(機)、XMLデータ型(機) |
8.4 | 2009年 7月 | Window関数(S)、再帰SQL(S)、大規模対応(機)、運用性向上(運) |
9.0 | 2010年 9月 | レプリケーション(機)、一括権限変更(運)、列/条件トリガ(S) |
(運):運用性の向上、(機):機能追加、(頼):信頼性向上の機能、(性):性能向上、(S):SQL拡張
7.x ごろまでは、本格的 RDBMS に向けて、不足している分の機能の実装が中心に行われていました。また、8.0 以降ではより大規模なシステムで利用するために必要な機能の実装や、性能向上、運用性向上のための改善で多数の改善が行われました。 さらに、最新(編集注:2011年4月当時)の 9.0 ではレプリケーションが採用され、「大規模対応し、かつ運用しやすい」データベースへの道筋が垣間見えます。
(2009年9月16日公開 / gihyo.jp にて)
(2011年4月17日更新)