PostgreSQL の特徴、および機能としては、以下のような点が挙げられます。Turbolinux 11 Server で収録しているバージョンは、postgresql-8.2.5-1 です。より詳細な情報は、PostgreSQL の Web サイトやオフィシャルマニュアルを参照してください。
PostgreSQL は、BSD ライセンスに基づき配布されており、商用/非商用を問わず無償で使用でき、利用目的に制限もありません。また、ソースコードも公開されています。
Linux、FreeBSD、NetBSD、OpenBSD、Solaris、HP-UX、AIX などの UNIX 系システムだけでなく、WindowsNT/2000(Cygwin を利用)、Mac OS X など多彩なプラットフォームでの動作が確認されています。
PostgreSQL は、クライアント/サーバー型アーキテクチャを採用しており、クライアント(フロントエンド)は、PostgreSQL が動作しているデータベースサーバー(バックエンド)にネットワーク経由でアクセスすることが可能です。従来の 2 階層システム、およびアプリケーションサーバーを利用した 3 階層システムの構築が可能です。また、PostgreSQL は、フロントエンドとデータベースエンジンを提供するバックエンドが完全に独立しているため、フロントエンド側で必要となるライブラリは少なくて済みます。
PostgreSQL では、マルチバイト/UNICODE に対応しています。テーブル名、カラム名、格納するデータにマルチバイトコードが利用できます。LIKE や正規表現によるマルチバイト検索もサポートしています。
データベースの標準言語である SQL には、いくつかのバージョンが存在しますが、PostgreSQL は SQL92 のほとんどの機能をサポートしています。SQL の最新バージョンは SQL2003 で PostgreSQL もその一部をサポートします。
PostgreSQL は、標準で非常に多くのプログラムインターフェースをサポートしています。詳細については、項25.7を参照してください。
PostgreSQL では、C 言語、SQL 等を使用して、バックエンドで動作するユーザー定義の関数を作成することができます。
PostgreSQL は、他の RDBMS 同様、行レベルのロックおよびテーブルレベルのロックをサポートしています。さらに、MVCC(MultiVersion Concurrency Control)により、トランザクションの高度な同時アクセス制御を実装しています。MVCC により、あるトランザクションがデータベースにデータを書き込み中であっても、別のトランザクションが同じカラムのデータを読み出すことが可能です。逆にあるトランザクションがデータを読み込み中であっても別のトランザクションはデータの書き込みが可能です。さらに、PostgreSQL 8.2 以降のバージョンからはアドバイサリロックがサポートされアプリケーションレベルでのデータベースオブジェクト制御も可能になりました。
PostgreSQL 8.0 でサポートされたポイントインタイムリカバリ機能がさらに拡張され、8.2 からはウォームスタンバイデータベースがサポートされて障害時のリカバリ用の複製が容易になりました。
PostgreSQL 8.0 以降のバージョンでは、セーブポイントのサポートによってトランザクションの一部のみのロールバックが可能になりました。
PostgreSQL では、DELETE された行は実際に削除されるわけではなく、削除フラグを立て論理的に削除されたかのように見せます。UPDATE に関しても、更新する行を INSERT してから、更新前の行に削除フラグを立てます。これは、頻繁にデータの更新、削除が行われた場合にデータベースのサイズが増大する一方であることを意味します。そこで、PostgreSQL は、このデータベースの不要領域の掃除と統計情報の生成をするためにデータベースに対して定期的に PostgreSQL 固有のコマンドである VACUUM コマンドを実行することが推奨されています。以前のバージョンでは、VACUUM の処理中はテーブルをロックしていましたが、PostgreSQL 7.2 からはテーブルをロックしなくなり、VACUUM 中でもテーブルの検索や更新が可能となりました。これにより、PostgreSQL はデータベースとしての連続運用性能を大幅に向上させました。しかし、この VACUUM はデータベースの空き領域を再利用できるようにするだけでデータベースのサイズを小さくするわけではありません。サイズを小さくするためには、VACUUM FULL を使用しますが、これは従来の VACUUM と同様にテーブルをロックします。
データベースを運用した状態でバックアップ可能なホットバックアップをサポートしているため、バックアップ中でもデータの更新や削除などが可能です。バックアップは、pg_dump という PostgreSQL の専用ツールを使用して行います。データベース単位、テーブル単位でのバックアップが可能です。
PostgreSQL は、ORDBMS(Object Relational DataBase Management System)であるとも言われます。ORDBMS は、RDBMS にクラス、継承、型、関数などオブジェクト指向の概念を取り入れて複雑なデータを扱いやすくする次世代 RDBMS といえます。PostgreSQL におけるオブジェクト拡張としては、配列のデータ型、OID(Object Identifier)、テーブル定義の継承、ユーザー定義データ型などがあげられます。このようなオブジェクト指向の概念を取り入れた RDBMS であるという特徴により、PostgreSQL は ORDBMS のカテゴリに分類されていると言えます。