PostgreSQL
Origem: Wikipédia, a enciclopédia livre.
![]() |
|
---|---|
{{{screenshot}}} {{{legenda}}} |
|
Desenvolvedor: | PostgreSQL Global Development Group |
Família do SO: | Multiplataforma |
Modelo do desenvolvimento: | Open source |
Última versão: | 8.2.1 |
Data da última versão: | 8 de janeiro de 2007 |
Kernel: | {{{kernel}}} |
Interface: | {{{ui}}} |
Interface: | {{{iu}}} |
Licença: | Licença BSD |
Estado do desenvolvimento: | {{{estado}}} |
Website: | www.postgresql.org ou www.postgresql.org.br |
PostgreSQL é um sistema gerenciador de banco de dados objeto relacional (SGBDOR), desenvolvido como projeto software livre.
Índice |
[editar] Características
Hoje, o PostgreSQL é um dos SGBD (Sistema Gerenciador de Bancos de Dados) de código aberto mais avançados, contando com recursos como:
- consultas complexas
- chaves estrangeiras
- integridade transacional
- controle de concorrência multi-versão
- suporte ao modelo híbrido objeto-relacional
- triggers
- views
- stored procedures em várias linguagens
[editar] Histórico
O PostgreSQL é um dos resultados de uma ampla evolução que se iniciou com o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia. O lider do projeto, Michael Stonebraker, um dos pioneiros dos bancos de dados relacionais, deixou a universidade em 1982 para comercializar o Ingres, porém retornou a ela logo em seguida.
Após seu retorno a Berkeley, em 1985, Stonebraker começou um projeto pós-Ingres com o objetivo de resolver problemas com o modelo de banco de dados relacional. O principal problema era a incapacidade do modelo relacional compreender “tipos” (atualmente, chamados de objetos), ou seja, combinações de dados simples que formam uma única unidade.
O projeto resultante, chamado Postgres, era orientado a introduzir a menor quantidade possível de funcionalidades para completar o suporte a tipos. Estas funcionalidades incluiam a habilidade de definir tipos, mas também a habilidade de descrever relações - as quais até este momento eram amplamente utilizadas mas completamente mantidas pelo usuário. No Postgres, o banco de dados "compreendia" as relações e podia obter informações de tabelas relacionadas utilizando regras.
Iniciando em 1986, a equipe divulgou uma série de documentos descrevendo a base do sistema e em 1988 o projeto possuía um protótipo funcional. A versão 1 foi liberada para um grupo pequeno de usuários em junho de 1989, seguida pela versão 2 com um sistema de regras reescrito em junho de 1990. Para a versão 3, liberada em 1991, o sistema de regras foi reescrito novamente, mas também foram adicionados suporte para múltiplos gerenciadores de armazenamento e um melhorado motor de consultas. Já em 1993, Postgres havia crescido imensamente em popularidade e possuía uma grande demanda por suporte e por novas funcionalidades. Após a liberação da versão 4, a qual era uma simples versão de limpeza, o projeto foi oficialmente abandonado pela Universidade de Berkeley.
Entretanto, devido ao fato do seu código fonte estar sob uma licença BSD, o seu desenvolvimento foi continuado. Em 1994, dois estudantes de Berkeley, Andrew Yu e Jolly Chen, adicionaram um interpretador SQL para substituir a linguagem QUEL (desenvolvida para o Ingres) e o projeto foi renomeado para Postgres95. Com a divulgação de seu código pela Internet, Postgres95 iniciou uma nova vida como software open source.
Em agosto de 1996, Marc Fournier, Bruce Momjian e Vadim B. Mikheev lançaram a primeira versão externa da Universidade de Berkeley e deram início à tarefa de estabilizar o código herdado. Também em 1996, o projeto foi renomeado para PostgreSQL a fim de refletir a nova linguagem de consulta ao banco de dados: SQL. A primeira versão de PostgreSQL, a 6.0, foi liberada em janeiro de 1997. Desde então, um grupo de desenvolvedores e de voluntários de todo o mundo, coordenados pela Internet, têm mantido o software e desenvolvido novas funcionalidades.
As principais características acrescentadas nas versões 6.x são o MVCC (Multiversion Concurrency Control – Controle de Concorrência Multiversões), melhorias no SQL e novos tipos de dados nativos (novos tipos de datas e hora e tipos geométricos).
Em maio de 2000 foi liberada a versão 7.0. As versões 7.x trouxeram as seguintes novas funcionalidades: Write-Ahead Log (WAL), esquemas SQL, outer joins, suporte a IPv6, indexação por texto, suporte melhorado a SSL e informações estatísticas do banco de dados.
A versão 8.0 foi lançada em janeiro de 2005 e entre outras novidades, foi a primeira a ter suporte nativo para Microsoft Windows (tradicionalmente, o PostgreSQL só rodava de forma nativa em sistemas Unix e, em sistemas Windows - através da biblioteca Cygwin). Dentre as muitas novidades da versão 8.x, pode-se destacar o suporte a tablespaces, save points, point-in-time recovery, roles e Two-Phase Commit (2PC). Em dezembro de 2006 foi lançada a versão mais recente: 8.2.
[editar] Desenvolvimento do Projeto
O PostgreSQL é um projeto open source coordenado pelo PostgreSQL Global Development Group. Embora, as atividades do grupo sejam patrocinadas por diversas organizações de todo o mundo, seu modelo de desenvolvimento é o modelo Bazar (originalmente apresentado em A Catedral e o Bazar de Eric S. Raymond).
Portanto, o desenvolvimento do PostgreSQL é feito por um grupo de desenvolvedores, em sua maioria voluntários, espalhados por todo o mundo e que se comunicam via Internet. Logo, trata-se, de um projeto direcionado pela comunidade de desenvolvedores e de usuários, a qual qualquer pessoa pode se juntar, bastando se inscrever em listas de discussão e delas participar.
Voluntários interessados em contribuir com o projeto também podem consultar as sugestões de tarefas de desenvolvimento de novas funções e de correções de erros que são publicadas na lista TODO ou apresentar suas próprias sugestões. O código desenvolvido é submetido à equipe do projeto que pode aceitá-lo e incluí-lo nas novas versões ou recusá-lo. Voluntários também podem colaborar gerando documentação ou realizando traduções.
As ferramentas utilizadas para o apoio ao desenvolvimento são o sistema de gestão de fontes CVS (Concurrent Version System), listas de discussão, servidor de news e salas de bate-papo (IRC).
[editar] Estruturas de Decisão
O Projeto PostgreSQL é desenvolvido e direcionado pela sua comunidade de desenvolvedores e de usuários. Para coordenar o projeto há uma equipe central (core team) composta por sete desenvolvedores e um grupo de committers CVS. O código fornecido por voluntários é avaliado e aceito ou rejeitado pelos committers.
Este modelo de desenvolvimento de software, baseado no modelo Bazar originalmente apresentado em A Catedral e o Bazar de Eric S. Raymond, possibilita o desenvolvimento de software com qualidade devido, principalmente, a permitir:
- Tratar usuários como parceiros e/ou desenvolvedores. Eles contribuem diretamente com o desenvolvimento do software apresentando os problemas enfrentados, suas necessidades, suas sugestões de solução e, até mesmo, seu próprio código fonte de solução. Assim, usuários, auxiliam de forma pró-ativa, nas melhorias e na depuração do software.
- Reutilizar código fonte.
- Lançar rapidamente e frequentemente novas versões. Com uma base ampla de usuários testadores do software, os eventuais problemas são rapidamente identificados e sugestões de solução também aparecem com rapidez.
Por exemplo, no Projeto PostgreSQL, a versão 8.2.0 foi lançada exatamente 50 dias depois da versão anterior e apresentou 180 acréscimos ou alterações em código fonte implementadas por 71 programadores diferentes.
[editar] Estado Atual
Inicialmente desenvolvido na Universidade de Berkeley, Califórnia, a partir de 1996, o PostgreSQL firmou-se como um projeto de software open source desenvolvido por uma comunidade de voluntários sob a coordenação do PostgreSQL Global Development Group.
Além de doações, o projeto PostgreSQL se sustenta pelo patrocínio de diversas empresas, entre as quais se destacam: Fujitsu, Hub.Org, NTT Group, Red Hat, Skype, SRA e Sun Microsystems.
O software tem adquirido prestígio na comunidade Linux, tendo recebido diversas vezes o prêmio Linux Journal Editor's Choice de melhor sistema de gerenciamento de banco de dados (SGBD).
Além da comunidade Linux, a aceitação do PostgreSQL também tem se ampliado. Há entre os seus usuários grandes empresas internacionais, órgãos governamentais de vários países e universidades de prestígio mundial. Uma lista dos principais usuários pode ser vista em www.postgresql.org/about/users. Em www.postgresql.org/about/casestudies podem ser vistos estudos de caso de aplicações do PostgreSQL.
[editar] Radiografia
Nesta seção são apresentadas medidas e estimativas referentes ao PostgreSQL 8.2.0 obtidos pelo SLOCCount de David A. Wheeler. Esta versão de PostgreSQL apresenta mais de 509 mil linhas de código, o que segundo o modelo COCOMO exigiria um esforço estimado de pouco mais de 139 pessoas-anos para o seu desenvolvimento. Estima-se que o tempo necessário para uma empresa desenvolver um software deste porte é de 3 anos e meio (aproximadamente 42 meses), o que corresponderia a cerca de 40 programadores trabalhando em paralelo. Considerando que o salário médio de um programador nos EUA é de cerca de US$ 56.286,00 por ano, e multiplicando por 2,4 para considerar custos adicionais além do salário dos programadores, o custo estimado para o desenvolvimento de um software do porte do PostgreSQL 8.2.0 é de US$ 18.812.132,06.
Página web | http://www.postgresql.org/ |
Início do projeto | 1985 |
Licença | Licença BSD |
Versão atual | 8.2.0 |
Data da versão atual | 5 de dezembro de 2006 |
Linhas de código fonte | 509.835 |
Esforço estimado de desenvolvimento (pessoa-ano / pessoa-mês) |
139,26 / 1.671,14 |
Estimativa de tempo de desenvolvimento (anos) | 3,5 |
Estimativa de nº de desenvolvedores em paralelo | 39,79 |
Estimativa de custo (US$) | 18.812.132,06 |
A principal linguagem de programação utilizada no desenvolvimento do PostgreSQL 8.2.0 é o ANSI C. Entretanto, também são utilizadas minoritariamente outras linguagens conforme mostra a tabela.
Linguagem | Linhas de código | % |
---|---|---|
ANSI C | 479.298 | 94,01 |
yacc | 14.698 | 2,88 |
sh | 7.805 | 1,53 |
lex | 5.349 | 1,05 |
perl | 2.608 | 0,51 |
asm | 65 | 0,01 |
python | 12 | 0,00 |
[editar] Ligações externas
- Página oficial do Postgresql (em inglês)
- Comunidade brasileira de PostgreSQL
- Documentação PostgreSQL (em inglês)
- Instalando PostgreSQL no Windows 98