Introduction to PostgreSQL

The Information Age has landed inhabitants of this planet with an overabundance of documented facts and fiction. So much so that just placing these items in a file cabinet or on your hard drive is not sufficient enough to get quick and easy access to these data. Our focus has shifted from generating large amounts of information so it can be shared, to cataloging information for quick access. Databases were developed to solve this very problem. As we move into an economy where information can be as valuable as cash, we need ways to catalog, index, and provide easy and fast access to information. Many different solutions exist today - some free, some not.

PostgreSQL is a *nix-based freeware Object-Relational Database Management System supporting almost all SQL constructs, including sub-selects, transactions, and user-defined types and functions. PostgreSQL has evolved from the same type of sophistication as Sybase, Informix and other professional RDBMSs. It supports everything from basic table structures, to extremely large datasets. This flexibility allows PostgreSQL to compete with and often times win over a plethora of alternatives including MySQL, mSQL, Microsoft SQL Server, Oracle, and Sybase.

Recent development advancements in PostgreSQL (as of the 7.1.x source tree) have fixed some major issues that kept many people from using it such as speed and data size limitations. PostgreSQL was not known for its speed during simple queries. Its complex data-integrity checks would cause minor slowdowns at times where other RDBMSs would excel. However, PostgreSQL has changed the way it handles much of its integrity checking to now be able to compete with and excel speed wise over such commonly used freeware RDBMSs as MySQL and mSQL.

In fact, in an article by Tim Perdue back in November 2000 PostgreSQL not only exceeded the speed of MySQL under low-load situations, when placed under a high load PostgreSQL continued to chug along and MySQL was left in the dust. MySQL was unable to keep mainly due to its table-level locking mechanism which prevented mass updates to occur timely - or in this case at all.

PostgreSQL's advanced features such as user-defined types and functions, sub-selects, transactions, triggers, and key integrity constraints allow it to stand next to robust enterprise level RDBMSs. Many applications require strict data-integrity checks for 100% data accuracy, such as e-commerce applications, which PostgreSQL can provide. Full support for foreign key constraints are available for use. Transactions provide added checks for high data accuracy, especially when combined with complex user-defined functions. Sub-selects add additional functionality for very complex data structures and the queries required to navigate them. Triggers allow for maximum flexibility with handing data the minute PostgreSQL receives it.

PostgreSQL is a very prominent player in the RDBMS market. Its continued development, ease of use, and development community guarantee its survival in the near future.