A descendant of the original Ingres (now owned by Computer Associates) and Postgres (eventually wrapped into Informix) DBs developed at the University of California at Berkeley, PostgreSQL is an open source, object-relational database offered in source code form (C) for free from multiple mirror download sites. The DB is offered under the BSD license, requiring only that users retain a short two paragraph disclaimer with each DB installation. Large DB implementations are supported by PostgreSQL, including DB and row sizes limited only by available disk space/memory. The number of possible rows and indexes on a DB are also unlimited; tables are limited to 64TB, individual fields are limited to 1GB, and the number of columns in a table is limited to 1600. The DB itself is included within many Linux distributions.
Among the developer-oriented features of PostgreSQL:
- Support for foreign keys; all SQL99 join types; and before and after triggers
- Support for user-defined types
- Support for subqueries and SELECT DISTINCT (and SELECT DISTINCT ON column)
- Rules support, which allow developers to automatically translate a requested operation into a different operation
Additionally, PostgreSQL DBs can be accessed from within many development languages via built-in or otherwise available APIs. Perl code, for example, can access PostgreSQL data via the standard DBI/DBD interface, while PHP apps feature built-in connectivity. ODBC and JDBC access is also supported.
For DBAs, PostgreSQL includes backup and recovery tools which allow both for hot backups and full or selective data restores; SSL or SSH based connections; and virtual hosting capabilities.
Additionally of interest is Pervasive's Postgres, a validated and Pervasive supported distribution of PostgreSQL. In the Pervasive package, the DB continues to be free; while Pervasive also offers support, updates, and value added tools via a subscription model, in addition to migration and training services (see related link below).
PostgreSQL is available now. Visit the PostgreSQL Web site for further information.