2. Uma breve história do PostgreSQL

2.1. O projeto POSTGRES de Berkeley
2.2. Postgres95
2.3. PostgreSQL

O sistema de gerenciamento de banco de dados objeto-relacional hoje conhecido como PostgreSQL, é derivado do pacote POSTGRES escrito na Universidade da Califórnia em Berkeley. Com mais de duas décadas de desenvolvimento por trás, o PostgreSQL é atualmente o mais avançado banco de dados de código aberto disponível em qualquer lugar.

2.1. O projeto POSTGRES de Berkeley

O projeto POSTGRES, liderado pelo Professor Michael Stonebraker, foi patrocinado pela Defense Advanced Research Projects Agency (DARPA), pelo Army Research Office (ARO), pela National Science Foundation (NSF), e pela ESL, Inc. A implementação do POSTGRES começou em 1986. Os conceitos iniciais do sistema foram apresentados em [ston86], e a definição do modelo de dados inicial foi descrita em [rowe87]. O projeto do sistema de regras desta época foi descrito em [ston87a]. A lógica e a arquitetura do gerenciador de armazenamento foram detalhadas em [ston87b].

O POSTGRES passou por várias versões importantes desde então. O primeiro sistema demoware se tornou operacional em 1987, e foi exibido em 1988 na Conferência ACM-SIGMOD. A Versão 1, descrita em [ston90a], foi liberada para alguns poucos usuários externos em junho de 1989. Em resposta à crítica ao primeiro sistema de regras ([ston89]), o sistema de regras foi reprojetado ([ston90b]), e a Versão 2 foi liberada em junho de 1990, com o novo sistema de regras. A versão 3 surgiu em 1991 adicionando suporte para múltiplos gerenciadores de armazenamento, um executor de consultas melhorado, e um sistema de regras reescrito. Na maioria das vezes as versões seguintes, até o Postgres95 (veja abaixo), focaram na portabilidade e na confiabilidade.

O POSTGRES tem sido usado para implementar muitas aplicações diferentes de pesquisa e produção. Dentre estas estão: um sistema de análise de dados financeiros, um pacote de monitoramento de desempenho de motores a jato, um banco de dados de rastreamento de asteroides, um banco de dados de informações médicas e vários sistemas de informações geográficas. O POSTGRES também tem sido usado como ferramenta educacional em várias universidades. Por fim, a Illustra Information Technologies (posteriormente incorporada pela Informix, que agora pertence à IBM) pegou o código e o comercializou. No final de 1992, o POSTGRES se tornou o gerenciador de dados principal do Sequoia 2000 scientific computing project.

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 o suporte estavam consumindo grande parte do tempo que deveria ser dedicado a pesquisa de banco de dados. Em um esforço para reduzir esta sobrecarga de suporte, o projeto do POSTGRES de Berkeley terminou oficialmente na versão 4.2.

2.2. Postgres95

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

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

  • A linguagem de consultas PostQUEL foi substituída pela linguagem SQL (implementada no servidor). (A biblioteca de interface libpq recebeu esse nome a partir da linguagem PostQUEL.) Consultas aninhadas não eram aceitas antes do PostgreSQL (veja abaixo), mas estas podiam ser imitadas no Postgres95 por meio de funções SQL definidas pelo usuário. As funções de agregação foram reimplementadas. Também foi adicionado suporte a cláusula GROUP BY nas consultas.

  • Foi fornecido um novo programa para executar comandos SQL interativos, o psql, utilizando o Readline do GNU, que substituiu com vantagens o programa monitor antigo.

  • Uma nova biblioteca front-end, a libpgtcl, dava suporte a clientes baseados no Tcl. Um exemplo de shell, o pgtclsh, forneceu novos comandos Tcl para interfacear programas Tcl com o servidor Postgres95.

  • A interface para gerenciar Objetos Grandes foi reescrita; até então o único mecanismo para armazenar esses objetos era o sistema de arquivos inversão [1] [2] (O sistema de arquivos inversão foi removido).

  • O sistema de regras no nível de instância foi removido. As regras ainda eram disponíveis como regras de reescrita.

  • Um breve tutorial introduzindo as funcionalidades regulares da linguagem SQL, assim como as do Postgres95, era distribuído com o código-fonte.

  • O utilitário make do GNU (em vez do make do BSD) era utilizado para a geração. Além disso, o Postgres95 podia ser compilado pelo GCC não corrigido (o alinhamento dos dados de precisão dupla foi corrigido).

2.3. PostgreSQL

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

Muitas pessoas continuam a se referir ao PostgreSQL como Postgres (agora raramente em letras maiúsculas) devido à tradição, ou porque é mais fácil de pronunciar. Este uso é amplamente aceito como apelido, ou alias.

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 deslocada para o aumento das funcionalidades e recursos, embora o trabalho continuasse em todas as áreas.

Os detalhes sobre o que aconteceu com o PostgreSQL desde então podem ser encontrados no Apêndice E.

Figura 1. Versões do PostgreSQL


Nota.  Veja Versões do PostgreSQL.



[1] Inversion file system: Esse sistema de arquivos se chama Inversão, porque as funções convencionais do sistema de arquivos e do sistema de banco de dados estão invertidas, roda sobre o POSTGRES. (N. T.)

[2] A implementação da inversão de objetos grandes divide os objetos grandes em "pedaços", e armazena os pedaços em linhas no banco de dados. Um índice árvore-B garante a procura rápida do número correto do pedaço ao serem feitos acessos aleatórios de leitura e escrita. Manual de Referência do PostgreSQL 6.3 (N. T.)

Contato

CSS válido!