2. Uma breve história do PostgreSQL

O sistema de gerenciamento de banco de dados objeto-relacional hoje em dia conhecido por PostgreSQL (e por um breve período de tempo chamado Postgres95) é derivado do pacote POSTGRES escrito na Universidade da Califórnia em Berkeley. Com mais de uma década de desenvolvimento por trás, o PostgreSQL é o mais avançado banco de dados de código aberto disponível em qualquer lugar, oferecendo controle de concorrência multi-versão, suportando praticamente todas as construções do SQL (incluindo subconsultas, transações, tipos definidos pelo usuário e funções), e dispondo de um amplo conjunto de ligações com linguagens procedurais (incluindo C, C++, Java, Perl, Tcl e Python).

2.1. O projeto POSTGRES de Berkeley

A implementação do SGBD POSTGRES começou em 1986. Os conceitos iniciais para o sistema foram apresentados em The design of POSTGRES, e a definição do modelo de dados inicial apareceu em The POSTGRES data model. O projeto do sistema de regras nesta época foi descrito em The design of the POSTGRES rules system. Os princípios básicos e a arquitetura do gerenciador de armazenamento foram detalhados em The design of the POSTGRES storage system.

O Postgres passou por várias versões desde então. A primeira "versão de demonstração" do sistema ficou operacional em 1987, e foi exibida em 1988 na Conferência ACM-SIGMOD. A versão 1, descrita em The implementation of POSTGRES, foi liberada para alguns poucos usuários externos em junho de 1989. Em resposta à crítica ao primeiro sistema de regras (A commentary on the POSTGRES rules system), o sistema de regras foi re-projetado (On Rules, Procedures, Caching and Views in Database Systems) e a versão 2 foi liberada em junho de 1990, contendo um novo sistema de regras. A versão 3 surgiu em 1991 adicionando suporte a múltiplos gerenciadores de armazenamento, um executor de consultas melhorado, e um sistema de regras de reescrita reescrito. Para a maior parte, as versões seguintes até o Postgres95 (veja abaixo) focaram a portabilidade e a confiabilidade.

O POSTGRES tem sido usado para implementar muitas aplicações diferentes de pesquisa e produção, incluindo: sistema de análise de dados financeiros, pacote de monitoramento de desempenho de turbina a jato, banco de dados de acompanhamento de asteróides, banco de dados de informações médicas, além de vários sistemas de informações geográficas. O POSTGRES também tem sido usado como ferramenta educacional em diversas universidades. Por fim, a Illustra Information Technologies (posteriormente incorporada pela Informix, que agora pertence à IBM) pegou o código e comercializou. O POSTGRES se tornou o gerenciador de dados principal do projeto de computação científica Sequoia 2000 no final de 1992.

O tamanho da comunidade de usuários externos praticamente dobrou durante o ano de 1993. Começou a ficar cada vez mais óbvio que a manutenção do código do protótipo e seu suporte estava consumindo grande parte do tempo que deveria ser dedicado às pesquisas sobre banco de dados. Em um esforço para reduzir esta sobrecarga de suporte, o projeto do POSTGRES de Berkeley terminou oficialmente com a versão 4.2.

2.2. O Postgres95

Em 1994, Andrew Yu e Jolly Chen adicionaram um interpretador da linguagem SQL ao POSTGRES. O Postgres95 foi em seguida liberado para a Web para encontrar seu caminho no mundo como descendente de código aberto do código original do POSTGRES de Berkeley.

O código do Postgres95 era totalmente escrito em ANSI C e reduzido em tamanho em 25%. Muitas mudanças internas melhoraram o desempenho e a facilidade de manutenção. O Postgres95 versão 1.0.x era 30-50% mais rápido que o POSTGRES versão 4.2, utilizando o Wisconsin Benchmark. Além da correção de erros, as principais melhorias foram as seguintes:

2.3. O PostgreSQL

Em 1996 ficou claro que o nome "Postgres95" não resistiria ao teste do tempo. Foi escolhido então um novo nome, PostgreSQL, para refletir o relacionamento entre o POSTGRES original e as versões mais recentes com funcionalidade SQL. Ao mesmo tempo, foi mudado o número da versão para começar em 6.0, colocando os números na seqüência original começada pelo projeto POSTGRES de Berkeley.

A ênfase durante o desenvolvimento do Postgres95 era identificar e compreender os problemas existentes no código do servidor. Com o PostgreSQL, a ênfase foi mudada para a melhoria das funcionalidades e dos recursos, embora o trabalho continuasse em todas as áreas.

As principais melhorias no PostgreSQL incluem: