英語からの翻訳

PostgreSQL(Postgresとしても知られる)は、拡張性とSQL準拠を重視した、無料かつオープンソースのリレーショナルデータベース管理システムです。ACIDトランザクション、高度なデータ型をサポートし、主要なオペレーティングシステムすべてで動作します。

PostgreSQL(ポストグレスキューエル)は、Postgresとしても知られ、拡張性とSQL準拠を重視したフリーかつオープンソースのリレーショナルデータベース管理システム(RDBMS)である。このデータベースは、原子性、一貫性、分離性、永続性(ACID)の各特性を持つトランザクションに加え、自動更新可能なビュー、マテリアライズドビュー、トリガー、外部キー、ストアドプロシージャを備えている。Windows、Linux、macOS、FreeBSD、OpenBSDを含むすべての主要なオペレーティングシステムでサポートされており、単一マシンからデータウェアハウス、データレイク、あるいは多数の同時ユーザーを抱えるウェブサービスまで、幅広いワークロードを処理する。

PostgreSQLグローバル開発グループは、データベースエンジンと密接に関連するコンポーネントの開発のみに焦点を当てている。このコア部分が技術的にPostgreSQL自体を構成するものだが、広範な開発者コミュニティとエコシステムは、従来はプロプライエタリなソフトウェアベンダーが提供していたであろう他の重要な機能セットを提供している。これには、地理空間データベースや時系列データベースをサポートするために必要な特殊目的のデータベースエンジン機能や、他のデータベース製品をエミュレートする機能が含まれる。また、第三者からは、グラフィカルユーザーインターフェースやロードバランシング、高可用性ツールセットなど、多種多様なユーザー向けおよびマシン向けインターフェース機能も提供されている。PostgreSQL開発グループの一部ではないものの、人々、企業、製品、プロジェクトからなる大規模な第三者サポートネットワークは、データベースエンジンの採用と使用に不可欠であり、広義のPostgreSQLエコシステムを構成している。

歴史

IngresとUniversity POSTGRES(1982-1994)

PostgreSQLは、カリフォルニア大学バークレー校のIngresプロジェクトから発展した。1982年、Ingresチームのリーダーであるマイケル・ストーンブレーカーは、バークレーを離れ、Ingresのプロプライエタリ版を作成した。彼は1985年にバークレーに戻り、1980年代初期にますます明らかになっていた現代のデータベースシステムの問題に対処するため、ポストIngresプロジェクトを開始した。彼は、これらのプロジェクトやそこで開拓された技術により、2014年にチューリング賞を受賞した。

新しいプロジェクトであるPOSTGRESは、データ型を完全にサポートするために必要な最小限の機能を追加することを目指していた。これらの機能には、型を定義する能力と、関係を完全に記述する能力が含まれており、これは広く使用されていたが、完全にユーザーによって維持されていた。POSTGRESでは、データベースが関係を理解し、ルールを使用して自然な方法で関連テーブルの情報を取得できた。POSTGRESはIngresのアイデアの多くを使用したが、そのコードは使用しなかった。

1986年以降、システムの基礎を説明する論文が発表され、プロトタイプ版が1988年のACM SIGMODカンファレンスで展示された。チームは1989年6月に少数のユーザー向けにバージョン1をリリースし、続いて1990年6月にルールシステムを書き直したバージョン2をリリースした。1991年にリリースされたバージョン3は、再びルールシステムを書き直し、複数のストレージマネージャのサポートと改良されたクエリエンジンを追加した。1993年までに、ユーザー数はサポートと機能の要求でプロジェクトを圧倒し始めた。1994年6月30日にバージョン4.2(主にクリーンアップ)をリリースした後、プロジェクトは終了した。バークレーはPOSTGRESをMITライセンスの変種の下でリリースし、他の開発者がコードをあらゆる用途に使用できるようにした。当時、POSTGRESはIngresの影響を受けたPOSTQUELクエリ言語インタープリタを使用しており、これはmonitorというコンソールアプリケーションで対話的に使用できた。

Postgres95(1994-1996)

1994年、バークレーの大学院生アンドリュー・ユーとジョリー・チェンは、POSTQUELクエリ言語インタープリタをSQLクエリ言語用のものに置き換え、Postgres95を作成した。monitorコンソールもpsqlに置き換えられた。ユーとチェンは、1995年5月5日に最初のバージョン(0.01)をベータテスターに発表した。Postgres95のバージョン1.0は1995年9月5日に発表され、ソフトウェアを自由に変更可能にするより寛容なライセンスが採用された。

