Given its powerful and advanced features, you may wonder how such a valuable piece of software came to be both free and open source. As with many other key open source projects, the answer starts at the University of California at Berkeley (UCB).
PostgreSQL, originally called Postgres, was created at UCB by a computer science professor named Michael Stonebraker, who went on to become the CTO of Informix Corporation. Stonebraker started Postgres in 1986 as a followup project to its predecessor, Ingres, now owned by Computer Associates. The name Postgres thus plays off of its predecessor (as in “after Ingres”). Ingres, developed from 1977 to 1985, had been an exercise in creating a database system according to classic RDBMS theory. Postgres, developed between 1986-1994, was a project meant to break new ground in database concepts such as exploration of “object relational” technologies.
Stonebraker and his graduate students actively developed Postgres for eight years. During that time, Postgres introduced rules, procedures, time travel, extensible types with indices and object-relational concepts. Postgres was later commercialized to become Illustra which was later bought by Informix and integrated into its Universal Server. Informix was purchased by IBM in 2001 for one billion dollars.
In 1995, two Ph.D. students from Stonebraker’s lab, Andrew Yu and Jolly Chen, replaced Postgres’ POSTQUEL query language with an extended subset of SQL. They renamed the system to Postgres95.
In 1996, Postgres95 departed from academia and started a new life in the open source world when a group of dedicated developers outside of Berkeley saw the promise of the system, and devoted themselves to its continued development. Contributing enormous amounts of time, skill, labor, and technical expertise, this global development group radically transformed Postgres. Over the next eight years, they brought consistency and uniformity to the code base, created detailed regression tests for quality assurance, set up mailing lists for bug reports, fixed innumerable bugs, added incredible new features, and rounded out the system by filling various gaps such as documentation for developers and users.
The fruition of their labor was a new database that garnered a reputation for rock solid stability. With the start of its new life in the open source world, with many new features and enhancements, the database system took its current name: PostgreSQL. (“Postgres” is still used as an easy-to-pronounce nick-name.)
PostgreSQL began at version 6.0, giving credit to its many years of prior development. With the help of hundreds of developers from around the world, the system was changed and improved in almost every area. Over the next four years (versions 6.0 – 7.0), major improvements and new features were made such as:
- Multiversion Concurrency Control (MVCC). Table-level locking was replaced with a sophisticated multiversion concurrency control system, which allows readers to continue reading consistent data during writer activity and enables online (hot) backups while the database is running.
- Important SQL features. Many SQL enhancements were made including subselects, defaults, constraints, primary keys, foreign keys, quoted identifiers, literal string type coercion, type casting, and binary and hexadecimal integer input among others.
- Improved built-in types. New native types were added including a wide-range of date/time types and additional geometric types.
- Speed. Major speed and performance increases in the order of 20-40% were made, and backend start-up time was decreased by 80%.
The four years following (versions 7.0 to 7.4) brought the Write-Ahead Log (WAL), SQL schemas, prepared queries, outer joins, complex queries, SQL92 join syntax, TOAST, IPv6 support, SQL-standard information schema, full-text indexing, auto-vacuum, Perl/Python/TCL procedural languages, improved SSL support, an optimizer overhaul, database statistics information, added security, table functions, and logging enhancements and significant speed improvements, among other things. A small measure of PostgreSQL’s intensive development is reflected in its release notes.
Today, PostgreSQL’s user base is larger than ever and includes a sizeable group of large corporations who use it in demanding environments. Some of these companies such as Afilias and Fujitsu have made significant contributions to PostgreSQL’s development. And, true to its roots, it continues to improve in both sophistication and performance, now more than ever. Version 8.0 is PostgreSQL’s long awaited debut into the enterprise database market, bringing features such as tablespaces, Java stored procedures, point in time recovery, and nested transactions (savepoints). With it came a long awaited feature — a native Windows port.
Many organizations, government agencies and companies use PostgreSQL. You will find installations in ADP, CISCO, NTT Data, NOAA, Research In Motion, The US Forestry Service and The American Chemical Society. Today, it’s rare to find a large corporation or government agency which isn’t using PostgreSQL in at least one department.
If there were ever a time for you to seriously consider using PostgreSQL to power your application or business, it would be now.