PostgreSQLとは?特徴や最新バージョンの機能を初心者向けに解説
【2024年2月26日】バージョンについての情報を追記しました。
本記事では、PostgreSQLについて解説します。
プログラマー初心者やデータベースをこれから始めたい方に、PostgreSQLはどのような機能があり、どのような特徴があるのか、また最新バージョンはどのような機能が追加されたのかを初心者の方にも分かりやすく紹介していますので、ぜひ参考にしていただければ幸いです。
PostgreSQLとは
PostgreSQLは、データベースを管理する方式のひとつでオープンソースのリレーショナルデータベース管理システム「RDBMS」です。
「ポストグレスキューエル」と読み、「ポストグレエスキューエル」「ポスグレ」とも呼ばれます。
RDBMSとして基本的な機能を備えており、SQL言語を使いデータの登録・更新といったデータ操作やクエリ、サブクエリによるデータ検索機能、トリガー機能、バックアップやレプリケーションなどの障害回復機能、同時実行制御などに対応しています。
さらに、インデックスやデータ型、演算子、型変換などさまざまな要素のユーザー定義ができる拡張性を備えています。
また、RDBMSにオブジェクト指向概念を導入しており「ORDBMS」の代表的な製品でもあります。
JSONデータ型にも対応したことで、Webシステムなどのデータ交換が容易になり、さまざまなアプリケーションに容易に対応可能です。
PostgreSQLの特徴
- ライセンスのコストがかからない
- 日本語対応している
- 多くのプラットフォームをサポート
- 多機能かつ高性能である
PostgreSQLの特徴は上記3つです。
ここからそれぞれの特徴について詳しく解説していきます。
ライセンスのコストがかからない
PostgreSQLのライセンスは「PostgreSQL License」で、BSDライセンスやMITライセンスに類似しており、使いやすいライセンス形態になっています。
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
PostgresSQL License
BSDライセンスは、著作権表示と免責条項の明記すれば、再利用・再配布・改変が可能なもので、ライセンスを遵守すれば商用のプログラムにも利用できます。
他の有償版データベース管理システムを利用した場合、ライセンス費用は多大なものになります。
商用製品でトップシェアのOracleデータベースではEnterprise Processorで570万円、有償版MySQLのEnterprise版で60万円(4ソケット以下)の費用がかかります。
一方、PostgreSQLは商用製品「Oracle」と比較しても同等の機能・信頼性を有しており、商用目的でも無償で利用できます。また高額なサポート費用もかかりません。
日本語対応している
PostgreSQLの現時点でのバージョンは15.1で、十分な日本語環境を実現しています。
1998年バージョン6.4の初期からマルチバイト文字列に対応し、2008年バージョン8.3から「JIS X 2013(JIS2004)」対応することにより、日本語環境が整いました。
その後、2017年バージョン10で「ICUロケール/コレーション」がサポートされることにより日本語ソート機能が充実しました。
この恩恵は高く”かな漢字英数字”の文字列の日本語でのソート結果はかなり自然なソート結果を返してくれます。
※2023年9月14日、バージョン16 がリリースされました。
多くのプラットフォームをサポート
- Linuxなど主要なUNIX系OS
- Windows
- MacOS
などの多くのプラットフォームをサポートしています。
開発コミュニティーでは活発に開発が行われており、マルチコアサポートなど多様なアーキテクチャに対応しています。今もなお進化を続けています。
多機能かつ高性能である
オープンソースで無償利用できるPostgreSQLですが、PostgreSQLは
- トランザクション
- サブクエリ
- トリガ
- ストアドプロシージャ
など大規模商用データベースシステムの持つほとんどの機能を搭載しています。
また、ユーザ定義型、継承など、オブジェクト指向を取り入れています。RDBMSの中でもオブジェクト指向の概念を採用した代表的な製品です。
大規模システム向けには「テーブル・パーティショニング」「テーブル・スペース」などの機能が実装されています。
さらに、バージョン9.0以降、標準機能で「レプリケーション」をサポートしています。
PostgreSQLの基本機能
今回はその中でもメインの機能である、
- データベース管理
- パラレルクエリによる高速処理
- 他のオープンソースソフトウェアとの連携
の3つについて詳しく解説していきます。
データベース管理
データベース管理 アプリケーション | 利用形態 | ユーザインターフェイス | モード | 特徴 |
---|---|---|---|---|
psql | PostgreSQL付属 (PostgreSQLライセンス) | CUI | コンソール | コンソール型のツールでGUIツールが提供されていない環境でもこれさえあれば、ほぼすべて制御できます。 覚えておいて損はありません。データベース管理者であれば必須です。 商用データベースOracleのsqlplusと類似しています。 |
Pgadmin4 | オープンソース (PostgreSQLライセンス) | GUI | サーバモードと デスクトップモード | pythonで動作します。 サーバモードはWEBサーバにPgadmin4が稼働しておりクライアントはブラウザーでアクセスできます。 デスクトップモードはユーザが pgAdmin4をPCにインストールして利用するモードです。 Linuxや Windows、macOS 上で動作し、PostgreSQL 10 以降に対応しています。 |
phpPgAdmin | オープンソース | GUI | サーバモード | WEBサーバ上のPHPで動作します。 クライアントはブラウザーでアクセスできます。 各社レンタルサーバでも標準で実装されています。 |
A5 MkII | フリーウエアー | GUI | デスクトップモード | Windows系で有名なデータベース管理ツールです。 PostgresSQLも扱えます。 ER図、スキーマの定義表も出力できますので大変重宝です。 |
SI Object Browser | 商用 | GUI | デスクトップモード | Windows系商用で一番使いやすいDB管理ツールです。 PostgresSQLも扱えます。 A5と同様にER図、スキーマの定義表も出力できますので大変重宝です。 |
PostgreSQLの基本機能であるデータベース管理について、上記の一覧表にまとめました。
データベースとは、構造化した情報またはデータの組織的な集合でデータベース・オブジェクトの集まりです。このオブジェクトを操作するのに、PostgreSQLでは標準SQLに準拠したSQL言語で操作できます。データベース・オブジェクトの集まったものをスキーマといいます。スキーマにはテーブル、関数などが含まれます。
したがってデータベースシステムの階層は、サーバ→データベース→スキーマ→テーブル(や関数などの何らかのオブジェクト)となります。
またユーザーアクセス権の付与、データの定期的なバックアップおよびデータの復元、監視が必用です。これら全体を管理することがデータベース管理です。
管理するためにデータベースサーバに接続するアプリケーションはCUI(キャラクタ・ユーザ・インターフェース)、GUI(グラフィカル・ユーザ・インターフェース)とあります。
パラレルクエリによる高速処理
データベースは検索結果の高速性が重要なもののひとつにあげられます。
サーバーのリソース性能(メモリー、CPUコア数)を上げれば速度も向上しますが、PostgreSQL自体も高速化が随時行われています。その中でバージョン9.6 から、「パラレルクエリ」という機能が使えるようになりました。
PostgreSQLは、クエリの応答をより速くするために、複数のCPUを活用するクエリプランを生成できます。
多くのクエリではパラレルクエリを使用すると2倍以上速くなり、中には4倍かそれ以上に速くなるものもあります。大量のデータを参照する場合、結果を返す行が少ないクエリにおいて最大の効果を発揮します。
他のオープンソースソフトウェアとの連携
PostgreSQLは、他のオープンソースソフトウェアとの連携が豊富です。たとえば、「クラスタリング」や「レプリケーション」など可用性を高めるツールが利用できます。これにより、高可用性が求められる大規模システムでも対応可能です。
利用できるオープンソースソフトウェアとして、以下のようなアドオンソフトがあります。
- pgpool-II 負荷分散、レプリケーション機能を実装している
- pgAudit PostgreSQL 監査ロギングツール
- PostGIS 地理情報システム(GIS)のデータを扱える
PostGISは地図検索システムなどで豊富な実績があり、他のデータベースにはない大きな利点です。
最新バージョンPostgreSQLの機能
- Merge構文のサポート
- ロジカル(論理)レプリケーションの機能追加
最新バージョンのPostgreSQLの機能としては上記2つ。
ここからそれぞれの新機能について詳しく解説していきます
Merge構文のサポート
MERGE文は、バージョン15で実装されました。MERGE文はあるテーブルを別のテーブルにマージするために使用されます。
マージするデータの重複条件に応じてINSERT、UPDATE、DELETE時のアクションをSQL言語1文で書ける。アプリケーション側でロジックで処理していた部分をPostgresqlのSQL言語内で処理することが可能になります。
ロジカル(論理)レプリケーションの機能追加
ロジカルレプリケーションは PostgreSQL 10 より導入されたレプリケーションの機能です。
PostgresSQLでのロジカルレプリケーションはデータの論理的な変更情報をスタンバイサーバー(サブスクライバー)に送信し、データをデータベース単位、テーブル単位で複製できます。
サブクスクライバーで受信されたデータがなんらかの制約違反した場合は、レプリケーションが停止します。これを”コンフリクト”と呼び、処理を進めるためにはユーザ手動で原因を取り除き、操作する必要があります。
バージョン15ではコンフリクトに対処するための改良と自動無効化機能を導入されています。企業において論理レプリケーションの導入・運用の安定性が期待できます。
※2023年9月14日、バージョン16 がリリースされました。
https://www.postgresql.org/about/press/presskit16/ja/
機能追加・仕様変更をともなうメジャーバージョンアップとなります。
バージョン16の主なパフォーマンスの向上
・新しい問い合わせプランナが最適化されたことにより、FULL と RIGHT の JOIN を 問い合わせプランナが並列化 できるようになります。
・ COPY を使用した一括ロードが改善され、いくつかのテストでは最大 300 % の性能向上が確認されています。大量データの投入が必要な時に大幅な時間短縮になります。
・VACUUM 処理の改善によりテーブル全体を FREEZE する必要性が減少しています。
・論理レプリケーションの性能が向上しました。特定の条件下でバイナリ形式を使用して、テーブルの初期同期を高速化することができるようになりました。
・文字列のソート方法の規則を提供する 文字列の照合順序 の一般的なサポートが改善されました。
バージョン16の主な機能追加
・JSON_ARRAY()、JSON_ARRAYAGG()、IS JSON といった、コンストラクタや述語を含む SQL/JSON 標準の構文が追加された。
・psql の新しいコマンド \bindが実装されました。通常、bind変数はプログラムで扱いますが、コマンドラインのpsql で使えるようになった。
PostgreSQLを利用できるレンタルサーバー
レンタルサーバーは各社提供されており、PostgreSQLはMySQLとともにデフォルトで利用可能になっています。また各社WEB上のコントロールパネルで管理することが可能です。
Value Domainでは、以下のレンタルサーバーで使用目的により適切なサービスを選択できます。
ここからは、それぞれのレンタルサーバーの違いについてご紹介します。
コアサーバー
コアサーバーは、個人から法人・ビジネス用途まで使える高速・高品質レンタルサーバーです。
高性能サーバーを少人数で利用すること、および、独自の最適化によって、同価格帯のVPS/クラウドサービス以上の豊富なリソースが柔軟に使え、同じ価格でも、より大規模なサイト運用が可能となっており、個人から法人、ビジネス用途まで幅広く使えます。
バリューサーバー
バリューサーバーは、月額146円から使えて初心者にも優しい高機能レンタルサーバーです。
初めてサーバーを借りる初級者の方にも使いやすいコントロールパネルを搭載。
ドメインとサーバーがセットになった「まるっとプラン」もWEB公開におすすめです。
XREA
XREAは、高い自由度と圧倒的なコストパフォーマンスを無料から利用できます。
無料ながら、独自ドメインでの運営やSSL、データベース、CGI利用等、自由度の高さが特徴です。
無料の場合は広告が表示されますが、有料プランにすると、広告を外せます。
いずれもコンソールパネルからデータベースの作成、削除が可能で管理ツールにphpPgAdminが利用できます。現時点で実装されているPostgreSQLはバージョン14です。
PostgreSQLに関するQ&A
- PostgreSQLのおすすめバージョンは?
- PostgreSQLとMySQLとの違いは?
- PostgreSQLの対応OSは?
PostgreSQLのおすすめバージョンは?
Postgresqlの最新バージョンは16です。本記事でいろんなバージョン情報(9~16)を紹介しましたが、機能的にバージョン12以上をお勧めします。
Value DomainではPostgreSQLバージョン14が実装されていますので、ほぼ最新の機能が利用できます。
各バージョンのサポート期限(EOL=End Of Life)は以下の公式サイトで公開されています。
https://www.postgresql.org/support/versioning/
バージョン12は2024/11、14は2026/9までサポートされます。
2023年9月14日、バージョン16 がリリースされました。2024年2月8日現在、マイナーバージョン 16.2、15.6、14.11、13.14、12.18が利用できます。
PostgreSQLとMySQLとの違いは?
PostgreSQLはmySQLと並び人気が高いオープンソースデータベースです。
Postgresは、複雑なクエリや大規模なデータベースを扱うことができる機能豊富なデータベースです。大規模なデータベースの最適な無償のソリューションとして認知されているので商用のoracleの置き換えによく検討されます。
MySQLは、「速度と信頼性」に重点がおかれています。ウェブサイトやオンライントランザクションにはMySQLが適しています。
MySQLはPostgreSQLのような豊富な機能を欠いていますが、幅広いアプリケーション、特にWebアプリケーションとの相性は抜群です。
一般的なコンテンツ管理システムであるWordPress、Movable Type、JoomlaなどはMySQLに依存しているため、ウェブ上のあらゆる場所でMySQLが使用されています。
PostgreSQLの対応OSは?
- Linuxなど主要なUNIX系OS
- Windows
- MacOS
などの多くのプラットフォームをサポートしていることはもちろんですが、組み込み・制御機系の独自のプラットフォームにも実装されています。
まとめ:postgreSQLは無料で使える高機能データベース管理システム
PostgreSQLは、オープンソース系のデータベース管理システムで、商用目的でも無償で利用できます。大規模なデータ管理や、複雑なデータ操作を要する用途に向いています。
30年以上にわたってコミュニティーで開発が継続されており、フリーから企業の開発者も参加し、現在も進化を続けています。
また、数千万レコードのデータでも商用と同等に扱えることから商用のOracleからの置き換えも増えています。PostgreSQLの拡張性を利用したorafce機能(Oracle データベースに不足している一部の関数を Postgres で実装)というのすら用意されていますから。
PostgreSQLを触ってみたいと思われる方は、まずValue domainの無料版のレンタルサーバーXREAで試してみてはどうでしょうか。筆者も長年の無料版XREA、有償版XREAのユーザの一人です。
ドメインが実質0円(年間最大3,882円お得)になるサーバーセット割特典、
V2プランが初期費用無料・15%OFF(月額390円→331円)ブラックフライデーセールを展開中です。
最新のキャンペーンはこちらから
※ユーザーノートの記事は、弊社サービスをご利用のお客様に執筆いただいております。
医療メーカーで新素材研究開発後、電機メーカーで制御器系システム開発を経てIT系マルチエンジニアをしています。またデザイン思考を実践し、アート思考などのいろんな思考方法に興味があります。