PostgreSQL 15.2がリリース
The PostgreSQL Global Development Group は2023年2月9日に、オープンソースのデータベース管理システム(RDBMS)であるPostgreSQLの最新バージョンである「PostgreSQL 15.2」をリリースしたことを発表しました。
同時に、14.7、13.10、12.14、11.19 を含む、サポートされているすべてのバージョンのPostgreSQLの更新もリリースされました。これにより、脆弱性の解決と過去に報告された60を超えるバグの修正が行われています。
【参考】:PostgreSQL: PostgreSQL 15.2, 14.7, 13.10, 12.14, and 11.19 Released!
PostgreSQL 10はサポートを終了
今回のリリースでは、PostgreSQL 10に対する更新は行われていません。PostgreSQL 10の最終リリースは、2022年11月10日のアップデートのタイミングでした。以降、セキュリティとバグの修正が提供されません。
そのため、PostgreSQL 10を利用している場合、早めにアップグレードを検討することをおすすめします。
【参考】:PostgreSQL: PostgreSQL 15.1, 14.6, 13.9, 12.13, 11.18, and 10.23 Released!
PostgreSQLのバージョンアップ頻度
PostgreSQLは、約1年に1度、新機能を含むメジャーバージョンアップがリリースされます。メジャーバージョンアップでは、仕様の追加や変更、セキュリティ修正、バグ修正が行われます。メジャーバージョンアップは基本的に互換性がないため注意が必要です。
また、少なくとも3ヶ月ごとに1度のマイナーリリースが行われます。マイナーバージョンアップでは主にバグ修正が行われます。
【参考】:PostgreSQL: Roadmap
PostgreSQL 15の特徴とは
最も新しいメジャーバージョンアップは、2022年11月10日に行われたPostgreSQL 15.1のリリースです。PostgreSQL 15では、インメモリとディスク上のソートを改善し、ソートするデータ型によって25%から400%の速度向上が図られたほか、様々な機能が追加されました。
【参考】:PostgreSQL: PostgreSQL 15 Press Kit
「MERGE」コマンドへの対応
PostgreSQL 15では、INSERT、UPDATE、DELETE の操作を一つの文に含めることができる標準SQLの「MERGE」コマンドが追加されました。
PostgreSQL 14以前でも、登録しようとするデータがなければ登録、あれば更新するUPSERT機能はありましたが、MERGEコマンドの登場で、より柔軟な条件判定が可能となります。
【参考】:PostgreSQL: Documentation: 15: MERGE
正規表現のための関数の追加
PostgreSQL 15では、regexpcount()、 regexpinstr()、 regexplike()、regexpsubstr() が追加されました。これらは正規表現を利用するための新しい関数で、Oracleなど他のリレーショナルデータベース管理システムとの互換性を考慮して追加されたものです。
【参考】:PostgreSQL: Documentation: 15: 9.7. Pattern Matching
呼び出し元の権限を使用したビューの実行
PostgreSQL 15では、ビューにsecurity_invoker属性が追加されました。
security_invokerが設定されていないと、ビューの所有者の権限でクエリが実行されますが、security_invokerが設定されている場合、ビューの所有者ではなく、呼び出し元の権限を使用してビューを実行できます。
【参考】:PostgreSQL: Documentation: 15: CREATE VIEW
PostgreSQLとは
近年では、様々なリレーショナルデータベース管理システム(RDBMS)が実務で使用されています。例えば、Oracle Database・MySQL・Microsoft SQL Server・PostgrSQLなどが挙げられます。リレーショナルデータベース管理システムを使用すれば、膨大なデータを複数人で扱う場合でも安心して簡単に利用することが可能です。
ここでは、商用のデータベース製品と遜色がないほどに発展を遂げている、オープンソースのPostgreSQLの歴史や概要について詳しく紹介します。
PostgreSQLの歴史
PostgreSQLは、1986年頃に「POSTGRES」という名称で生まれました。カリフォルニア大学のMichael Stonebrakeが中心となり、主に研究開発を目的として開発が行われました。
POSTGRES の設計で、現在のPostgreSQLに継承されている機能もあります。例えば、複合型のサポートやユーザー定義ができる型などが挙げられます。POSTGRESでは、SQLというデータベース言語を使用するのではなく、「POSTQUEL」という言語で操作する仕様となっているのが特徴です。
【参考】:ERL-M87-13.pdf
POSTGRESは、カリフォルニア大学での開発が終了した後、Andrew YuとJolly Chenによって改良が行われました。これによりPOSTGRESでは、POSTQUELの言語に代わり、SQL言語が使用できるようになりました。また、ソースコードの整備も実施され、POSTGRESは1995年頃にPostgres95という名称で公開されています。
Andrew YuとJolly Chenが学生を卒業した後、現在のPostgreSQL開発チームへプロジェクトは継承されました。また、1996年頃にPostgres95という名称から、PostgreSQLという名称に変更され現在に至ります。
PostgreSQLが誕生した頃は、英語のみに対応していたため、日本人にとっては使いづらいというデメリットがありました。そこで、石井達夫氏によって日本語で使用するための機能が追加され、その後日本語以外にも中国語・韓国語など様々な言語で使用することが可能となりました。
PostgreSQLの下記のURLからダウンロードして、インストールすることができます。
【参考】:PostgreSQL: The world's most advanced open source database
PostgreSQLの概要
PostgreSQLは、データをテーブル形式で管理するリレーショナルデータベース管理システム(RDBMS)の1つです。PostgreSQLの読み方はポストグレスキューエルであり、「ポスグレ」と略称で呼ぶ方も少なくありません。
PostgreSQLはオープンソースのデータベースソフトウェアであり、全てのソースが公開されているため、無料で利用できます。また、ソフトウェアのライセンスの1つであるBSDライセンスを採用しているため、独自に機能の追加や改良を行っても公開義務は生じません。
PostgreSQLは、無料で利用できるというメリットだけではなく、商用で使用されているデータベース製品と遜色ないほどの性能と機能を兼ね備えています。そのため、近年ではコスト削減を目的に数多くのシステム開発に用いられており、データベース製品の中で世界4位の実績を誇ります。
今後も様々なエンジニアによって開発が重ねられ、人気は伸びていくことが予想されるでしょう。
【参考】:historical trend of the popularity ranking of database management systems
PostgreSQLの特徴
PostgreSQLは20年以上の歴史があり、オープンソースの人気なデータベースソフトウェアであることは理解できたでしょうか。ここでは、PostgreSQLの特徴について詳しく紹介します。
導入コストが低い
商用のデータベース製品と比較すると、PostgreSQLはオープンソースのデータベースソフトウェアであるため、導入コストが低いというメリットがあります。
もちろん商用のデータベース製品は高性能・高機能ではありますが、1CPUあたりの費用が高価であるなど、導入コストが高い傾向にあります。そのため、可能な限りコストを抑えたいと考えている方にとっては、PostgreSQLは魅力的なデータベースソフトウェアと言えるでしょう。
商用のデータベースに遜色ない機能
PostgreSQLはオープンソースのデータベースソフトウェアですが、データベースに必要不可欠な機能はきちんと備わっており、商用のデータベース製品に匹敵するほどの機能を保有しています。例えば、標準SQLに準拠していることや日本語に対応していること、複数のプラットフォームで利用できることなどが挙げられます。
また、PostgreSQLはパラレルクエリを採用しているのが特徴です。PostgreSQLでは、クエリの処理速度を早めるために、複数のCPUを使用するクエリプランを生成することができます。クエリとは、データの問い合わせや要求などを、定められた形式で文字として表現したものを指すことが多いです。
パラレルクエリを利用すれば、大量のデータ分析を行う場合でも、複数のCPUを使用して応答スピードを早めることが可能です。したがって、膨大なデータを扱う処理の場合でも、高いパフォーマンスを発揮することができます。
他のオープンソースソフトウェアと連携可能
PostgreSQLは、他の数多くのオープンソースソフトウェアと連携させることができます。システム連携を行えば、例えばクラスタリングやレプリケーションなどの可用性を向上させることが可能です。よって、高い可用性が要求される大規模システム開発でも、商用のデータベース製品と遜色ない性能を出力することができます。
連携できるオープンソースソフトウェアとして、pgpool-II・Slony-l・PGClusterなどが挙げられます。
またPostgreSQLでは、拡張モジュールであるPostGISを使用すれば、地理情報システム(GIS)のデータをデータベースに格納することが可能です。PostGISは、PostgreSQLとは独立して開発が行われています。またPostGISは、MySQLなどの他の商用のデータベース製品には適応していません。
このようにPostgreSQLには、地図検索システムにおいて豊富な実績があるという、他のデータベースにはない特徴があります。
企業が提供しているサポートがある
オープンソースのデータベースソフトウェアは、商用のデータベース製品と比較すると、メーカーが提供するサポートが受けにくいというデメリットがあります。しかしPostgreSQLの場合、アシスト社・サイオステクノロジー社・TIS社・日立ソリューションズ社などが提供しているサポートを利用することが可能です。
これらのサポートを活用すれば、商用のデータベース製品と同程度のサポートを受けることができます。例えば、PostgreSQLでシステムを構築している際に、トラブルや使い方に関する疑問があったときに問い合わせできるのは、実務で活用する上でメリットと言えるでしょう。
PostgreSQL・MySQL・Oracle Databaseの違い
ここでは、実務でよく使用されるデータベース製品であるPostgreSQL・MySQL・Oracleの違いについて詳しく紹介します。
まずPostgreSQLは、PostgreSQL Global Development Groupによって開発が行われてるオープンソースのデータベースソフトウェアです。
次にMySQLは、MySQL ABによって開発されましたが、現在ではOracle社が運営を行っています。MySQLは複数のストレージエンジンがあるため、使い方が簡単という特徴があります。
PostgreSQLのライセンスとは異なり、MySQLは細かな規約が定められているGPLライセンスを採用しているため、独自に機能の追加や改良を行って再頒布する場合には、規約に従わなければなりません。
また、PostgreSQLとMySQLでは派生されたデータベースソフトウェアが多数あります。例えばPostgreSQLの場合、EDB PostgreSQL・PowerGressなどがあります。一方MySQLの場合、Maria DB・Amazon Auroraなどが挙げられます。
そして、Oracle Databaseはオラクル社が開発している商用のデータベース製品であり、高機能・高性能で信頼性が高く、データベース製品の中で世界1位の実績を誇ります。
オラクル社の手厚いサポートを受けられるのが特徴ですが、ライセンス費用が他のデータベース製品と比較すると高い傾向にあります。
以上から、MySQLやOracle Databaseにも数多くのメリットがありますが、PostgreSQLは導入コストが低く導入しやすい点が大きな強みと言えるでしょう。
PostgreSQLは高品質のオープンソースのデータベースソフトウェア
これまでに、PostgreSQLの概要・特徴・MySQLやOracle Databaseとの違いについて解説しました。PostgreSQLは、オープンソースのデータベースソフトウェアであり、無料で利用可能です。他のオープンソースソフトウェアと連携できたり、企業が提供しているサポートを受けられたりするというメリットがあります。
MySQLやOracle Databaseと比較すると、機能性が劣る部分もありますが、導入コストが低い点が強みと言えるでしょう。また、PostgreSQLは日々改良が重ねられ、商用のデータベース製品と遜色ないレベルまで発展を遂げています。
システム開発でどのデータベースソフトウェアを使用するか迷われている場合には、目的や使い方を明確にして適切な製品を導入しましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから