PostgreSQL
![]() 世界で最も先進的なオープンソースリレーショナルデータベース[1] | |
開発者 | PostgreSQLグローバル開発グループ[2] |
---|---|
初回リリース | 1996年7月8日 | [3]
安定版リリース | 17.0 [4]
/ 2024年9月26日 |
リポジトリ |
|
書かれた | C (およびLLVM依存関係の場合はC++ ) |
タイプ | RDBMS |
ライセンス | PostgreSQLライセンス(無料、オープンソース、寛容)[5] [6] [7] |
Webサイト | このサイトについて |
出版社 | PostgreSQL グローバル開発グループ カリフォルニア大学理事会 |
---|---|
Debian FSG 互換 | はい[8] [9] |
FSF 承認 | はい[10] |
OSI 承認 | はい[7] |
GPL互換 | はい |
コピーレフト | いいえ |
異なるライセンスのコードからのリンク | はい |
Webサイト | postgresql.org/about/ライセンス |
PostgreSQL(/ ˌ p oʊ s t ɡ r ɛ s k j u ˈ ɛ l / POHST -gres-kew- EL)[11] [12]はPostgresとも呼ばれ、拡張性とSQL準拠を重視した無料のオープンソース リレーショナルデータベース管理システム(RDBMS)です。PostgreSQLは、原子性、一貫性、独立性、永続性(ACID )プロパティを備えたトランザクション、自動更新可能なビュー、マテリアライズドビュー、トリガー、外部キー、ストアドプロシージャを特徴としています。[13] Windows、Linux、macOS、 FreeBSD、OpenBSDを含む すべての主要なオペレーティングシステムでサポートされており、単一のマシンからデータウェアハウス、データレイク、[14]または多数の同時ユーザーがいるWebサービスまで、さまざまなワークロードを処理します。
PostgreSQL グローバル開発グループは、データベース エンジンと密接に関連するコンポーネントの開発のみに注力しています。このコアは、技術的には PostgreSQL 自体を構成するものですが、従来はプロプライエタリ ソフトウェア ベンダーによって提供されていたその他の重要な機能セットを提供する大規模な開発者コミュニティとエコシステムがあります。これには、地理空間[15]または時間[16]データベースをサポートするために必要な機能や、他のデータベース製品をエミュレートする機能など、特殊な目的のデータベース エンジン機能が含まれます。[17] [18] [19] [20 ] また、サードパーティからは、グラフィカル ユーザー インターフェイス[21] [22] [23]や負荷分散および高可用性ツールセットなど、さまざまなユーザー インターフェイス機能とマシン インターフェイス機能が提供されています。 [24] PostgreSQL 開発グループの一部ではないものの、人、企業、製品、プロジェクトからなる大規模なサードパーティ PostgreSQL サポート ネットワークは、PostgreSQL データベース エンジンの採用と使用に不可欠であり、PostgreSQL エコシステム全体を構成しています。[25]
PostgreSQLはもともと、カリフォルニア大学バークレー校で開発されたIngresデータベースの後継として生まれたことから、POSTGRESと名付けられました。[26] [27] 1996年に、このプロジェクトはSQLをサポートしていることを反映してPostgreSQL
に改名されました。2007年のレビューの後、開発チームはPostgreSQLという名前とPostgresという別名を維持することを決定しました。[28]
歴史
PostgreSQLはカリフォルニア大学バークレー校のIngresプロジェクトから発展しました。1982年、IngresチームのリーダーであるMichael Stonebrakerは、Ingresの独自バージョンを作成するためにバークレーを離れました。[26]彼は1985年にバークレーに戻り、1980年代初頭にますます明らかになった現代のデータベースシステムの問題を解決するために、ポストIngresプロジェクトを開始しました。彼はこれらのプロジェクトとその他のプロジェクト、 [29]およびそれらで開拓された技術 により、2014年にチューリング賞を受賞しました。
新しいプロジェクトであるPOSTGRESは、データ型を完全にサポートするために必要な最小限の機能を追加することを目指しました。[30]これらの機能には、型を定義し、関係性を完全に記述する機能が含まれていました。これは広く使用されていますが、完全にユーザーが管理しています。POSTGRESでは、データベースは関係性を理解し、ルールを使用して自然な方法で関連テーブル内の情報を取得できました。POSTGRESはIngresのアイデアの多くを採用しましたが、コードは採用しませんでした。[31]
1986年から、システムの基礎を説明した論文が発表され、プロトタイプ版が1988年のACM SIGMODカンファレンスで披露されました。チームは1989年6月にバージョン1を少数のユーザーにリリースし、続いて1990年6月にルールシステムを書き直したバージョン2をリリースしました。1991年にリリースされたバージョン3では、再びルールシステムを書き直し、複数のストレージマネージャのサポート[32]とクエリエンジンの改善が追加されました。1993年までには、サポートと機能を求めるユーザーの数がプロジェクトに殺到し始めました。1994年6月30日にバージョン4.2 [33]をリリースした後、主にクリーンアップを行い、プロジェクトは終了しました。バークレーはPOSTGRESをMITライセンスのバリエーションでリリースし、他の開発者がコードを自由に使用できるようになりました。当時、POSTGRESはIngresの影響を受けたPOSTGRESクエリ言語インタープリタを使用していました。これは、というコンソールアプリケーションで対話的に使用できましたmonitor。
1994 年、バークレーの大学院生 Andrew Yu と Jolly Chen は、POSTQUEL クエリ言語インタープリタを SQL クエリ言語のインタープリタに置き換え、Postgres95 を作成しました。monitorコンソールも に置き換えられました。Yu と Chen は、1995 年 5 月 5 日にベータ テスターpsqlに最初のバージョン (0.01) を発表しました。Postgres95 のバージョン 1.0 は、ソフトウェアを自由に変更できるより自由なライセンスで 1995 年 9 月 5 日に発表されました。
1996 年 7 月 8 日、Hub.org Networking Services の Marc Fournier が、オープンソース開発活動のために大学以外で最初の開発サーバーを提供しました。[3] Bruce Momjian と Vadim B. Mikheev の参加により、バークレーから引き継いだコードを安定化させる作業が開始されました。
1996年、このプロジェクトはSQLのサポートを反映してPostgreSQLに改名されました。1996年10月22日にはPostgreSQL.orgというウェブサイトでオンライン公開が開始されました。[34]最初のPostgreSQLリリースは1997年1月29日にバージョン6.0としてリリースされました。それ以来、世界中の開発者とボランティアがPostgreSQL Global Development Groupとしてソフトウェアのメンテナンスを行っています。[2]
このプロジェクトは、無料のオープンソース ソフトウェアPostgreSQL ライセンスに基づいてリリースを継続的に提供しています。コードは、プロプライエタリ ベンダー、サポート会社、オープンソース プログラマーからの貢献によって作成されています。
マルチバージョン同時実行制御 (MVCC)
PostgreSQL は、マルチバージョン同時実行制御(MVCC)を通じて同時実行を管理します。これにより、各トランザクションにデータベースの「スナップショット」が提供され、他のトランザクションに影響を与えずに変更を加えることができます。これにより、読み取りロックの必要性が大幅になくなり、データベースがACID原則を維持できるようになります。PostgreSQL は、Read Uncommitted、Read Committed、Repeatable Read、Serializableの 4 つのトランザクション分離レベルを提供します。PostgreSQL はダーティ リードの影響を受けないため、Read Uncommitted トランザクション分離レベルを要求すると、代わりに Read commited が提供されます。PostgreSQL は、 Serializableスナップショット分離(SSI) 方式によって完全な直列化をサポートします。 [35] PostgreSQL MVCC 実装は、既存の行を更新する書き込み負荷が大きい場合にチューニングを必要とするパフォーマンスの問題が発生する傾向があります。[36]
ストレージとレプリケーション
レプリケーション
PostgreSQL には、変更 (先行書き込みログ(WAL)) をレプリカ ノードに非同期に送信するバイナリ レプリケーションが組み込まれており、これらのレプリケートされたノードに対して読み取り専用クエリを実行する機能があります。これにより、読み取りトラフィックを複数のノード間で効率的に分割できます。同様の読み取りスケーリングを可能にする以前のレプリケーション ソフトウェアは、通常、マスターにレプリケーション トリガーを追加することに依存しており、負荷が増加していました。
PostgreSQLには同期レプリケーション[37]が組み込まれており、書き込みトランザクションごとに、マスターは少なくとも1つのレプリカノードがデータをトランザクションログに書き込むまで待機します。他のデータベースシステムとは異なり、トランザクションの耐久性(非同期か同期か)は、データベースごと、ユーザーごと、セッションごと、さらにはトランザクションごとに指定できます。これは、そのような保証を必要としないワークロードには役立ちますが、同期スタンバイに到達するトランザクションの確認が必要なためパフォーマンスが低下するため、すべてのデータに必要というわけではありません。
スタンバイ サーバーは同期または非同期にすることができます。同期スタンバイ サーバーは、同期レプリケーションの候補となるサーバーを決定する構成で指定できます。リストの最初のアクティブ ストリーミング サーバーが、現在の同期サーバーとして使用されます。このサーバーが失敗すると、システムは次のサーバーにフェールオーバーします。
同期マルチマスターレプリケーションはPostgreSQLコアには含まれていません。PostgreSQLをベースにしたPostgres-XCは、スケーラブルな同期マルチマスターレプリケーションを提供します。[38]これはPostgreSQLと同じライセンスで提供されています。関連プロジェクトはPostgres-XLと呼ばれています。Postgres-Rはさらに別のフォークです。[39]双方向レプリケーション(BDR)は、PostgreSQL用の非同期マルチマスターレプリケーションシステムです。[40]
repmgr などのツールを使用すると、レプリケーション クラスターの管理が容易になります。
いくつかの非同期トリガーベースのレプリケーション パッケージが利用可能です。これらは、拡張されたコア機能が導入された後でも、完全なデータベース クラスターのバイナリ レプリケーションが適切でない状況で役立ちます。
- スロニーI
- Londiste、SkyTools( Skypeが開発)の一部
- Bucardoマルチマスターレプリケーション(Backcountry.comが開発)[41]
- SymmetricDSマルチマスター、マルチティアレプリケーション
インデックス
PostgreSQLには、通常のBツリーインデックスとハッシュテーブルインデックス、および4つのインデックスアクセスメソッド(一般化検索ツリー(GiST)、一般化転置インデックス(GIN)、空間分割GiST(SP-GiST)[42]、ブロック範囲インデックス(BRIN))のサポートが組み込まれています。さらに、ユーザー定義のインデックスメソッドを作成することもできますが、これはかなり複雑なプロセスです。PostgreSQLのインデックスは、次の機能もサポートしています。
- 式インデックスは、単なる列の値ではなく、式または関数の結果のインデックスを使用して作成できます。
- テーブルの一部のみをインデックスする部分インデックスは、CREATE INDEX ステートメントの最後に WHERE 句を追加することで作成できます。これにより、より小さなインデックスを作成できます。
- プランナーは、一時的なメモリ内ビットマップ インデックス操作を使用して、複数のインデックスを一緒に使用し、複雑なクエリを満たすことができます (スター スキーマで配置されているものなどの小さなディメンション テーブルに大規模なファクトテーブルを結合するデータ ウェアハウスアプリケーションに役立ちます)。
- k近傍法( k -NN)インデックス(KNN-GiST [43]とも呼ばれる)は、指定された「最も近い値」を効率的に検索し、類似した単語や地理空間データを持つ近いオブジェクトや場所を見つけるのに役立ちます。これは、値を徹底的に一致させることなく実現されます。
- インデックスのみのスキャンでは、多くの場合、システムはメイン テーブルにアクセスすることなくインデックスからデータを取得できます。
- ブロック範囲インデックス(BRIN)。
スキーマ
PostgreSQL スキーマは名前空間であり、同じ種類と名前のオブジェクトを単一のデータベース内に共存させることができます。データベース スキーマと混同しないでください。 データベース スキーマは、各テーブルのデータが他のテーブル内のデータとどのように関係するかを定義する抽象的、構造的、組織的仕様です。ロールやテーブルスペースなどのいくつかのグローバル オブジェクトを除くすべての PostgreSQL データベース オブジェクトは、スキーマ内に存在します。これらはネストできず、スキーマにスキーマを含めることはできません。権限システムによって、スキーマとそのコンテンツへのアクセスが制御されます。デフォルトでは、新しく作成されたデータベースにはpublicと呼ばれる単一のスキーマしかありませんが、他のスキーマを追加することができ、public スキーマは必須ではありません。
設定search_path
により、PostgreSQL が非修飾オブジェクト (プレフィックス付きスキーマのないオブジェクト) のスキーマをチェックする順序が決まります。デフォルトでは、$user, public
($user
現在接続しているデータベース ユーザーを参照) に設定されています。このデフォルトはデータベース レベルまたはロール レベルで設定できますが、セッション パラメータであるため、クライアント セッション中に自由に (複数回でも) 変更でき、そのセッションにのみ影響します。
search_path にリストされている存在しないスキーマ、またはログインしているユーザーがアクセスできないその他のスキーマは、オブジェクトの検索中に暗黙的にスキップされます。
新しいオブジェクトは、search_path で最初に表示される有効なスキーマ (アクセス可能なスキーマ) 内に作成されます。
データ型
次のようなさまざまなネイティブデータ型がサポートされています。
- ブール
- 任意精度数値
- 文字 (テキスト、varchar、char)
- バイナリ
- 日付/時刻(タイムゾーン、日付、間隔の有無にかかわらずタイムスタンプ/時刻)
- お金
- 列挙型
- ビット文字列
- テキスト検索タイプ
- 複合
- HStore、PostgreSQL内の拡張機能対応キーバリューストア[44]
- 配列(可変長、テキストや複合型を含む任意のデータ型)の合計ストレージサイズは最大 1 GB
- 幾何学的プリミティブ
- IPv4およびIPv6アドレス
- クラスレスドメイン間ルーティング(CIDR) ブロックとMAC アドレス
- XPathクエリをサポートするXML
- ユニバーサルユニーク識別子(UUID)
- JavaScript Object Notation ( JSON )、およびより高速なバイナリJSONB( BSON [45]とは異なる)
さらに、ユーザーは独自のデータ型を作成することもできます。これらのデータ型は通常、PostgreSQL のインデックス インフラストラクチャ (GiST、GIN、SP-GiST) を介して完全にインデックス化できます。これらの例としては、 PostgreSQL のPostGISプロジェクトの地理情報システム(GIS) データ型が挙げられます。
ドメインと呼ばれるデータ型もあります。これは他のデータ型と同じですが、そのドメインの作成者によって定義されたオプションの制約があります。つまり、ドメインを使用して列に入力されたデータは、ドメインの一部として定義された制約に準拠する必要があります。
データの範囲を表すデータ型を使用できます。これは範囲型と呼ばれます。これらは離散的な範囲 (例: 1 から 10 までのすべての整数値) または連続的な範囲 (例:午前 10 時から午前 11 時までの任意の時間) です。使用可能な組み込みの範囲型には、整数の範囲、大きな整数、小数、タイム スタンプ (タイム ゾーンの有無にかかわらず)、および日付が含まれます。
カスタム範囲タイプを作成して、inet タイプをベースとして使用する IP アドレス範囲や、float データ型をベースとして使用する float 範囲など、新しいタイプの範囲を作成できます。範囲タイプは、それぞれ と 文字を使用して、包含範囲と排他範囲の境界をサポートします[]。(たとえば、4 から 9 までのすべての整数を表します。) 範囲タイプは、重複、包含、右辺などを確認するために使用される既存の演算子とも互換性があります。
()[4,9)
ユーザー定義オブジェクト
データベース内のほぼすべてのオブジェクトの新しいタイプを作成できます。これには以下が含まれます。
- キャスト
- コンバージョン
- データ型
- データドメイン
- 集計関数やウィンドウ関数などの関数
- カスタムタイプのカスタムインデックスを含むインデックス
- 演算子(既存のものはオーバーロード可能)
- 手続き型言語
継承
テーブルは、親テーブルから特性を継承するように設定できます。ONLY キーワードを使用して親テーブルからデータを選択しない限り、子テーブルのデータは親テーブルに存在するように見えます。親テーブルに列を追加すると、その列が子テーブルに表示されます。
SELECT * FROM ONLY parent_table;
継承を使用すると、トリガーまたはルールを使用して親テーブルへの挿入を適切な子テーブルに誘導し、テーブル パーティションを実装できます。
この機能は完全にはサポートされていません。特に、テーブル制約は現在継承できません。親テーブルのすべてのチェック制約と非 NULL 制約は、その子に自動的に継承されます。その他の種類の制約 (一意制約、主キー制約、外部キー制約) は継承されません。
継承は、エンティティ リレーションシップ ダイアグラム(ERD)に描かれた一般化階層の機能をPostgreSQL データベースに直接マッピングする方法を提供します。
その他のストレージ機能
- 外部キー制約、列制約、行チェックを含む参照整合性制約
- バイナリおよびテキストのラージオブジェクトストレージ
- 表領域
- 列ごとの照合
- オンラインバックアップ
- 先行書き込みログを使用して実装されたポイントインタイムリカバリ
- pg_upgrade によるインプレースアップグレードでダウンタイムを短縮
制御と接続
外部データラッパー
PostgreSQLは、外部データラッパー(FDW)を介して他のシステムにリンクしてデータを取得できます。[46] これらは、ファイルシステム、別のリレーショナルデータベース管理システム(RDBMS)、Webサービスなど、任意のデータソースの形式をとることができます。つまり、通常のデータベースクエリでは、これらのデータソースを通常のテーブルのように使用でき、複数のデータソースを結合することもできます。
インターフェース
PostgreSQLは、アプリケーションがデータベースサーバーに接続できるようにするバイナリ通信プロトコルをサポートしています。このプロトコルはバージョン管理されており(現在は3.0、PostgreSQL 7.4時点)、詳細な仕様があります。[47]
この通信プロトコルの公式クライアント実装はC API、libpqです。[48]さらに、公式にサポートされているECPGツールを使用すると、SQLコマンドをCコードに埋め込むことができます。[49]どちらも標準のPostgreSQLディストリビューションの一部です。[50]
PostgreSQLに接続するためのサードパーティライブラリは、 C ++、[51] Java、[52] Julia、[53] [ 54] [55] Python、[56] Node.js、[57] Go、[58] Rust [59]など、多くのプログラミング言語で利用可能です。
手続き型言語
手続き型言語を使用すると、開発者はカスタムサブルーチン(関数) (ストアドプロシージャと呼ばれることが多い)を使用してデータベースを拡張できます。これらの関数を使用して、データベーストリガー(特定のデータの変更時に呼び出される関数)やカスタムデータ型、集計関数を構築できます。[ 60 ]手続き型言語は、SQLレベルのDOコマンドを使用して、関数を定義せずに呼び出すこともできます。[61]
言語は 2 つのグループに分けられます。安全な言語で記述されたプロシージャはサンドボックス化されており、どのユーザーでも安全に作成および使用できます。安全でない言語で記述されたプロシージャは、データベースのセキュリティ制限を回避できるだけでなく、データベース外部のソースにアクセスできるため、スーパーユーザーのみが作成できます。Perl などの一部の言語では、安全なバージョンと安全でないバージョンの両方が提供されています。
PostgreSQL には、次の 3 つの手続き型言語のサポートが組み込まれています。
- プレーン SQL (安全)。より単純な SQL 関数は、呼び出し元の (SQL) クエリにインラインで展開できるため、関数呼び出しのオーバーヘッドが削減され、クエリ オプティマイザーが関数の「内部を見る」ことができます。
- Procedural Language/PostgreSQL ( PL/pgSQL ) (安全)。これは、Oracle の Procedural Language for SQL ( PL/SQL ) 手続き型言語および SQL/Persistent Stored Modules ( SQL/PSM ) に似ています。
- C (安全ではありません)。1 つ以上のカスタム共有ライブラリをデータベースにロードできます。C で記述された関数は最高のパフォーマンスを発揮しますが、コード内のバグによりクラッシュし、データベースが破損する可能性があります。ほとんどの組み込み関数は C で記述されています。
さらに、PostgreSQLでは、拡張機能を通じて手続き型言語をデータベースにロードすることができます。PostgreSQLには、Perl、Tcl、Python をサポートする3つの言語拡張機能が含まれています。Pythonについては、現在のPython 3が使用され、廃止されたPython 2はPostgreSQL 15でサポートされなくなりました。以前は両方ともサポートされていましたが、デフォルトでPython 2になり、古いバージョンと新しいバージョンを同じセッションで使用することはできませんでした。[62]外部プロジェクトでは、他の多くの言語のサポートを提供しており、[63] PL/ Java、JavaScript (PL/V8)、PL/ Julia、[55] PL/ R、[64] PL/ Rubyなどが含まれています。
トリガー
トリガーは、SQLデータ操作言語(DML) ステートメントのアクションによってトリガーされるイベントです。たとえば、INSERTステートメントは、ステートメントの値が有効かどうかをチェックするトリガーをアクティブ化します。ほとんどのトリガーは、INSERT ステートメントまたはUPDATEステートメント によってのみアクティブ化されます。
トリガーは完全にサポートされており、テーブルにアタッチできます。トリガーは列ごとに設定でき、条件付きにすることができます。つまり、UPDATE トリガーはテーブルの特定の列をターゲットにでき、トリガーはトリガーの WHERE 句で指定された一連の条件の下で実行されるように指示できます。トリガーは、 INSTEAD OF 条件を使用してビューにアタッチできます。複数のトリガーはアルファベット順に起動されます。ネイティブの PL/pgSQL で記述された関数を呼び出すだけでなく、トリガーは PL/Python や PL/Perl などの他の言語で記述された関数を呼び出すこともできます。
非同期通知
PostgreSQL は、NOTIFY、LISTEN、および UNLISTEN コマンドを通じてアクセスされる非同期メッセージング システムを提供します。セッションは、特定のイベントの発生をマークするために、ユーザー指定のチャネルとオプションのペイロードとともに NOTIFY コマンドを発行できます。他のセッションは、特定のチャネルをリッスンできる LISTEN コマンドを発行することで、これらのイベントを検出できます。この機能は、テーブルが更新されたときに他のセッションに知らせたり、特定のアクションが実行されたときに別のアプリケーションで検出したりするなど、さまざまな目的に使用できます。このようなシステムにより、アプリケーションが何かが変更されたかどうかを確認するために継続的にポーリングする必要がなくなり、不要なオーバーヘッドが削減されます。通知は完全にトランザクション化されており、メッセージは送信元のトランザクションがコミットされるまで送信されません。これにより、実行中のアクションに対してメッセージが送信され、その後ロールバックされるという問題がなくなります。
PostgreSQL の多くのコネクタは、この通知システム (libpq、JDBC、Npgsql、psycopg、node.js など) をサポートしているため、外部アプリケーションで使用できます。
PostgreSQLは、LISTENとFOR UPDATE SKIP LOCKEDを組み合わせることで、効果的で永続的な「pub/sub」サーバーまたはジョブサーバーとして機能することができます。 [65] [66] [67]
ルール
ルールを使用すると、受信クエリの「クエリ ツリー」を書き換えることができます。ルールは、自動的に呼び出されるSQL のマクロ言語です。「クエリ書き換えルール」はテーブル/クラスに添付され、受信 DML (選択、挿入、更新、および/または削除) を 1 つ以上のクエリに「書き換え」、元の DML ステートメントを置き換えるか、それに加えて実行します。クエリ書き換えは、DML ステートメントの解析後、クエリ プランニングの前に行われます。
ルールが提供する機能は、ほぼすべての点で、新しいタイプのトリガーの導入によって複製されました。同等のルールを使用する場合よりもトリガーの動作と相互作用について推論するのが簡単なため、通常はルールよりもトリガーの使用が好まれます。
その他のクエリ機能
- 取引
- 全文検索
- ビュー
- マテリアライズドビュー[68]
- 更新可能なビュー[69]
- 再帰的見解[70]
- 内側、外側(フル、左、右)、クロス結合
- サブ選択
- 相関サブクエリ[71]
- 正規表現[72]
- 共通テーブル式と書き込み可能な共通テーブル式
- トランスポート層セキュリティ(TLS)による暗号化接続。現在のバージョンでは、その設定オプションがあっても脆弱なSSLは使用されない[73]
- ドメイン
- セーブポイント
- 2フェーズコミット
- Oversized-Attribute Storage Technique (TOAST) は、大きなテーブル属性 (大きな MIME 添付ファイルや XML メッセージなど) を自動圧縮しながら別の領域に透過的に保存するために使用されます。
- 埋め込み SQLはプリプロセッサを使用して実装されます。SQL コードは最初に C コードに埋め込まれて記述されます。次に、コードは ECPG プリプロセッサを介して実行され、SQL がコード ライブラリの呼び出しに置き換えられます。その後、コードは C コンパイラを使用してコンパイルできます。埋め込みはC++でも機能しますが、すべての C++ 構造を認識するわけではありません。
並行性モデル
PostgreSQLサーバはプロセスベース(スレッドではない)であり、データベースセッションごとに1つのオペレーティングシステムプロセスを使用します。複数のセッションはオペレーティングシステムによって利用可能なすべてのCPUに自動的に分散されます。多くの種類のクエリは、複数のCPUまたはコアを利用して、複数のバックグラウンドワーカープロセス間で並列化することもできます。[74]クライアントアプリケーションはスレッドを使用して、各スレッドから複数のデータベース接続を作成できます。[75]
安全
PostgreSQL は、内部セキュリティをロールごとに管理します。ロールは通常、ユーザー (ログインできるロール) またはグループ (他のロールがメンバーであるロール) と見なされます。権限は、列レベルまで任意のオブジェクトに対して付与または取り消すことができ、データベース、スキーマ、テーブル、行レベルでオブジェクトの表示/作成/変更/削除を許可または禁止できます。
PostgreSQLのSECURITY LABEL機能(SQL標準の拡張)は、 Security-Enhanced Linux (SELinux)セキュリティポリシーに基づくラベルベースの強制アクセス制御(MAC)をサポートするバンドルされたロード可能なモジュールを使用して、追加のセキュリティを可能にします。[76] [77]
PostgreSQL は、以下を含む幅広い外部認証メカニズムをネイティブにサポートしています。
- パスワード: SCRAM-SHA-256、[78] MD5またはプレーンテキスト
- 汎用セキュリティ サービス アプリケーション プログラム インターフェイス(GSSAPI)
- セキュリティ サポート プロバイダー インターフェイス(SSPI)
- ケルベロス
- ident (ident サーバーによって提供される O/S ユーザー名をデータベース ユーザー名にマップします)
- ピア (ローカル ユーザー名をデータベース ユーザー名にマップ)
- 軽量ディレクトリ アクセス プロトコル(LDAP)
- アクティブ ディレクトリ(AD)
- 半径
- 証明書
- プラグ可能な認証モジュール(PAM)
GSSAPI、SSPI、Kerberos、peer、ident、および certificate メソッドでは、認証システムによって一致したどのユーザーが特定のデータベース ユーザーとして接続できるかをリストする、指定された「マップ」ファイルも使用できます。
これらの方法は、クラスターのホストベースの認証構成ファイル ( pg_hba.conf) で指定され、許可される接続を決定します。これにより、どのユーザーがどのデータベースに接続できるか、どこから接続できるか (IP アドレス、IP アドレス範囲、ドメイン ソケット)、どの認証システムを適用するか、接続でトランスポート層セキュリティ(TLS) を使用する必要があるかどうかを制御できます。
標準準拠
PostgreSQL は、最新のSQL 標準に完全ではないが、高い準拠性を主張しています(「2024 年 9 月のバージョン 17 リリース時点で、PostgreSQL はSQL:2023 Core 準拠の 177 の必須機能のうち少なくとも 170 に準拠しています」。他のデータベースでこれに完全に準拠しているものはありません[79] )。1 つの例外は、テーブル名や列名などの引用符で囲まれていない識別子の処理です。PostgreSQL では、引用符で囲まれていない識別子は内部的に小文字に変換されます[80]。標準では、引用符で囲まれていない識別子は大文字に変換する必要があるとされています。したがって、標準によると、はnotFoo
と同等になるはずです。その他の欠点は、トランザクション中に行バージョンを自動的にログに記録し、時間内に参照できるようにするテンポラル テーブルがないことです (FOR SYSTEM TIME 述語) [引用が必要]。ただし、比較的 SQL に準拠しているサードパーティの拡張機能は利用できます。[16]FOO
foo
ベンチマークとパフォーマンス
PostgreSQLの非公式なパフォーマンス研究は数多く行われてきました。[81]スケーラビリティの向上を目的としたパフォーマンスの改善は、バージョン8.1から本格的に始まりました。バージョン8.0とバージョン8.4の簡単なベンチマークでは、後者は読み取り専用ワークロードで10倍以上、読み取りと書き込みの両方のワークロードで少なくとも7.5倍高速であることが示されました。[82]
最初の業界標準でピア検証済みのベンチマークは、Sun Java System Application Server(GlassFishの独自バージョン)9.0 Platform Edition、UltraSPARC T1ベースのSun Fireサーバー、PostgreSQL 8.2を使用して、2007年6月に完了しました。[83]この778.14 SPECjAppServer2004 JOPS@Standardの結果は、 ItaniumベースのHP-UXシステム上のOracle 10を使用した場合の874 JOPS@Standardと比較して優れています。[81]
2007年8月、サンはSPECjAppServer2004 JOPS@Standardのベンチマークスコアを813.73に改善しました。テスト対象のシステムの価格が下がったため、価格性能比は84.98ドル/JOPSから70.57ドル/JOPSに向上しました。[84]
PostgreSQLのデフォルト設定では、データベースブロックのキャッシュやソートなど、パフォーマンスが重要な目的のために少量の専用メモリのみを使用します。この制限は主に、古いオペレーティングシステムでは共有メモリの大きなブロックを割り当てるためにカーネルの変更が必要だったためです。[85] PostgreSQL.orgは、ウィキで基本的な推奨パフォーマンスプラクティスに関するアドバイスを提供しています。[86]
2012年4月、EnterpriseDBのロバート・ハースは、64コアのサーバーを使用してPostgreSQL 9.2の線形CPUスケーラビリティを実証しました。[87]
Matloob Khushi は、PostgreSQL 9.0 と MySQL 5.6.15 のゲノムデータ処理能力のベンチマークを実施しました。彼のパフォーマンス分析では、ランダムな人間の DNA 領域を形成する 80,000 のデータセット 2 つを使用して、PostgreSQL が重複するゲノム領域を MySQL よりも 8 倍速く抽出することを発見しました。両方のデータベースの一般的な検索能力はほぼ同等でしたが、PostgreSQL での挿入とデータのアップロードも優れていました。[88]
プラットフォーム
PostgreSQLは、以下のオペレーティングシステムで利用可能です:Linux(最近のすべてのディストリビューション)、macOS(OS X)[89]バージョン10.14以降で利用可能でテスト済みの64ビット ARMおよびx86-64インストーラー、 Windows(64ビットWindows Server 2022および2016 [90]で利用可能でテスト済み)、 FreeBSD、OpenBSD、[91] NetBSD、DragonFlyBSD、および公式の(非公式ではあるがおそらく利用可能な)バイナリ実行可能ファイルがないこれら、Solaris、[92]およびillumos。
PostgreSQLは、以下の命令セットアーキテクチャ(およびオペレーティングシステム)のいずれでも動作することが期待できます。Windowsおよびその他のオペレーティングシステム上の64ビットx86-64および32ビット x86。Windows以外では、64ビットARM [93]および古い32ビットARM ( Raspberry PiのARMv6 [ 94]など古いものを含む)、RISC-V、z/Architecture、S/390、PowerPC(64ビットPower ISAを含む)、SPARC(これも64ビット)、MIPS、PA-RISCがサポートされています。他のプラットフォームでも動作することが知られています(ただし、最新バージョンなど何年もテストされていません)。[95]
データベース管理
PostgreSQL を管理するためのオープンソースのフロントエンドとツールには次のものがあります。
- psql
- PostgreSQL の主なフロントエンドは
psql
コマンドライン プログラムです。これを使用して、SQL クエリを直接入力したり、ファイルから実行したりできます。さらに、psql は、スクリプトの作成やさまざまなタスクの自動化を容易にする多数のメタコマンドとさまざまなシェルのような機能を提供します。たとえば、オブジェクト名や SQL 構文のタブ補完などです。 - pgAdmin
- pgAdmin パッケージは、多くのコンピュータ プラットフォームでサポートされている PostgreSQL 用の無料かつオープンソースのグラフィカル ユーザー インターフェイス(GUI) 管理ツールです。 [96]このプログラムは、12 を超える言語で利用できます。最初のプロトタイプは pgManager と呼ばれ、1998 年に PostgreSQL 6.3.2 用に作成され、その後書き直されてGNU General Public License (GPL) の下で pgAdmin としてリリースされました。2 番目のバージョン (pgAdmin II) は完全に書き直されたもので、2002 年 1 月 16 日に最初にリリースされました。3 番目のバージョンである pgAdmin III は、最初はArtistic Licenseの下でリリースされ、その後 PostgreSQL と同じライセンスの下でリリースされました。Visual Basicで書かれていた以前のバージョンとは異なり、pgAdmin III は C++ で書かれており、wxWidgets [97]フレームワークを使用しているため、ほとんどの一般的なオペレーティング システムで実行できます。クエリ ツールには、管理および開発タスクをサポートするための pgScript と呼ばれるスクリプト言語が含まれています。 2014年12月、pgAdminプロジェクトの創設者であり主要な開発者であるデイブ・ペイジ氏[98]は、ウェブベースモデルへの移行に伴い、クラウド展開を容易にすることを目的としてpgAdmin 4の開発を開始したことを発表しました。 [99] 2016年にpgAdmin 4がリリースされました。pgAdmin 4のバックエンドはPythonで書かれており、FlaskとQtフレームワークを使用しています。[100]
- phpPgAdmin
- phpPgAdminはPHPで書かれたPostgreSQL用のウェブベースの管理ツールであり、元々はMySQL管理用に書かれた人気のphpMyAdminインターフェースをベースにしています。[101]
- PostgreSQLスタジオ
- PostgreSQL Studioを使用すると、ユーザーはウェブベースのコンソールから基本的なPostgreSQLデータベース開発タスクを実行できます。PostgreSQL Studioを使用すると、ユーザーはファイアウォールを開かずにクラウドデータベースを操作できます。[102]
- チームPostgreSQL
- PostgreSQL 用の AJAX/JavaScript 駆動型 Web インターフェイス。Web ブラウザー経由でデータやデータベース オブジェクトの参照、管理、作成が可能です。このインターフェイスには、自動補完機能付きのタブ付き SQL エディター、行編集ウィジェット、行とテーブル間のクリックスルー外部キー ナビゲーション、よく使用するスクリプトのお気に入り管理などの機能があります。Web インターフェイスとデータベース接続の両方で SSH をサポートしています。インストーラーは Windows、Macintosh、Linux 用と、スクリプトから実行されるシンプルなクロスプラットフォーム アーカイブが用意されています。[103]
- LibreOffice、OpenOffice.org
- LibreOfficeとOpenOffice.org BaseはPostgreSQLのフロントエンドとして使用できます。[104] [105]
- pgバジャー
- pgBadger PostgreSQLログアナライザーはPostgreSQLログファイルから詳細なレポートを生成します。[106]
- 開発
- pgDevOpsは、複数のPostgreSQLバージョン、拡張機能、コミュニティコンポーネントをインストールおよび管理し、SQLクエリを開発し、実行中のデータベースを監視し、パフォーマンスの問題を見つけるためのWebツールスイートです。[107]
- 管理者
- Adminer は、PHP で書かれた、PostgreSQL などのためのシンプルな Web ベースの管理ツールです。
- pgバックレスト
- pgBackRestはPostgreSQLのバックアップおよび復元ツールであり、完全バックアップ、差分バックアップ、増分バックアップをサポートしています。[108]
- pgaudit
- pgauditはPostgreSQLの拡張機能であり、PostgreSQLが提供する標準のログ機能を介して詳細なセッションおよび/またはオブジェクトの監査ログを提供します。[109]
- ウォーリー
- WAL-Eは、Pythonで書かれた、物理( WALベース)バックアップをサポートするPostgreSQLのバックアップおよび復元ツールです。[110]
多くの企業が PostgreSQL 用の独自ツールを提供しています。これらは多くの場合、さまざまな特定のデータベース製品に適合したユニバーサル コアで構成されています。これらのツールは、主にオープン ソース ツールと管理機能を共有していますが、データ モデリング、インポート、エクスポート、レポート作成の機能が向上しています。
注目ユーザー
PostgreSQL をプライマリ データベースとして使用する注目すべき組織と製品には、次のものがあります。
- マイクロソフトは、ペタバイト規模の「リリース品質ビュー」(RQV)分析ダッシュボードに使用されており、8億台以上のWindowsデバイスからの2万種類の指標を分析してWindows更新プログラムの品質を追跡しています。[111]
- 2009年、ソーシャルネットワーキングサイトのMyspaceは、データウェアハウスにAster Data SystemsのnClusterデータベースを使用しました。これは、改変されていないPostgreSQL上に構築されていました。 [112] [113]
- Geni.comは、主な系図データベースとしてPostgreSQLを使用しています。[114]
- OpenStreetMapは、無料で編集可能な世界地図を作成するための共同プロジェクトです。[115]
- Afilias 、 .org、.infoなどのドメインレジストリ。 [116] [117]
- ソニーオンラインのマルチプレイヤーオンラインゲーム。[118]
- BASF、農業ビジネスポータルのショッピングプラットフォーム。[119]
- Redditソーシャルニュースサイト。[120]
- Skype VoIPアプリケーション、中央ビジネスデータベース。[121]
- Sun xVM、Sunの仮想化およびデータセンター自動化スイート。[122]
- MusicBrainz、オープンオンライン音楽百科事典。[123]
- 国際宇宙ステーション– 軌道上でテレメトリデータを収集し、地上に複製する。[124]
- MyYearbookソーシャルネットワーキングサイト。[125]
- モバイル写真共有サービスInstagram 。 [126]
- Disqus、オンラインディスカッションおよびコメントサービス。[127]
- トリップアドバイザー、主にユーザーが作成したコンテンツを掲載した旅行情報ウェブサイト。[128]
- ロシアのインターネット企業Yandexは、Yandex.MailサービスをOracleからPostgresに切り替えた。 [129]
- Amazon Redshiftは AWS の一部であり、ParAccelの Postgres の変更に基づいた列指向オンライン分析処理(OLAP) システムです。
- アメリカ海洋大気庁(NOAA)の国立気象局(NWS)のインタラクティブ予報準備システム(IFPS)は、 NEXRAD 気象レーダー、地表および水文学システムからのデータを統合して詳細な地域予報モデルを構築するシステムです。[117] [130]
- 英国の国立気象局Met Officeは、オープンソース技術をさらに導入する戦略の一環として、OracleからPostgreSQLへの切り替えを開始しました。[130] [131]
- WhitePages.comはOracleとMySQLを使用していましたが、コアディレクトリを社内に移行することになったときにPostgreSQLに目を向けました。WhitePages.comは複数のソースからの大量のデータセットを組み合わせる必要があるため、PostgreSQLの高速なデータの読み込みとインデックス作成能力がPostgreSQLの使用を決定した鍵となりました。[117]
- FlightAware、フライト追跡ウェブサイト。[132]
- Grofers、オンライン食料品配達サービス。[133]
- ガーディアンは2018年にMongoDBからPostgreSQLに移行しました。[134]
- YugabyteDBはPostgreSQLクエリレイヤーをデフォルトのSQLモードとして実装しています。
- OpenAIはPostgreSQLを主要なAPIサービスの一部として使用しています。[135]
サービスの実装
いくつかの有名なベンダーは、PostgreSQL をサービスとしてのソフトウェアとして提供しています。
- サービスプロバイダーとしてのプラットフォームであるHerokuは、2007年の開始以来PostgreSQLをサポートしています。[136] Herokuは、Herokuが開発したオープンソースソフトウェアであるWAL-Eをベースにした完全なデータベースロールバック(任意の時点からデータベースを復元する機能)[137]などの付加価値機能を提供しています。[138]
- 2012年1月、EnterpriseDBは、フェイルオーバー、レプリケーション、負荷分散、スケーリングの自動プロビジョニングを備えたPostgreSQLと独自のPostgres Plus Advanced Serverのクラウドバージョンをリリースしました。これはAmazon Web Services上で実行されます。[139] 2015年以降、Postgres Advanced ServerはAlibaba Cloud上のサービスとしてのリレーショナルデータベースであるApsaraDB for PPASとして提供されています。[140]
- VMwareは2012年5月からVMware vSphere上のプライベートクラウド向けにvFabric Postgres(vPostgres [141]とも呼ばれる)を提供している。[142]同社は2014年にこの製品の販売終了(EOA)を発表した。[143]
- 2013年11月、Amazon Web Servicesは、リレーショナルデータベースサービスにPostgreSQLを追加することを発表しました。[144] [145]
- 2016年11月、Amazon Web Servicesは、クラウドネイティブのAmazon AuroraマネージドデータベースサービスにPostgreSQL互換性を追加すると発表しました。[146]
- 2017年5月、Microsoft AzureはAzure Databases for PostgreSQLを発表しました。[147]
- 2019年5月、アリババクラウドはPostgreSQL用のPolarDBを発表しました。[148]
- Jelastic Multicloud Platform as a Serviceは、 2011年からコンテナベースのPostgreSQLサポートを提供しています。また、PostgreSQLの自動化された非同期マスタースレーブレプリケーションも提供しています。[149]
- 2019年6月、IBM CloudはPostgreSQL向けのIBM Cloud Hyper Protect DBaaSを発表しました。[150]
- 2020年9月、Crunchy DataはCrunchy Bridgeを発表しました。[151]
- 2022年6月、Neon.techはNeon Serverless Postgresを発表しました。[152]
- 2023年10月、ナイルはナイルPostgresプラットフォームを発表しました。[153]
リリース履歴
リリース | 最初のリリース | 最新のマイナーバージョン | 最新リリース | 人生の終わり[154] |
マイルストーン |
---|---|---|---|---|---|
6.0 | 1997-01-29 | — | — | — | PostgreSQL、ユニークインデックス、pg_dumpall ユーティリティ、ident 認証の最初の正式リリース |
6.1 | 1997-06-08 | 6.1.1 | 1997-07-22 | — | 複数列インデックス、シーケンス、money データ型、GEQO (GEnetic Query Optimizer) |
6.2 | 1997-10-02 | 6.2.1 | 1997-10-17 | — | JDBC インターフェース、トリガー、サーバー プログラミング インターフェース、制約 |
6.3 | 1998-03-01 | 6.3.2 | 1998-04-07 | 2003-03-01 | SQL-92 サブセレクト機能、PL/pgTCL |
6.4 | 1998-10-30 | 6.4.2 | 1998-12-20 | 2003-10-30 | VIEW(読み取り専用)とRULE、PL/pgSQL |
6.5 | 1999-06-09 | 6.5.3 | 1999-10-13 | 2004-06-09 | MVCC、一時テーブル、より多くの SQL ステートメントのサポート (CASE、INTERSECT、EXCEPT) |
7.0 | 2000-05-08 | 7.0.3 | 2000-11-11 | 2004-05-08 | 外部キー、結合用の SQL-92 構文 |
7.1 | 2001-04-13 | 7.1.3 | 2001-08-15 | 2006-04-13 | 先行書き込みログ、外部結合 |
7.2 | 2002-02-04 | 7.2.8 | 2005-05-09 | 2007-02-04 | PL/Python、OID は不要、メッセージの 国際化 |
7.3 | 2002-11-27 | 7.3.21 | 2008-01-07 | 2007-11-27 | スキーマ、テーブル関数、準備されたクエリ[155] |
7.4 | 2003-11-17 | 7.4.30 | 2010-10-04 | 2010-10-01 | JOINとデータウェアハウス関数の最適化[156] |
8.0 | 2005-01-19 | 8.0.26 | 2010-10-04 | 2010-10-01 | Microsoft Windows上のネイティブサーバー、セーブポイント、テーブルスペース、ポイントインタイムリカバリ[157] |
8.1 | 2005-11-08 | 8.1.23 | 2010-12-16 | 2010-11-08 | パフォーマンスの最適化、2 フェーズ コミット、テーブルパーティション、インデックス ビットマップ スキャン、共有行ロック、ロール |
8.2 | 2006-12-05 | 8.2.23 | 2011-12-05 | 2011-12-05 | パフォーマンスの最適化、オンラインインデックス構築、アドバイザリロック、ウォームスタンバイ[158] |
8.3 | 2008-02-04 | 8.3.23 | 2013-02-07 | 2013-02-07 | ヒープのみのタプル、全文検索、[159] SQL/XML、ENUM型、UUID型 |
8.4 | 2009-07-01 | 8.4.22 | 2014-07-24 | 2014-07-24 | ウィンドウ関数、列レベルの権限、並列データベース復元、データベースごとの照合、共通テーブル式、再帰クエリ[160] |
9.0 | 2010-09-20 | 9.0.23 | 2015-10-08 | 2015-10-08 | 組み込みバイナリストリーミングレプリケーション、ホットスタンバイ、インプレースアップグレード機能、64ビットWindows [161] |
9.1 | 2011-09-12 | 9.1.24 | 2016-10-27 | 2016-10-27 | 同期レプリケーション、列ごとの照合、ログなしテーブル、シリアル化可能なスナップショット分離、書き込み可能な共通テーブル式、SELinux統合、拡張機能、外部テーブル[162] |
9.2 | 2012-09-10 [163] | 9.2.24 | 2017-11-09 | 2017-11-09 | カスケードストリーミングレプリケーション、インデックスのみのスキャン、ネイティブJSONサポート、改善されたロック管理、範囲型、pg_receivexlogツール、スペースパーティション化されたGiSTインデックス |
9.3 | 2013-09-09 | 9.3.25 | 2018-11-08 | 2018-11-08 | カスタム バックグラウンド ワーカー、データ チェックサム、専用の JSON 演算子、LATERAL JOIN、より高速な pg_dump、新しい pg_isready サーバー監視ツール、トリガー機能、ビュー機能、書き込み可能な外部テーブル、マテリアライズド ビュー、レプリケーションの改善 |
9.4 | 2014-12-18 | 9.4.26 | 2020-02-13 | 2020-02-13 | JSONBデータ型、構成値を変更するためのALTER SYSTEMステートメント、読み取りをブロックせずにマテリアライズドビューを更新する機能、バックグラウンドワーカープロセスの動的な登録/開始/停止、論理デコードAPI、GiNインデックスの改善、Linuxの巨大ページのサポート、pg_prewarmによるデータベースキャッシュの再読み込み、ドキュメントスタイルのデータに選択する列タイプとしてのHstoreの再導入。[164] |
9.5 | 2016-01-07 | 9.5.25 | 2021-02-11 | 2021-02-11 | UPSERT、行レベルセキュリティ、TABLESAMPLE、CUBE/ROLLUP、GROUPING SETS、新しいBRINインデックス[165] |
9.6 | 2016-09-29 | 9.6.24 | 2021-11-11 | 2021-11-11 | 並列クエリのサポート、ソート/結合プッシュダウンによるPostgreSQL外部データラッパー(FDW)の改善、複数の同期スタンバイ、大規模テーブルの高速バキューム |
10 | 2017-10-05 | 10.23 | 2022-11-10 | 2022-11-10 | 論理レプリケーション、[166]宣言的テーブル分割、クエリ並列性の向上 |
11 | 2018-10-18 | 11.22 | 2023-11-09 | 2023-11-09 | パーティション分割の堅牢性とパフォーマンスの向上、ストアドプロシージャでのトランザクションのサポート、クエリ並列処理の強化、式のジャストインタイム(JIT)コンパイル[167] [168] |
12 | 2019-10-03 | 12.20 | 2024-08-08 | 2024-11-14 | クエリパフォーマンスとスペース使用率の改善、SQL/JSONパス式のサポート、生成された列、国際化と認証の改善、新しいプラグ可能なテーブルストレージインターフェース。[169] |
13 | 2020-09-24 | 13.16 | 2024-08-08 | 2025-11-13 | Bツリーインデックスエントリの重複排除によるスペース節約とパフォーマンスの向上、集計またはパーティションテーブルを使用するクエリのパフォーマンスの向上、拡張統計を使用した場合のクエリ計画の改善、インデックスの並列バキューム、増分ソート[170] [171] |
14 | 2021-09-30 | 14.13 | 2024-08-08 | 2026-11-12 | 共通テーブル式にSQL標準のSEARCH句とCYCLE句を追加し、GROUP BYにDISTINCTを追加できるようにした[172] [173] |
15 | 2022-10-13 | 15.8 | 2024-08-08 | 2027-11-11 | SQL 標準のMERGEステートメントを実装します。PL/Python は現在、Python 3のみをサポートしており、廃止されたPython 2ではなくPython 3plpythonu を意味します。
|
16 | 2023-09-14 | 16.4 | 2024-08-08 | 2028-11-09 | 論理レプリケーション、pg_stat_ioビュー(I/Oメトリック用)の改善[174] |
17 | 2024-09-26 | 17.0 | 2024-09-26 | 2029-11-08 | バキュームプロセス、I/O層、クエリ実行のパフォーマンスが向上し、JSON機能が拡張され、MERGEの機能が追加され、COPYが改善されました。また、高可用性とアップグレードのための論理レプリケーションが強化され、セキュリティ、操作、監視、分析が改善されました。[175] |

参照
- リレーショナルデータベース管理システムの比較
- データベースのスケーラビリティ
- MVCC を使用するデータベースのリスト
- LLVM (llvmjit は PostgreSQL で使用される JIT エンジンです)
参考文献
- ^ 「PostgreSQL」 。 2019年9月21日閲覧。PostgreSQL
: 世界で最も先進的なオープンソースリレーショナルデータベース
- ^ ab 「貢献者プロフィール」。PostgreSQL Global Development Group 。 2017年3月14日閲覧。
- ^ ab 「Happy Birthday, PostgreSQL!」PostgreSQL Global Development Group。2008 年 7 月 8 日。
- ^ 「PostgreSQL 17 リリース!」 2024 年 9 月 26 日。
- ^ ab 「ライセンス」。PostgreSQL Global Development Group。2010年9 月 20 日閲覧。
- ^ 「PostgreSQL ライセンスが OSI によって承認されました」。Crynwr。2010 年 2 月 18 日。2016 年 8 月 8 日時点のオリジナルよりアーカイブ。2010年2 月 18 日閲覧。
- ^ ab 「OSI PostgreSQL ライセンス」。Open Source Initiative。2010 年 2 月 20 日。2010年2 月 20 日閲覧。
- ^ 「Debian -- sid のパッケージ postgresql の詳細」。packages.debian.org 。2021 年1 月 25 日閲覧。
- ^ 「ライセンス:メイン」。FedoraProject。
- ^ 「PostgreSQL」. fsf.org .
- ^ 「FAQ: PostgreSQL とは何ですか? 発音はどうですか? Postgres とは何ですか?」. PostgreSQL Wiki . PostgreSQL コミュニティ. 2021 年10 月 2 日閲覧。
- ^ 「オーディオサンプル、5.6k MP3」。
- ^ 「PostgreSQL とは何か?」PostgreSQL 9.3.0 ドキュメント。PostgreSQL グローバル開発グループ。2013年9 月 20 日閲覧。
- ^ 「データレイクにおけるParquetとPostgres | Crunchy Dataブログ」。Crunchy Data。2022年5月3日。 2024年9月19日閲覧。
- ^ "PostGIS". postgis.net . 2023年12月18日. 2023年12月18日閲覧。
PostGISは、地理空間データの保存、インデックス作成、クエリのサポートを追加することで、PostgreSQLリレーショナルデータベースの機能を拡張します。
- ^ ab "Temporal Extensions". PostgreSQL Wiki . 2023年12月18日. 2023年12月18日閲覧。
Postgresは、Temporal Databaseになるように拡張できます。このようなデータベースは、データベースコンテンツの履歴を時間の経過とともに追跡し、その履歴を自動的に保持し、変更やクエリを可能にします。
- ^ 「Orafce - Oracle の互換性関数とパッケージ」。GitHub.com。2023年 12 月 17 日。2023年12 月 18 日に取得。Oracle RDBMS
の関数とパッケージのサブセットをエミュレートする関数と演算子。
- ^ "pg_dbms_job". GitHub.com . 2023 年 11 月 8 日. 2023 年12 月 18 日閲覧。Oracle
DBMS_JOB パッケージと同様に、ジョブ キュー内のジョブをスケジュールおよび管理するための PostgreSQL 拡張機能。
- ^ "WiltonDB". WiltonDB . 2023年. 2023年12月18日閲覧。WiltonDB
はWindows用にパッケージ化されています。Microsoft SQL Serverの代替品として使用できるように設計されています。
- ^ 「Babelfish for PostgreSQL」。babelfishpg.org 。2023年12月18日閲覧。Babelfish
for PostgreSQL ... は、Microsoft SQL Server 用に記述されたアプリケーションからのクエリを理解する機能を PostgreSQL に提供します。
- ^ 「PostgreSQL クライアント」。wiki.postgresql.org。2023年 10 月 18 日。2023年12 月 18 日閲覧。
このページは、SQL を入力して結果を取得できる対話型 SQL クライアント (GUI またはその他) の一部の一覧です。
- ^ 「設計ツール」。wiki.postgresql.org。2023年10月23日。 2023年12月18日閲覧。
エンティティ関係図などを作成することで、スキーマの設計を支援するツール。ほとんどがGUIです。
- ^ 「PostgreSQL GUI ツールのコミュニティ ガイド」。wiki.postgresql.org。2023年 12 月 1 日。2023年12 月 18 日閲覧。
このページは、Postgres で動作するさまざまなユーティリティ (データ ローダー、コンパレーターなど) のリストです。
- ^ 「レプリケーション、クラスタリング、および接続プール」。wiki.postgresql.org。2020 年 7 月 13 日。2023年12 月 18 日に閲覧。単一
サーバーでの実行を超えて PostgreSQL を拡張するには、さまざまなアプローチがあります。... すべてに適合する万能策はありません...
- ^ これは、PostgreSQL をサポートするために
PostgreSQL の名前を使用するための自由な許可によって認識されており、PostgreSQL 商標ポリシーの条件に従って、(実際の PostgreSQL プロジェクトとの法的関係について人々を混乱させない公正使用として)承認されています: 「商標ポリシー」。PostgreSQL.org。 2020 年 12 月 8 日。 2023 年12 月 17 日に取得。
私たちは、PostgreSQL プロジェクトとコミュニティをサポートする [PostgreSQL の名前の] 使用を許可するよう、あなたと協力するよう努めます。
- ^ ab Stonebraker, M.; Rowe, LA (1986 年 5 月). POSTGRES の設計(PDF) . Proc. 1986 ACM SIGMOD Conference on Management of Data. ワシントン DC . 2011 年12 月 17 日閲覧。
- ^ 「PostgreSQL: History」。PostgreSQL Global Development Group。2017年3月26日時点のオリジナルよりアーカイブ。2016年8月27日閲覧。
- ^ 「プロジェクト名 - コアチームからの声明」。archives.postgresql.org。2007 年 11 月 16 日。2007年11 月 16 日閲覧。
- ^ 「マイケル・ストーンブレーカー – AM チューリング賞受賞者」。amturing.acm.org 。2018年3 月 20 日閲覧。Postgres
で開拓された技術は広く実装されました [..] ストーンブレーカーは、このような規模で連続起業家精神に取り組んだ唯一のチューリング賞受賞者であり、学術界に対する独特の視点を持っています。
- ^ Stonebraker, M.; Rowe, LA POSTGRES データ モデル(PDF)。第 13 回国際大規模データベース会議の議事録。イギリス、ブライトン: Morgan Kaufmann Publishers。pp. 83–96。ISBN 0-934613-46-X。
- ^ Pavel Stehule (2012 年 6 月 9 日)。 「PostgreSQL プロジェクトの歴史」 (チェコ語)。
- ^ PostgreSQL の簡単な歴史「バージョン 3 は 1991 年に登場し、複数のストレージ マネージャーのサポート、クエリ エグゼキューターの改善、ルール システムの書き換えが追加されました。」。postgresql.org。PostgreSQL グローバル開発グループ、2020 年 3 月 18 日取得。
- ^ 「University POSTGRES、バージョン 4.2」。1999 年 7 月 26 日。
- ^ Page, Dave (2015 年 4 月 7 日). 「Re: PostgreSQL 20 周年?」. pgsql-advocacy (メーリング リスト) . 2015 年4 月 9 日閲覧。
- ^ Dan RK Ports、Kevin Grittner (2012)。「PostgreSQL のシリアル化可能なスナップショット分離」(PDF)。VLDB Endowment の議事録。5 ( 12 ): 1850–1861。arXiv : 1208.4179。Bibcode : 2012arXiv1208.4179P。doi : 10.14778 / 2367502.2367523。S2CID 16006111。
- ^ Bohan Zhang、Andy Pavlo (2023)。「PostgreSQL で最も嫌いな部分」。OtterTune (ブログ)。
- ^ 同期レプリケーションを備えた PostgreSQL 9.1 (ニュース)、H Online
- ^ 「Postgres-XC プロジェクト ページ」(Web サイト)。Postgres-XC。2012 年 7 月 1 日時点のオリジナルよりアーカイブ。
- ^ 「Postgres-R: PostgreSQL 用データベースレプリケーションシステム」。Postgres Global Development Group。2010 年 3 月 29 日時点のオリジナルよりアーカイブ。2016 年8 月 27 日閲覧。
- ^ 「Postgres-BDR」。2ndQuadrant Ltd. 2016年8月27日閲覧。
- ^ Marit Fischer (2007 年 11 月 10 日)。「Backcountry.com がついにオープンソース コミュニティに恩返しをします」(プレス リリース)。Backcountry.com。2010 年 12 月 26 日時点のオリジナルよりアーカイブ。
- ^ Bartunov, O; Sigaev, T (2011 年 5 月). SP-GiST – PostgreSQL の新しいインデックス フレームワーク(PDF) . PGCon 2011. オタワ、カナダ. 2016 年1 月 31 日閲覧。
- ^ Bartunov, O; Sigaev, T (2010 年 5 月). PostgreSQL の K 最近傍探索(PDF) . PGCon 2010. オタワ、カナダ. 2016 年1 月 31 日閲覧。
- ^ 「PostgreSQL、NoSQL データベース | Linux Journal」www.linuxjournal.com。
- ^ Geoghegan, Peter (2014 年 3 月 23 日)。「jsonb について思うこと」。
- ^ Obe, Regina; Hsu, Leo S. (2012). 「10: レプリケーションと外部データ」. PostgreSQL: Up and Running (第 1 版). セバストポル、カリフォルニア州: O'Reilly Media, Inc. p. 129. ISBN 978-1-4493-2633-3. 2016 年10 月 17 日に取得。
外部データ ラッパー (FDW) [...] は、外部データ ソースをクエリするメカニズムです。PostgreSQL 9.1 では、このSQL/MED標準準拠の機能が導入されました。
- ^ 「フロントエンド/バックエンドプロトコル」。postgresql.org。2023年11月9日。 2023年12月17日閲覧。
このドキュメントでは、PostgreSQL 7.4以降で実装されているプロトコルのバージョン3.0について説明します。
- ^ "libpq". postgresql.org . 2023年11月9日. 2023年12月17日閲覧。
- ^ 「C言語での埋め込みSQL」。postgresql.org 。 2023年11月9日。 2023年12月17日閲覧。
- ^ 「クライアントインターフェイス」。postgresql.org。2023年11月9日。 2023年12月17日閲覧。
- ^ “libpqxx” . 2020年4月4日閲覧。
- ^ 「PostgreSQL JDBC ドライバー」 。2020年4 月 4 日閲覧。
- ^ 「[ANN] PostgresORM.jl: PostgreSQLのオブジェクトリレーショナルマッピング」JuliaLang 2021年6月30日2021年8月26日閲覧。
- ^ "GitHub - invenia/LibPQ.jl: libpq の Julia ラッパー". GitHub 。2021 年8 月 26 日に取得。
- ^ ab “PL/Julia extension ( minimal )”。JuliaLang . 2020年3月8日. 2021年8月26日閲覧。
- ^ 「PostgreSQL + Python | Psycopg」. initd.org .
- ^ 「node-postgres」。2020年4月4日閲覧。
- ^ 「SQL データベース ドライバー」。Go wiki。golang.org。2015年6 月 22日閲覧。
- ^ 「Rust-Postgres」。2020年4月4日閲覧。
- ^ 「サーバープログラミング」。PostgreSQLドキュメント。2019年5 月 19 日閲覧。
- ^ 「DO」。PostgreSQLドキュメント。 2019年5月19日閲覧。
- ^ 「PL/Python - Python 手続き型言語」。PostgreSQLドキュメント。2022年10 月 23 日閲覧。
- ^ 「手続き型言語」。postgresql.org。2016年3月31日。 2016年4月7日閲覧。
- ^ 「postgres-plr/plr」。2021年6月17日 – GitHub経由。
- ^ Chartier, Colin (2019 年 11 月 8 日)。「システム設計ハック: Postgres は優れた pub/sub およびジョブ サーバーです」。LayerCIブログ。2019 年11 月 24 日閲覧。
- ^ 「リリース 9.5」。postgresql.org。2021年2月11日。
- ^ Ringer, Craig (2016 年 4 月 13 日)。「PostgreSQL 9.5 の SKIP LOCKED の目的は何ですか?」第 2 象限。2019 年11 月 24 日閲覧。
- ^ 「マテリアライズド ビュー リレーションの追加」。2013 年 3 月 4 日。2013 年3 月 4 日に閲覧。
- ^ 「自動更新可能なビューのサポート」。2012 年 12 月 8 日。2012 年12 月 8 日に閲覧。
- ^ 「CREATE RECURSIVE VIEW 構文の追加」。2013 年 2 月 1 日。2013年2 月 28 日閲覧。
- ^ Momjian, Bruce (2001)。「サブクエリ」。PostgreSQL: 入門と概念。Addison- Wesley。ISBN 0-201-70331-9. 2010年8月9日時点のオリジナルよりアーカイブ。2010年9月25日閲覧。
- ^ Bernier, Robert (2006 年 2 月 2 日)。「PostgreSQL での正規表現の使用」。O'Reilly Media。2010年9 月 25 日閲覧。
- ^ 「PostgreSQL と POODLE に関する短いメモ」hagander.net。
- ^ Berkus, Josh (2016 年 6 月 2 日). 「PostgreSQL 9.6 ベータ版と PGCon 2016」. LWN.net .
- ^ 「FAQ – PostgreSQL wiki」. wiki.postgresql.org . 2017年4月13日閲覧。
- ^ 「SEPostgreSQL ドキュメント – PostgreSQL wiki」。wiki.postgresql.org。
- ^ 「NB SQL 9.3 - SELinux Wiki」. selinuxproject.org .
- ^ 「PostgreSQL 10 ドキュメント: 付録 E. リリースノート」。2021 年 8 月 12 日。
- ^ 「PostgreSQL: 概要」www.postgresql.org . 2024年10月14日閲覧。
- ^ 「識別子の大文字と小文字の区別」。PostgreSQL Global Development Group。2021年11月11日。
- ^ ab Berkus, Josh (2007 年 7 月 6 日). 「PostgreSQL が初の本格的なベンチマークを公開」。2007 年 7 月 12 日時点のオリジナルよりアーカイブ。2007年7 月 10 日閲覧。
- ^ ジェルジのヴィルモス (2009 年 9 月 29 日)。 「PostgreSQLの歴史」。2010 年8 月 28 日に取得。
- ^ 「SPECjAppServer2004 結果」。SPEC。2007年7 月 6 日。2007年7 月 10 日閲覧。
- ^ 「SPECjAppServer2004 結果」。SPEC。2007年 7 月 4 日。2007年9 月 1 日閲覧。
- ^ 「カーネルリソースの管理」。PostgreSQL マニュアル。PostgreSQL.org。2011年11 月 12 日閲覧。
- ^ Greg Smith (2010 年 10 月 15 日)。PostgreSQL 9.0の高性能。Packt Publishing。ISBN 978-1-84951-030-1。
- ^ Robert Haas (2012 年 4 月 3 日)。「32 コアと言ったかな? 64 はどうかな?」。2012 年4 月 8 日閲覧。
- ^ Khushi, Matloob (2015 年 6 月). 「ゲノムデータのデータベースパフォーマンスのベンチマーク」. J Cell Biochem . 116 (6): 877–83. arXiv : 2008.06835 . doi :10.1002/jcb.25049. PMID 25560631. S2CID 27458866.
- ^ 「Mac OS X パッケージ」。PostgreSQL グローバル開発グループ。2016年8 月 27 日閲覧。
- ^ 「PostgreSQL: Windowsインストーラー」。www.postgresql.org 。 2021年8月26日閲覧。
- ^ 「postgresql-client-10.5p1 – PostgreSQL RDBMS (クライアント)」。OpenBSD ポート。2018 年 10 月 4 日。2018 年10 月 10 日閲覧。
- ^ 「PostgreSQL のインストールと構成 - Oracle Solaris Cluster Data Service for PostgreSQL ガイド」。docs.oracle.com 。 2023 年2 月 4 日閲覧。
- ^ 「AArch64 が DebConf で BoF を計画中」。debian.org。
- ^ Souza, Rubens (2015 年 6 月 17 日)。「ステップ 5 (更新): Raspberry Pi 1 および 2 への PostgreSQL のインストール」。Raspberry PG。2016年8 月 27 日閲覧。
- ^ 「サポートされているプラットフォーム」。PostgreSQL Global Development Group。2012年4 月 6 日閲覧。
- ^ 「pgAdmin: PostgreSQL の管理および運用ツール」 。ウェブサイト。2011 年11 月 12 日閲覧。
- ^ 「Debian -- jessie のパッケージ pgadmin3 の詳細」 。2017年3 月 10 日閲覧。
- ^ 「pgAdmin 開発チーム」。pgadmin.org。2015年6 月 22 日閲覧。
- ^ Dave, Page (2014 年 12 月 7 日)。「pgAdmin の物語」。Daveの Postgres ブログ。pgsnake.blogspot.co.uk。2014年12 月 7 日閲覧。
- ^ 「pgAdmin 4 README」。GitHub 。 2018年8月15日閲覧。
- ^ phpPgAdmin プロジェクト (2008 年 4 月 25 日)。「phpPgAdmin について」。2008 年4 月 25 日閲覧。
- ^ PostgreSQL Studio (2013 年 10 月 9 日)。「PostgreSQL Studio について」。2013 年 10 月 7 日時点のオリジナルよりアーカイブ。2013 年10 月 9 日閲覧。
- ^ 「TeamPostgreSQL ウェブサイト」。2013 年 10 月 3 日。2013年10 月 3 日閲覧。
- ^ oooforum.org (2010 年 1 月 10 日). 「OpenOffice のバックエンド」。2011 年 9 月 28 日時点のオリジナルよりアーカイブ。2011 年1 月 5 日閲覧。
- ^ libreoffice.org (2012 年 10 月 14 日). 「基本機能」。2012 年 1 月 7 日時点のオリジナルよりアーカイブ。2012 年10 月 14 日閲覧。
- ^ Greg Smith、Robert Treat、Christopher Browne。「 PostgreSQLサーバーのチューニング」Wiki。PostgreSQL.org。2011年11 月 12 日閲覧。
- ^ "pgDevOps". BigSQL.org . 2017年4月1日時点のオリジナルよりアーカイブ。2017年5月4日閲覧。
- ^ “pgbackrest/pgbackrest”. GitHub . 2021年11月21日.
- ^ “pgaudit/pgaudit”. GitHub . 2021年11月21日.
- ^ “ワルイー/ワルイー”. 2021 年 6 月 24 日 – GitHub 経由。
- ^ Claire Giordano (2019 年 10 月 31 日)。「Citus 拡張機能を使用して Azure 上で Postgres をスケールアウトし、ペタバイト規模の分析を設計する」。ブログ。Microsoft Tech Community。
- ^ Emmanuel Cecchet (2009 年 5 月 21 日)。変更されていない PostgreSQL を使用したペタバイト ウェアハウスの構築(PDF)。PGCon 2009。2011年11 月 12 日閲覧。
- ^ 「MySpace.com がすべての友人向けに分析機能を拡張」(PDF)。ケース スタディ。Aster Data。2010 年 6 月 15 日。2010年 11 月 14 日時点のオリジナルからアーカイブ(PDF) 。2011年11 月 12 日閲覧。
- ^ 「先週末の停電」。ブログ。Geni。2011年8月1日。
- ^ 「データベース」。Wiki。OpenStreetMap。
- ^ PostgreSQL関連会社.ORGドメイン、オーストラリア:Computer World、2023年8月24日
- ^ abc W. Jason Gilmore; RH Treat (2006)。PHP と PostgreSQL 8 入門: 初心者からプロまで。Apress。ISBN 978-1-43020-136-6. 2017年8月30日閲覧。
- ^ ソニーオンライン、オラクルではなくオープンソースデータベースを選択、Computer World
- ^ 「PostgreSQL に関する Web コマース グループのケース スタディ」(PDF) (1.2 版)。PostgreSQL。
- ^ 「アーキテクチャの概要」。Redditソフトウェア wiki。Reddit。2014年 3 月 27 日。2014年11 月 25 日閲覧。
- ^ ピラック、マーティン。 「PostgreSQL @Skype」(PDF)。wiki.postgresql.org 。2019 年1 月 16 日に取得。
- ^ 「データベースにいくら支払っていますか?」 Sun Microsystems ブログ。 2007 年。 2009 年 3 月 7 日時点のオリジナルよりアーカイブ。2007 年12 月 14 日閲覧。
- ^ 「データベース – MusicBrainz」。MusicBrainz Wiki 。 2011年2月5日閲覧。
- ^ Duncavage, Daniel P (2010 年 7 月 13 日)。「NASA は Postgres-Nagios の支援を必要としている」。
- ^ Roy, Gavin M (2010). 「PostgreSQL at myYearbook.com」(トーク). USA East: PostgreSQL Conference. 2011年7月27日時点のオリジナルよりアーカイブ。
- ^ 「12時間で100万人以上の新規ユーザーを獲得し、Instagramを維持する」Instagram-engineering.tumblr.com。2011年5月17日。 2012年7月7日閲覧。
- ^ 「Postgres at Disqus」2013年5月24日閲覧。
- ^ Kelly, Matthew (2015 年 3 月 27 日). At the Heart of a Giant: Postgres at TripAdvisor. PGConf US 2015. 2015 年 7 月 23 日時点のオリジナルよりアーカイブ。 2015 年7 月 23 日閲覧。(プレゼンテーションビデオ)
- ^ 「Yandex.Mail が Oracle から Postgres への移行に成功 [pdf]」。Hacker News: news.ycombinator.com 。2016年9 月 28 日閲覧。
- ^ ab S. リッグス; G. チオーリ; H. クロージング; G. バルトリーニ (2015)。 PostgreSQL 9 管理クックブック - 第 2 版。パックト。ISBN 978-1-84951-906-9. 2017年9月5日閲覧。
- ^ 「Met Office swaps Oracle for PostgreSQL」. computerweekly.com 2014年6月17日. 2017年9月5日閲覧。
- ^ 「オープンソースソフトウェア」。FlightAware 。 2017年11月22日閲覧。
- ^ 「Grofers での Ansible (パート 2) — PostgreSQL の管理」。Lambda - The Grofers Engineering Blog。2017 年 2 月 28 日。2018年9 月 5 日閲覧。
- ^ McMahon, Philip; Chiorean, Maria-Livia; Coleman, Susie; Askoolum, Akash (2018年11月30日). 「デジタルブログ: さようならMongo、こんにちはPostgres」. The Guardian . ISSN 0261-3077.
- ^ 「API と ChatGPT のエラーが増加」 。2023年12 月 2 日閲覧。
- ^ Alex Williams (2013 年 4 月 1 日)。「Heroku が PostgreSQL の重大なセキュリティホールを修正するために顧客にアップグレードを強制」TechCrunch。
- ^ Barb Darrow (2013 年 11 月 11 日)。「Heroku がデータベース ロールバックとプロアクティブなアラートで Postgres を強化」GigaOM。
- ^ Craig Kerstiens (2013 年 9 月 26 日)。「WAL-E と Heroku Postgres による継続的な保護」。Heroku ブログ。
- ^ 「EnterpriseDB が Postgres Plus クラウド データベースを提供」Techweekeurope.co.uk、2012 年 1 月 27 日。2012年7 月 7 日閲覧。
- ^ 「Alibaba Cloud、EnterpriseDBとの技術提携を拡大」。Milestone Partners。2018年9月26日。 2020年6月9日閲覧。
- ^ O'Doherty, Paul; Asselin, Stephane (2014)。「3: VMware Workspace Architecture」。VMware Horizon Suite: エンドユーザー サービスの構築。VMware Press Technology。アッパー サドル リバー、ニュージャージー: VMware Press。p. 65。ISBN 978-0-13-347910-22016 年9 月 19 日に取得。PostgreSQL
のオープン ソース バージョンに加えて、VMware は vFabric Postgres (vPostgres) を提供しています。vPostgres は、仮想環境向けに調整された PostgreSQL 仮想アプライアンスです。
- ^ Al Sargent (2012 年 5 月 15 日)。「VMware vFabric Suite 5.1 の紹介: 自動展開、新しいコンポーネント、オープン ソース サポート」。VMware ブログ。
- ^ 「VMware vFabric Suite EOA」(PDF) 2014年9月1日. 2023年12月17日閲覧。
- ^ Jeff (2013 年 11 月 14 日)。「Amazon RDS for PostgreSQL – 提供開始」Amazon Web Services ブログ。
- ^ Alex Williams (2013 年 11 月 14 日)。「PostgreSQL が Amazon のリレーショナル データベース サービスで利用可能に」。TechCrunch。
- ^ 「Amazon Aurora アップデート – PostgreSQL 互換性」。AWSブログ。2016 年 11 月 30 日。2016年12 月 1 日閲覧。
- ^ 「Azure Database for PostgreSQL の発表」。Azureブログ。2017 年 5 月 10 日。2019 年6 月 19 日閲覧。
- ^ 「Aliyun PolarDB、Oracleなどのデータベースのクラウドへのワンクリック移行をサポートするメジャーアップデートをリリース」。Develop Paper。2019年7月6日。
- ^ 「PostgreSQL データベースの非同期マスタースレーブレプリケーションをワンクリックで実行」 DZone . 2017 年5 月 26 日閲覧。
- ^ 「IBM Cloud Hyper Protect DBaaS for PostgreSQL ドキュメント」。cloud.ibm.com。2020年6 月 24 日閲覧。
- ^ 「Crunchy Data、Crunchy BridgeのリリースによりPostgreSQLのサポートを継続」。2020年9月18日。
- ^ 「SELECT 'Hello, World' クラウド向けに構築されたサーバーレス Postgres」。2022 年 6 月 15 日。
- ^ 「最新の SaaS 向けサーバーレス Postgres、Nile のご紹介」。2023 年 10 月 25 日。
- ^ 「バージョン管理ポリシー」。PostgreSQL Global Development Group 。 2018年10月4日閲覧。
- ^ Vaas, Lisa (2002 年 12 月 2 日)。「データベースは企業をターゲットにする」eWeek。2016年10 月 29 日閲覧。
- ^ Krill, Paul (2003 年 11 月 20 日)。「PostgreSQL がオープンソース データベースを強化」。InfoWorld。2016年10 月 21 日閲覧。
- ^ Krill, Paul (2005 年 1 月 19 日)。「PostgreSQL オープンソース データベースが Windows の強化をアピール」。InfoWorld。2016年11 月 2 日閲覧。
- ^ Weiss, Todd R. (2006 年 12 月 5 日)。「オープンソース PostgreSQL DB バージョン 8.2 がリリースされました」。Computerworld。2016年10 月 17 日閲覧。
- ^ Gilbertson, Scott (2008年2月5日). 「PostgreSQL 8.3: オープンソースデータベースが驚異的なスピードを約束」. Wired . 2016年10月17日閲覧。
- ^ Huber, Mathias (2009 年 7 月 2 日)。「PostgreSQL 8.4 は機能が豊富であることが証明されました」。Linux Magazine。2016年10 月 17 日閲覧。
- ^ Brockmeier , Joe (2010 年 9 月 30 日)。「PostgreSQL 9 の 5 つのエンタープライズ機能」。Linux.com。Linux Foundation。2017年2 月 6 日閲覧。
- ^ Timothy Prickett Morgan (2011年9月12日). 「PostgreSQLが9.1にバージョンアップ、エンタープライズ向けを目指す」The Register . 2017年2月6日閲覧。
- ^ 「PostgreSQL: PostgreSQL 9.2 リリース」www.postgresql.org . 2012 年 9 月 10 日。
- ^ 「PostgreSQL 用 Hstore の再導入」。InfoQ。
- ^ Richard, Chirgwin (2016 年 1 月 7 日)。「Say oops, UPSERT your head: PostgreSQL version 9.5 has landed」The Register。2016年10 月 17 日閲覧。
- ^ 「PostgreSQL: ドキュメント: 10: 第31章 論理レプリケーション」。www.postgresql.org。2021年8月12日。
- ^ 「PostgreSQL 11 リリース」。2018 年 10 月 18 日。2018 年10 月 18 日閲覧。
- ^ 「PostgreSQLリリースノート」。2018年10月18日閲覧。
- ^ 「PostgreSQL: PostgreSQL 12 がリリースされました!」Postgresql ニュース。2019 年 10 月 3 日。
- ^ 「PostgreSQL 13 リリースノート」。www.postgresql.org。2021年8月12日。
- ^ 「PostgreSQL 13 リリース!」www.postgresql.org . 2020 年 9 月 24 日。
- ^ 「PostgreSQL 14 リリースノート」。www.postgresql.org。2021年11月11日。
- ^ 「PostgreSQL 14 リリース!」www.postgresql.org . 2021 年 9 月 30 日。
- ^ 「PostgreSQL 16 リリース!」 2023年9月14日。
- ^ 「PostgreSQL 17 リリース!」 2024 年 9 月 26 日。
さらに読む
- Obe, Regina; Hsu, Leo (2012 年 7 月 8 日)。PostgreSQL: Up and Running。O'Reilly。ISBN 978-1-4493-2633-3。
- Krosing, Hannu; Roybal, Kirk (2013 年 6 月 15 日)。PostgreSQL Server Programming (第 2 版) 。Packt Publishing。ISBN 978-1-84951-698-3。
- Riggs, Simon; Krosing, Hannu (2010 年 10 月 27 日)。PostgreSQL 9 管理クックブック(第 2 版) 。Packt Publishing。ISBN 978-1-84951-028-8。
- スミス、グレッグ(2010 年 10 月 15 日)。PostgreSQL 9 の高パフォーマンス。Packt Publishing。ISBN 978-1-84951-030-1。
- ギルモア、W. ジェイソン、トリート、ロバート (2006 年 2 月 27 日)。『PHP と PostgreSQL 8 入門: 初心者からプロまで』Apress . p. 896. ISBN 1-59059-547-5. 2009年7月8日時点のオリジナルよりアーカイブ。2009年4月28日閲覧。
- ダグラス、コリー(2005年8月5日)。PostgreSQL (第2版)。サムス。p.1032。ISBN 0-672-32756-2。
- マシュー、ニール、ストーンズ、リチャード (2005 年 4 月 6 日)。PostgreSQL によるデータベース入門 (第 2 版) 。Apress。p . 664。ISBN 1-59059-478-9. 2009年4月9日時点のオリジナルよりアーカイブ。2009年4月28日閲覧。
- Worsley, John C.; Drake, Joshua D. (2002 年 1 月) 。Practical PostgreSQL。O'Reilly Media。636ページ。ISBN 1-56592-846-6。
外部リンク
- 公式サイト 、ウィキ
- 関連プロジェクトと製品のソフトウェアカタログ
- 公式メインソースコードリポジトリ(閲覧用)と開発者向けFAQ
- PostgreSQL ドキュメント作成者のための公式リファレンス
- すべての公式PostgreSQLソースコードリポジトリ
- GitHub上の PostgreSQL