PostgreSQL

From LIMSWiki
Jump to: navigation, search
PostgreSQL
Postgresql elephant.svg
Developer(s) PostgreSQL Global Development Group
Initial release January 29, 1997 (1997-01-29)
Stable release

12.4  (August 13, 2020; 44 days ago (2020-08-13))

[±]
Preview release none [±]
Written in C
Operating system Cross-platform
Type Database management software
License(s) PostgreSQL Licence[1]
Website PostgreSQL.org

PostgreSQL, often simply Postgres, is a free open-source object-relational database management system, developed by the PostgreSQL Global Development Group. It implements the majority of the SQL:2008 standard,[2] is ACID-compliant, is fully transactional (including all DDL statements), has extensible data types, operators, and indexes, and has a large number of extensions written by third parties.

The vast majority of Linux distributions have PostgreSQL available in supplied packages. Mac OS X, starting with Lion, has PostgreSQL server as its standard default database in the server edition[3], and PostgreSQL client tools in the desktop edition.

Product history

PostgreSQL evolved from the Ingres database project at the University of California, Berkeley. In 1982, the project leader, Michael Stonebraker, left Berkeley to make a proprietary version of Ingres.[4] He returned to Berkeley in 1985 and started a post-Ingres project to address the problems with contemporary database systems that had become increasingly clear during the early 1980s. The new project, POSTGRES, aimed to add the fewest features needed to completely support types.[5] These features included the ability to define types and to fully describe relationships – something used widely before but maintained entirely by the user. In Postgres, the database "understood" relationships, and could retrieve information in related tables in a natural way using "rules." Postgres used many of the ideas of Ingres, but not its code.

Starting in 1986, the team published a number of papers describing the basis of the system, and by 1988 it had created a prototype version. The team released version 1 to a small number of users in June 1989, then version 2 with a re-written rules system in June 1990. Version 3, released in 1991, again re-wrote the rules system, and added support for multiple storage managers and an improved query engine.[6] By 1993 the great number of users began to overwhelm the project with requests for support and features.

After releasing version 4.2 — primarily a cleanup — the project ended.[6] However, as Berkeley had released Postgres under a MIT-style license, open-source developers could still obtain copies and develop the system further. In 1994, Berkeley graduate students Andrew Yu and Jolly Chen replaced the Ingres-based QUEL query language interpreter with one for the SQL query language, creating Postgres95. The code was released on the web.[6]

In July 1996, Marc Fournier at Hub.Org Networking Services provided the first non-university development server for the open-source development effort. Along with Bruce Momjian and Vadim B. Mikheev, work began to stabilize the code inherited from Berkeley. The first open-source version was released on August 1, 1996 as version 1.02.1.[7]

In 1996, the project was renamed to PostgreSQL to reflect its support for SQL. The first PostgreSQL release formed version 6.0 in January 1997.[6] Since then, the software has been maintained by a group of database developers and volunteers around the world, coordinating via the Internet.

Because of ubiquitous support for the SQL Standard amongst most relational databases, the community considered changing the name of PostgreSQL back to its original name of Postgres. However, the PostgreSQL Core Team announced in 2007 that the product would continue to use the name PostgreSQL.[8]

As of May 2014, DB-Engines' Ranking of Relational DBMS ranked PostgreSQL as the 4th most popular RDBMS out of 83.[9]

Features

Features of PostrgreSQL include:

  • strong procedural language and library interface support
  • built-in support for B+-tree, hash, generalized search trees (GiST), and generalized inverted indexes (GIN)
  • support for user-defined index methods
  • advanced trigger support
  • multiversion concurrency control (MVCC)
  • query re-write rules
  • support for a wide variety of native data types
  • user-defined objects
  • partial support for inheritance
  • additional extensions, libraries and tools in the form of "contrib modules"
  • foreign data wrapper support
  • built-in binary replication

View the full feature matrix on the PostgreSQL website.

Hardware/software requirements

Installation requirements will vary depending on which version you download. Refer to the documentation or the one-click installer guide for more information.

Videos, screenshots, and other media

Several sources exist for PostgreSQL-related video:

Entities using PostgreSQL

Examples of entities that use PostgreSQL include:

Affymetrix, American Chemical Society, Apple, BASF, Cisco, Fujitsu, Genentech, GNUmed, Greenpeace, Institut de Biologie et Chimie des Protéines, Juniper Networks, National Physical Laboratory of India, PostGIS, Shannon Medical Center, Skype, SourceForge, Sternberg Astronomical Institute, United Nations Children's Fund, University of California–Berkeley, University of Sydney, U.S. Centers for Disease Control and Prevention

A full directory of PostgreSQL users and case studies can be found at the PostgreSQL website.

Further reading

External links

References

  1. "License". PostgreSQL Global Development Group. http://www.postgresql.org/about/licence. Retrieved 21 March 2012. 
  2. "Appendix D. SQL Conformance". PostgreSQL 9.1.3 Documentation. PostgreSQL Global Development Group. http://www.postgresql.org/docs/9.1/static/features.html. Retrieved 21 March 2012. 
  3. "Lion Server: MySQL not included". Apple Inc.. 4 August 2011. http://support.apple.com/kb/HT4828. Retrieved 21 March 2012. 
  4. Stonebraker, M; Rowe, LA (May 1986). "The Design of POSTGRES" (PDF). Proc. 1986 ACM SIGMOD Conference on Management of Data. Washington, DC. http://db.cs.berkeley.edu/papers/ERL-M85-95.pdf. Retrieved 21 March 2012. 
  5. Stonebraker, M; Rowe, LA. "The POSTGRES Data Model" (PDF). Proceedings of the 13th International Conference on Very Large Data Bases. Brighton, England: Morgan Kaufmann Publishers. pp. 83–96. ISBN 0-934613-46-X. http://db.cs.berkeley.edu/papers/ERL-M87-13.pdf. 
  6. 6.0 6.1 6.2 6.3 The PostgreSQL Global Development Group (2011). PostgreSQL 9.0 Official Documentation - Volume I - The SQL Language. Fultus Corporation. pp. 20–22. ISBN 1596822465. http://books.google.com/books?id=0kkKYBJCJ3AC. 
  7. "E.181. Release 1.02". PostgreSQL 8.3.18 Documentation. PostgreSQL Global Development Group. http://www.postgresql.org/docs/8.3/static/release-1-02.html. Retrieved 21 March 2012. 
  8. Page, David (16 November 2007). "Project name — statement from the core team". PostgreSQL Global Development Group. http://archives.postgresql.org/pgsql-advocacy/2007-11/msg00109.php. Retrieved 21 March 2012. 
  9. "DB-Engines Ranking of Relational DBMS". solid IT. http://db-engines.com/en/ranking/relational+dbms. Retrieved 30 May 2014.