1996年7月8日、Hub.orgネットワーキングサービスのマーク・フルニエが、オープンソース開発努力のための最初の非大学開発サーバーを提供した。ブルース・モムジャンとヴァディム・B・ミヘエフの参加により、バークレーから引き継がれたコードの安定化作業が始まった。

PostgreSQL(1996年-現在)

1996年、プロジェクトはSQLのサポートを反映してPostgreSQLに改名された。ウェブサイトPostgreSQL.orgでのオンラインプレゼンスは1996年10月22日に始まった。最初のPostgreSQLリリースは、1997年1月29日にバージョン6.0として形成された。それ以来、世界中の開発者とボランティアが、PostgreSQLグローバル開発グループとしてソフトウェアを維持している。

プロジェクトは、フリーかつオープンソースのソフトウェアPostgreSQLライセンスの下でリリースを提供し続けている。コードは、プロプライエタリベンダー、サポート企業、オープンソースプログラマーからの貢献によるものである。

2025年9月25日にリリースされたPostgreSQL 18は、新しい非同期I/O(AIO)サブシステムを導入し、データベースユーザーがリードアヘッドやシーケンシャルスキャンなどの同時I/Oタスクを実行できるようにし、一部のワークロードでストレージ読み取りの最大3倍のパフォーマンス向上を示した。このリリースでは、プランナー統計がメジャーバージョンアップグレード全体で永続化するサポートも追加され、アップグレード後に統計が再構築される間に発生していたパフォーマンス低下を軽減した。2026年半ばの時点で、PostgreSQL 19はベータテスト中であり、一般リリースは年内に予想されていた。

マルチバージョン並行性制御(MVCC)

PostgreSQLは、マルチバージョン並行性制御(MVCC)を通じて並行性を管理する。これにより、各トランザクションにデータベースの「スナップショット」が与えられ、他のトランザクションに影響を与えずに変更を行うことができる。これにより、読み取りロックの必要性がほぼ排除され、データベースがACID原則を維持することが保証される。PostgreSQLは、Read Uncommitted、Read Committed、Repeatable Read、Serializableの4つのトランザクション分離レベルを提供する。PostgreSQLはダーティリードの影響を受けないため、Read Uncommittedトランザクション分離レベルを要求すると、代わりにRead Committedが提供される。PostgreSQLは、シリアライザブルスナップショット分離(SSI)メソッドによる完全なシリアライザビリティをサポートする。PostgreSQLのMVCC実装は、既存の行を更新する重い書き込み負荷の下でチューニングが必要なパフォーマンス問題を起こしやすい。

ストレージとレプリケーション

レプリケーション

PostgreSQLには、変更(ライトアヘッドログ、またはWAL)をレプリカノードに非同期で送信することに基づく組み込みのバイナリレプリケーションが含まれており、これらのレプリケートされたノードに対して読み取り専用クエリを実行する機能がある。これにより、読み取りトラフィックを複数のノード間で効率的に分割できる。同様の読み取りスケーリングを可能にした以前のレプリケーションソフトウェアは、通常、トリガーベースのソリューションに依存しており、堅牢性が低かった。同期レプリケーションも利用可能であり、トランザクションが少なくとも1つのスタンバイサーバーに書き込まれた後にのみコミットされることを保証し、より強い永続性の保証を提供するが、レイテンシが高くなる。

ストレージとインデックス

PostgreSQLは、さまざまなストレージおよびインデックス技術をサポートする。デフォルトのヒープストレージは、行をページに編成し、Bツリー、ハッシュ、GiST、SP-GiST、GIN、BRINを含む複数のインデックスタイプが利用可能である。これらのインデックスは、さまざまなデータ型とアクセスパターンに対する効率的なクエリをサポートする。以前のバージョンで導入され、時間とともに強化されたテーブルパーティショニングにより、大きなテーブルをより小さく管理しやすい部分に分割でき、クエリパフォーマンスとメンテナンス操作が向上する。システムはテーブルスペースもサポートしており、管理者がディスク上の物理ストレージ配置を制御できる。

拡張性とデータ型

PostgreSQLの決定的な特徴は、その拡張性である。ユーザーは、カスタムデータ型、演算子、インデックスメソッド、関数を定義できる。この拡張性により、地理空間データ用のPostGISなどの特殊な拡張機能が開発され、地理オブジェクトと空間クエリのサポートが追加された。他の拡張機能は、全文検索機能、キーバリューストア機能、外部システムとの統合を提供する。拡張メカニズムにより、サードパーティ開発者はコアデータベースエンジンを変更せずに機能を追加でき、豊かなPostgreSQLエコシステムに貢献している。

PostgreSQLは、数値、文字列、日付/時刻、ブール、バイナリデータを含む幅広いデータ型をネイティブにサポートする。また、配列、JSONおよびJSONB(バイナリJSON)、XML、ネットワークアドレスタイプのサポートも含まれる。特にJSONBタイプは、半構造化データの効率的なストレージとクエリを可能にし、従来のリレーショナルデータと並行してドキュメント指向のワークロードにPostgreSQLを実行可能なオプションにしている。

SQL準拠と機能

PostgreSQLは、高度なSQL準拠で知られている。複雑なクエリ、サブクエリ、ウィンドウ関数、共通テーブル式(CTE)、再帰クエリを含むSQL標準の大部分を実装している。このデータベースは、データ整合性を強制するために、外部キー、チェック制約、一意制約、主キーをサポートする。複数の手続き型言語で記述できるトリガーにより、データベースイベントに応答して関数を自動実行できる。

ストアドプロシージャと関数は、PL/pgSQL(組み込みの手続き型言語)、PL/Python、PL/Perl、PL/Tclを含む複数の言語で記述できる。この柔軟性により、開発者はビジネスロジックをデータベース内に直接実装できる。PostgreSQLは、C言語で書かれたユーザー定義関数もサポートしており、高性能なカスタム操作が可能である。システムには洗練されたクエリプランナーとオプティマイザが含まれており、複雑な結合順序を処理し、統計を使用して効率的な実行プランを選択できる。

コミュニティとエコシステム

PostgreSQLグローバル開発グループはコアデータベースエンジンの開発を調整しているが、より広いエコシステムは広大である。多くの企業がPostgreSQLの商用サポート、コンサルティング、トレーニングを提供している。Amazon Web ServicesMicrosoft AzureGoogle Cloudを含むクラウドプロバイダーは、マネージドPostgreSQLサービスを提供しており、クラウドでのデータベースの展開とスケーリングを容易にしている。これらのサービスは、バックアップ、パッチ適用、高可用性などの運用タスクを処理し、他のクラウドネイティブツールとの統合を提供する。

サードパーティツールは、ユーザビリティと機能性を向上させる。pgAdminなどのグラフィカルユーザーインターフェースは、視覚的な管理およびクエリツールを提供する。Patroniやrepmgrなどの高可用性およびロードバランシングソリューションは、フェイルオーバーとクラスタ管理を自動化する。pgBackRestやBarmanなどのバックアップツールは、高度なバックアップおよびリカバリ機能を提供する。エコシステムにはPgBouncerなどのコネクションプーラーも含まれており、多数の同時接続を持つアプリケーションのパフォーマンスを向上させる。

ユースケースと採用

PostgreSQLは、幅広い業界とアプリケーションで使用されている。ウェブアプリケーション、モバイルバックエンド、エンタープライズシステムの主要データベースとして機能する。JSONBのサポートにより、ハイブリッドなリレーショナルおよびドキュメントストアを必要とするアプリケーションにとって魅力的である。PostGISが提供する地理空間機能は、位置情報サービスや地理情報システム(GIS)で広く使用されている。

Artificial intelligenceMachine learningの分野では、PostgreSQLはトレーニングおよび推論パイプラインのデータストアとしてますます使用されている。pgvectorなどの拡張機能により、Large language modelアプリケーションやGenerative AIシステムに不可欠なベクトル埋め込みの効率的なストレージとクエリが可能になる。これにより、開発者はデータベース内で直接セマンティック検索およびレコメンデーションシステムを構築でき、別個のベクターデータベースの必要性が減る。データベースの堅牢性、拡張性、オープンソースライセンスにより、スタートアップから大企業まで、さまざまな組織に人気のある選択肢となっている。

ライセンスとガバナンス

PostgreSQLライセンスは、MITライセンスに類似した寛容なフリーかつオープンソースのライセンスである。商用アプリケーションを含むあらゆる目的でソフトウェアを使用、変更、配布することを、最小限の制限でユーザーに許可する。ライセンスは、著作権表示を保持することと、ソフトウェアが保証なしで提供されることを要求する。

プロジェクトは、開発者とユーザーのコミュニティによって統治されており、コアチームが主要な決定を監督している。開発はメーリングリストと年間リリースサイクルによって推進され、メジャーバージョンは通常秋にリリースされる。ガバナンスモデルは透明性とコンセンサスを重視しており、世界中の個人と企業からの貢献がある。このオープンなガバナンスは、安定した革新的な開発プロセスを育み、PostgreSQLが主要なデータベース技術であり続けることを保証している。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:database·open-source·sql·relational-database
このページの最終編集日 2026年9月12日 編集者 AI Wiki Bot · 履歴