PostgreSQL とは

PostgreSQL(「Postgres」と略記されることもあります)は、世界で最も先進的なオープンソースのオブジェクト リレーショナル データベースです。エンタープライズ レベルのパフォーマンスを実現するよう設計されており、堅牢な機能と信頼性を重視しています。

Postgres は、カリフォルニア大学バークレー校の以前のデータベースである Ingres の進化形として 1986 年に実装が開始されました。1994 年以来、クエリとトランザクションに構造化クエリ言語(SQL)を使用しており、個人や企業の開発者のコミュニティによって継続的に更新されています。

SQL の開発と使用の長い歴史から、PostgreSQL は世界で最も人気のあるオープンソース データベースの一つとなり、すべての主要なクラウド ベンダーが PostgreSQL または PostgreSQL から派生したデータベースをサービスとして提供しています。


AlloyDBCloud SQL for PostgreSQL、Spanner など、Google Cloud の PostgreSQL データベースの無料トライアルにお申し込みください。

リレーショナル データベースとは

リレーショナル データベースでは、データを行と列からなる構造化テーブルに保存し、リンクされたデータに関する情報を複数のテーブルで維持します。

たとえば、あるリテールバンクには、顧客情報の行を含むテーブルが存在し、各行には顧客の名前、電話番号、住所が列として含まれる場合があります。取引情報を保存する 2 つ目のテーブルが存在する可能性もあります。リレーショナル データベースでは 2 つのテーブル間で行がリンクされるため、銀行はどの顧客がどの取引を行ったかを追跡できます。

PostgreSQL の基本

「クエリ」は、データベースから情報を要求する単一のオペレーションです。「トランザクション」とは、データベース内のデータを処理できる一連のオペレーションのことです。基本的なストレージ オペレーションは一般に「CRUD」と呼ばれます。これは、create(作成)、read(読み取り)、update(更新)、delete(削除)の頭文字をとったものです。

データベースからの情報の取得を最適化するために、PostgreSQL はインデックス(検索を高速化するために再編成されたテーブルの一部のコピー)を利用します。概念的には、これは書籍全体をスキャンしなくても項目をすぐに見つけることができる、書籍の巻末にある索引に似ています。

リレーショナル データベースである PostgreSQL は、「スキーマ」と呼ばれる正式な記述を使用して、含まれるデータの構造を記述します。一般的にスキーマはデータベース内のテーブル、インデックス、関数のコレクションであり、PostgreSQL は複数のスキーマをサポートしています。

データベースの専門家は、データとアプリケーション ユーザーによるデータの使用方法を最適に表すスキーマと一連のインデックスを設計する責任を負います。また、データ セキュリティとデータベースのスムーズな運用を維持するためのメンテナンスや運用タスクにも従事します。

PostgreSQL はオープンソースのデータベース

バークレーでの開発以降、PostgreSQL はオープンソースを貫いています。つまり、コードは表示、変更、配布に対して完全にオープンです。

デベロッパーは、オープンソース データベースをアプリケーションに使用できます。ライセンス費用は不要で、デプロイに高い柔軟性も備えています。これらのデータベースは、さまざまなクラウド プラットフォームと非クラウド プラットフォームで稼働しているからです。開発者のコミュニティはセキュリティと信頼性を向上させながら、ソフトウェアの改善とメンテナンスに貢献できます。

PostgreSQL の利点

近年、PostgreSQL は人気を高めており、世界で最も使用されているデータベースの 1 つとなっています。PostgreSQL には次のようなさまざまなメリットがあります。

  • 高い信頼性と安全性。PostgreSQL は高度にフォールト トレラントであり、データの耐久性を維持しながら稼働時間を最大化できます。強力な認証および認可モデルに加え、SSL を使用したエンドツーエンドのデータ暗号化など、いくつかの暗号化方式をサポートしています。
  • 高パフォーマンス。PostgreSQL は、構造化された方法でデータを保存するため、データを効率的に挿入、削除、変更できます。検索や結合も効率化されます。さらに、PostgreSQL は複数の CPU を並行してスケールできるため、クエリをさらに高速化できます。
  • 高い準拠性。SQL 標準への準拠性が高い PostgreSQL データベースは、アプリの構築にも既存のアプリの移行にも役立ちます。また、ACID に準拠しているため、ハードウェア、ソフトウェア、ネットワークが中断してもデータはの有効性は保たれます。
  • 優れた拡張性。PostgreSQL は、幅広いデータ型(高度なデータ型やユーザー作成の型を含む)、複数のコーディング言語、カスタム関数の作成機能をサポートしています。また、新しい機能を追加するための拡張メカニズムも備えています。
  • 簡単なモニタリング。PostgreSQL は、サーバー アクティビティの収集とレポートをサポートするために、いくつかの統計情報を提供しています。データベースのアクティビティをモニタリングし、パフォーマンスを分析するための外部ツールをご利用いただけます。

PostgreSQL の用途

PostgreSQL は柔軟性、信頼性、堅牢な機能セットにより、幅広いアプリケーションで使用されています。一般的なユースケースは次のとおりです。

安全性の高いアプリケーションで信頼性に優れ、監査可能性、コンプライアンス、データ保護で知られています。

PostgreSQL は何十億行にわたるクエリを処理でき、データ ウェアハウスやその他の分析システムをリアルタイムの運用データで強化するためによく使用されます。実際、いくつかの一般的なデータ ウェアハウス プロダクトが PostgreSQL から進化しました。

大量のトラフィックを処理できるスケーラブルで堅牢な PostgreSQL は、モバイル、ウェブ、ソーシャル メディア、その他の大容量アプリケーションに適しています。

PostgreSQL は地理データをサポートしているため、アプリケーションは地点間の距離を計算し、ナビゲーション、物流、農業のアプリケーションで地理空間計算を実行できます。

PostgreSQL は高性能なベクトル検索を提供しており、大規模言語モデル(LLM)への入力を提供するために広く使用され、多くの場合、検索拡張生成(RAG)によってこれらのモデルを拡張しています。デベロッパーの多くは PostgreSQL で構築することを選択します

PostgreSQL は、従来のアプリを最新のオープンソース プラットフォームに移行するために、多くの組織で使用されています。

PostgreSQL の比較

以降のセクションでは、PostgreSQL のエコシステムについて詳しく説明します。AlloyDB、Aurora、SQL Server、MySQL、Oracle との比較を行い、最後にフルマネージド PostgreSQL データベースとセルフマネージド PostgreSQL データベースの違いを確認します。

PostgreSQL との互換性の度合いが異なる複数の市販製品が販売されています。特によく利用されているのは、Google Cloud の AlloyDB と AWS の Aurora の 2 つです。

AlloyDB はあらゆるプラットフォームやクラウドで動作しますが、Aurora はアマゾン ウェブ サービス(AWS)でのみ動作します。また、AlloyDB は PostgreSQL に重点を置いており、Aurora は PostgreSQL エンジンと MySQL エンジンの両方を提供しています。

AlloyDB が企業に人気の選択肢となっている理由:

  • スタック全体で複数のレイヤのキャッシュを使用します(データベース レイヤでの超高速キャッシュなど)。
  • 分析クエリを高速化する組み込みのカラム型エンジンを搭載しています
  • ML 対応システムを使用して、バキューム、ストレージ、メモリ管理などの管理タスクを簡素化します。
  • 高性能なベクトル検索、ベクトル エンベディング、データベース内での自然言語サポートを備えた生成 AI アプリを構築するためのプラットフォームである AlloyDB AI が含まれています。
  • 従量課金制のストレージを提供して I/O 料金を不要とするなど、透明性が高く予測可能な料金設定を重視しています。

PostgreSQL はほとんどのオペレーティング システムで動作するオープンソースのデータベースですが、SQL Server は Microsoft Windows と Linux で動作する商用プロダクトです。どちらもマネージド クラウド サービスとして多くのベンダーから提供されています。

どちらのシステムにも共通するコア機能が数多くありますが、いくつかの違いもあります。PostgreSQL の主な利点は、同時実行処理にマルチバージョン同時実行制御(MVCC)を使用しているため、ほぼデッドロックなしで高いトランザクション レートを処理できることです。SQL Server は、高いパフォーマンスとインメモリ データベース機能で知られています。これらの機能は AlloyDB でも提供されます。

詳細な比較については、PostgreSQL と SQL Server をご覧ください。

MySQL は SQL ベースのリレーショナル データベース、PostgreSQL はオブジェクト リレーショナル データベースです。どちらもオープンソースですが、PostgreSQL は商用配布が可能なライセンス方式に準拠しています。MySQL オープンソース プロジェクトは、Oracle がスポンサーとなっています。

PostgreSQL はプロセスを追加することで拡張されます。この方法は以前から、信頼性の高いアプリケーションにとって優れたアプローチです。PostgreSQL の拡張メカニズムにより、PostgreSQL はコミュニティ貢献のプラットフォームとして広く普及しています。

MySQL はスレッドを追加することでスケーリングします。これは通常、小規模でリソースが少ないアプリケーションに適しています。

多くの場合、個人の好みと、対応可能な熟練した開発者の経験によってどちらを選択するかが決まります。

PostgreSQL と MySQL の技術的な違いは次のとおりです。

PostgreSQL

  • 複雑なデータ型と拡張メカニズムをサポート
  • MVCC をサポートしており、デッドロックをほとんど発生させずにデータの変更が可能
  • 拡張性に優れた幅広いデータ型をサポート
  • B-Tree、HASH、GiST、GIN などの豊富なインデックス タイプに対応
  • ガベージ コレクションの VACUUM プロセスを実装

MySQL

  • 従来のリレーショナル データベースのコンセプトに重点を置く
  • ストレージ エンジンに応じて MVCC をサポート
  • データ型の標準的なセットをサポート
  • 提供されるインデックスのセットが限定的
  • 専用のパージ スレッドを使用

PostgreSQL と Oracle はどちらも、SQL をサポートし、同等の手続き型言語(Oracle の場合は PL/SQL)を使用する一般的なリレーショナル データベースです。どちらもスケーラビリティとセキュリティの面で高く評価されています。

Oracle は、あらゆる規模の企業でミッション クリティカルなアプリケーションを推進するために使用されており、その可用性とクラスタリングなどの高度な機能のサポートで知られています。

PostgreSQL は障害復旧、高パフォーマンス、組み込みのレプリケーションなど、Oracle と同様の特長と機能を備えています。企業は、Oracle に代わる存在として、オープンで費用対効果の高い PostgreSQL を選んでいます。

他のデータベースと同様に、セルフマネージングにはチーム内の技術的な経験が必要です。これには、アーキテクチャの構成とメンテナンス、ジョブのスケーリング、一般的なデータベース管理スキル(アップグレード、バックアップ、セキュリティ メンテナンス、障害復旧、パッチのインストールの実施など)に関する知識が含まれます。アプリケーションに集中できるように、フルマネージド データベースを選択する開発チームが増えています。

フルマネージド データベース:

  • 試しやすく、使いやすい
  • シンプルに、または自動でスケーリング
  • 自動バックアップとアップグレードを提供
  • 組み込みの高可用性と障害復旧を提供

ただし、アプリケーション固有のニーズによりデータベース環境を完全に制御する必要がある場合は、セルフマネージド データベースで柔軟に対応できます。

PostgreSQL 拡張機能のサポート

拡張機能を使用すると、特定の要件に合わせてデータベースの機能を拡張、カスタマイズできます。PostgreSQL は包括的な拡張機能サポートを提供しており、拡張機能は外部で開発されたものも含め、組み込み関数と同じように動作します。

よく使用される拡張機能は次のとおりです。

  • PostGIS。地理空間データの保存、インデックス登録、クエリをサポートします。ナビゲーションなどのさまざまな地理空間アプリケーションに使用されます。
  • pgvector。ベクトルの保存、インデックス作成、クエリを行い、ベクトル類似性検索を実行できます。生成 AI と自然言語処理に使用されます。
  • pglogical。論理レプリケーションを使用してデータを確実に複製します。PostgreSQL データベース間のレプリケーションに使用され、テーブルレベルのきめ細かいレプリケーションをサポートします。

PostgreSQL のデータ型

PostgreSQL は、基本的なデータ型と、他のデータベースでは一般的に見られない高度なデータ型(ブール値、数値、整数、タイムスタンプ、配列など)の両方をサポートしています。デベロッパーは独自のデータ型を作成することもできます。

PostgreSQL の対応言語

デフォルトの手続き型言語は pgSQL(PL/pgSQL)の拡張機能であり、標準のディストリビューションには Tcl、Perl、Python の手続き型言語拡張機能が含まれています(PL/Tcl、PL/Perl、PL/Python と表記)。これらの読み込み可能な手続き型言語により、コーディング言語を使用して関数を作成し、手順をトリガーできます。

拡張機能では、Java、Ruby、C、C++、Delphi、JavaScript などの多くの言語がサポートされています。

PostgreSQL では、データベースを再コンパイルすることなく複数の言語でコーディングできることが、デベロッパーにとっての主なメリットです。

PostgreSQL ACID に準拠していますか?

はい。PostgreSQL は 2001 年から ACID に準拠しています。

ACID(アトミック性、整合性、独立性、耐久性)は、トランザクション データベースがデータの有効性をどのように確保するかを表す一連のプロパティです。ACID コンプライアンスは、ネットワーク障害やハードウェア障害が発生した場合でもデータ品質を保証し、データの損失や破損なしに読み取りと書き込みを同時に行えるようにします。これらの原則は、金融や医療など、多くの業界での活用において非常に重要です。

たとえば、バンキング アプリケーションで、データベース内の 2 つの口座間で残高を移行するとします。トランザクションの途中でサービス停止や障害が発生した場合は、ACID 準拠のデータベースにより、金銭が消失したり、複数回入金されたりすることはなく、口座残高は常に有効なままです。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud