O PostgreSQL

Tenho ouvido falar muito no PostgreSQL. Dizem que tem um sistema de arquivar em memória as modificações, tornando o processo mais rápido. Mas que, às vezes, dá sobrecarga que resulta em tilt.

Alguém conhece vantagens e desvantagens desse banco de dados, em comparação com outros abertos e fechados?

Por Ranieri Teixeira

Caro Nassif,

Os principais bancos de dados usados em aplicações pequenas ou gigantes são baseados no Modelo Relacional que provê implementações muito eficientes e eficazes para guardar dados, processá-los e recuperá-los através de SQL.

Daí, surgiu o entendimento comum (ou conceito), tanto na academia quanto nas empresas, de um “sistema de banco de dados” que informa as principais funcionalidades esperadas para as aplicações da área.

O PostgreSQL implementa praticamente todas as funcionalidades consideradas essenciais, por isso é dito ser mais avançado que o MySQL.

Ou seja, na medida em que sua base de dados cresce em conteúdo e público alvo, você precisará de maior suporte do sistema de banco de dados; e este suporte será tão bom quanto for mais completa a implementação do modelo padrão para um sistema de BD.

Em particular, acho o projeto PostgreSQL muito bem organizado e a documentação é muito honesta e atualizada.

Por André Leite

Olá Nassif.

Eu sou jornalista. Trabalhei em redação por uns 10 anos e já tem uns dois que montei uma empresa que desenvolve websites. Antes da empresa, já desenvolvia trabalhos na web calcados em linguagens de programação, como o PHP, e bancos de dados, como o MySQL e o PostgreSQL. (continua nos comentários)

Luis Nassif

41 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

  1. O Governo do Ceará tem uma
    O Governo do Ceará tem uma política agressiva de implantação de software livre em todas as suas secretarias. O DETRAN já utiliza o PostgreSQL plenamente e apresentam o caso com satisafação.

  2. Caro Nassif,

    Os principais
    Caro Nassif,

    Os principais bancos de dados usados em aplicações pequenas ou gigantes são baseados no Modelo Relacional que provê implementações muito eficientes e eficazes para guardar dados, processá-los e recuperá-los através de SQL.

    Daí, surgiu o entendimento comum (ou conceito), tanto na academia quanto nas empresas, de um “sistema de banco de dados” que informa as principais funcionalidades esperadas para as aplicações da área.

    O PostgreSQL implementa praticamente todas as funcionalidades consideradas essenciais, por isso é dito ser mais avançado que o MySQL.

    Ou seja, na medida em que sua base de dados cresce em conteúdo e público alvo, você precisará de maior suporte do sistema de banco de dados; e este suporte será tão bom quanto for mais completa a implementação do modelo padrão para um sistema de BD.

    Em particular, acho o projeto PostgreSQL muito bem organizado e a documentação é muito honesta e atualizada.

  3. Nassif,

    Eu trabalho numa
    Nassif,

    Eu trabalho numa empresa multinacional cujo website, disponível em 21 idiomas, atende a mais de 30 milhões de visitantes únicos todos os meses.

    Cada visitante único gera dezenas de chamadas, e cada chamada envolve dezenas de tabelas de um banco de dados extremamente complexo.

    Nossos sistemas rodam inteiramente em MySQL.

    Posso afirmar, sem nenhuma dúvida, que o PostgreSQL atenderia plenamente as nossas necessidades.

  4. Bem, vamos lá.

    Antes de mais
    Bem, vamos lá.

    Antes de mais nada, o PostgreSQL é um dos poucos bancos de dados relacionais que já é orientado a objetos, o que facilita muito a seleção e extração de dados do banco, do ponto de vista de usuários e programadores. Hoje em dia, é o único banco de dados de código aberto que tem todas as funções suportadas por bancos de dados comerciais, como Oracle, DB2 e Informix. O MySQL é um produto interessante também, mas não tem essas funções; e além disso, apesar de ser muito usado, o estado legal de seu código é hoje em dia nebuloso, o que não é o caso do PGSQL.

    A principal vantagem que vejo no PostgreSQL é o fato de poder ser obtido livremente, ao contrário dos bancos-mamute tradicionais; ou seja, se você quiser estudar por conta própria ou por livros, você é livre para usar o PostgreSQL como quiser, independentemente de licenciamentos caríssimos como é o caso do Oracle e do DB2. Por outro lado, se você quiser comprar o suporte, ele é fornecido inclusive pelo próprio time que desenvolve o software.

    Quanto ao que você citou, todos os bancos de dados usam memória (bastante) para executar suas operações. E qualquer banco de dados falhará se os recursos do servidor (processador, memória e disco) não forem bem dimensionados. Não é incomum, por exempio, os processos do Oracle “travarem” 2 ou 3 GB de memória só para eles.

    No mais, quanto a comparativos do PGSQL com outros bancos de dados, veja o FAQ.

  5. Eu usei bastante esse banco e
    Eu usei bastante esse banco e até realizei alguns testes de carga nele. O resultado foi surpreendente: ele é muito rápido. Além disso, a instalação e administração é muito simples se comparada a outros bancos.

    Aguenta porrada e suporta desaforo?

  6. Sim, aguenta porrada e
    Sim, aguenta porrada e suporta desaforo. Qual o tamanho da porrada e do desaforo? Você consegue estimar ?

    Séries de dados e informações para tabelas Excel e notas.

  7. A velocidade dele se dá
    A velocidade dele se dá porque carrega os índices das principais tabelas (cache) para a RAM que é muito rápida, reduzindo o acesso ao HD que é lento por ser mecânico.

    Devido à velocidade da RAM pode-se trabalhar com os índices(texto) zipados o que reduz o consumo da RAM.

  8. Não me lembro onde li, mas
    Não me lembro onde li, mas parece que o Google usa essa tecnologia e trabalha com as suas tabelas em RAM de várias máquinas o que explica a velocidade de resposta.

  9. Nassif,

    Como a maioria dos
    Nassif,

    Como a maioria dos grandes projetos em Software Livre, a qualidade do PostgreSQL tem crescido vertiginosamente nos últimos anos. Hoje em dia, este está quase em igualdade (alguns dizem que já, outros dizem que já passou) com um que é líder de mercado (“oráculo”).

    Posso falar sobre a nossa utilização diária em uma grande empresa(5000+ funcionários). Os dois únicos bancos homologados aqui na empresa são os já mencionados. E posso dizer, que o PostgreSQL não perde em nada para o líder. Temos bases de 500G rodando tranquilamente sobre o PG. Em consultas (querys SQL) o PG geralmente é mais rápido. A vantagem do líder está nas “stored procedures” – PL/SQL. O pessoal do PG já tem uma versão própria, a PL/pgSQL.

    O avanço do PostgreSQL só não é maior por motivos de inércia do mercado (empresas e DBA’s não querem “gastar” para absorverem a nova opção) e de uma leve coerção de outras empresas que vendem produtos fechados de DBMS. Porém, ótimos DBA’s estão absorvendo e integrando o PG à diversas soluções. E, claro, ganhando muito dinheiro com isso – já que não tem que repassar royalties para fora. Por exemplo, a maioria dos vendedores de DBMS não autorizam a publicação de comparativos de performance entre os banco de dados – pois aí se veria a ótima performance do mesmo (vide o http://www.tpc.org, não há um banco de dados que não seja pago no ranking).

    Há muitas informações na rede, como no site oficial do projeto: http://www.postgresql.org

    DBA – DataBase Administrator – Administrador do banco de dados.
    DBMS – DataBase Management Systemas – Sistemas Gerenciadores de Banco de Dados.

  10. Os programas que gerenciam
    Os programas que gerenciam bancos de dados dependem muito do Sistema Operacional (SO) em que rodam, dados o gerenciamento de processos e de memória implementados por cada um deles.

    É por isso que o SQL Server roda tão bem sobre o Windows, enquanto os outros programas apresentam bugs diversos nesse SO e penam para conseguir desempenho semelhante.

    Em sistemas Unix, brilham o PostgreSQL e o MySQL. Eu uso esse último pela praticidade de manter bancos de dados distribuídos, característica também aproveitada, por exemplo, pelo Google. Além disso, os blogs baseados em WordPress também utilizam o MySQL.

    Na internet, você vai encontrar referências a “uma das maiores implantações de PostgreSQL no Brasil, na Atrium Telecom, empresa de telefonia corporativa de São Paulo. O PostgreSQL é utilizado como banco de dados do sistema de billing e tem uma base de dados de mais de 100GB e efetua 1 milhão de transações diárias. As maiores tabelas do sistema contam com mais de 70 milhões de linhas.”

    Na prática, a escolha do programa vai depender do SO que você usa.

  11. Toda informação que sempre
    Toda informação que sempre obtive é de que o Postgresql equivale ao Oracle, sendo portanto uma solução robusta, com elevada escalabilidade. Custos muitissimo inferiores ao Oracle, podendo ser instalado gratuitamente em plataforma Linux.

  12. “Séries de dados e
    “Séries de dados e informações para tabelas Excel e notas.”

    Isso é moleza, chumbo grosso mesmo são as milhares de transações de um banco comercial!

  13. Luis

    Para o que você
    Luis

    Para o que você precisa certamente ele aguenta sim, sem grandes problemas. Já vi bases de mais de 1TB em PostgreSQL, rodando suavemente. Se vem de Excel então, mais tranquilo ainda. A conversão não é complicada, é possível fazer o PostgreSQL importar planilhas excel sem grandes ginásticas (mas não é trivial de fazer).

    Claro que depende do hardware usado, de um bom DBA para instalar e manter, etc. Mas disso todos precisam.

    Aqui na empresa usamos apenas ele, em aplicações voltadas para web, geoprocessamento e data cleaning. Temos também um mini sistema de ERP nele, nada muito complexo, mas atendendo a necessidade daqui.
    Ele suporta tudo sem reclamar e os desenvolvedores gostam de trabalhar com ele.

    Certamente Oracle e SQLServer teem mais recursos, mas são úteis apenas para grandes clientes. Quanto ao MySQL, já usei e achei bom, parece-me equivalente ao PostgreSQL (com alguns recursos a menos e outros a mais). Escolhemos o PostgreSQL aqui por ser de fato software livre, o licenciamento do MySQL é meio diferente.

  14. Nassif,

    Não tem como errar
    Nassif,

    Não tem como errar com o PostgreSQL, ele é muito bom. É leve se a sua aplicação for leve e aguenta porrada se a sua aplicação for pesada. É fácil de usar, tem uma comunidade vibrante e tem a melhor herança possível que é Ingress feito na Universidade de Berkeley. Ele possui uma série de extensões para geoprocessamento, precessamento de dados estatisticos, indexação de texto… Veja quem usa o PostgresSQL:
    http://en.wikipedia.org/wiki/Postgresql#Prominent_users

  15. Para importar/exportar dados
    Para importar/exportar dados para planilhas e notas, ele suporta muito bem, desde que, como o Paulo Fressel escreveu, tenha um bom hardware disponível (uma boa quantidade de memória RAM, discos rígidos rápidos etc), o que, aos preços de hoje não é tão difícil.

    Não esquecendo, é claro, do peopleware qualificado e experiente 🙂

  16. Nassif, o PostgreSQL se não
    Nassif, o PostgreSQL se não for o mais completo é sem dúvida um dos melhores SGDBs, que existem, mesmo sendo de distribuição livre ele hoje atende a muitas grandes empresas no mundo todo. Aqui na empresa temos uma base com mais de 2.5 T (Terabytes) gerenciadas com PostgreSQL e não há problemas. Os problemas relacionados a *tilt* o qual lhe informaram certamente foi por pessoal pouco experiênte com o uso desse produto e que certamente não soube ou não tem conhecimento de como apertar todos os parafusos para que o mesmo funcione adequadamente ao seu volume de dados.

  17. Os comentários estão bem
    Os comentários estão bem colocados e representam boas informações sobre o tema mas,”bancos de dados relacionais que já é orientado a objetos” é um descuido conceitual que deve ser evitado.

  18. Olá Nassif.

    Eu sou
    Olá Nassif.

    Eu sou jornalista. Trabalhei em redação por uns 10 anos e já tem uns dois que montei uma empresa que desenvolve websites. Antes da empresa, já desenvolvia trabalhos na web calcados em linguagens de programação, como o PHP, e bancos de dados, como o MySQL e o PostgreSQL.

    Dentre outros trabalhos, desenvolvi o site da Rádio USP – que já passou por algumas modificações estéticas desde que desenvolvi mas que continua com o mesmo código interno – e um CRM (ferramenta que gerencia contatos com clientes) para uma construtora que hoje tem mais de 30 mil clientes cadastrados e umas duas dezenas de corretores de imóveis usando.

    Nesses dois casos eu usei MySQL mas te garanto que o Postgre daria conta do recado tranqüilamente. Na verdade esses trabalhos são fichinha para estes gerenciadores de bancos de dados.

    Tanto a sua pergunta quanto a discussão dos comentaristas me parecem meio fora de foco (sem arrogância). Deixa eu me explicar melhor.

    COMO UM SISTEMA GERENCIADOR DE BANCO DE DADOS FUNCIONA?

    Os gerenciadores de bancos de dados escrevem arquivos no disco rígido do computador. Basicamente eles trabalham com tabelas. Cada tabela um arquivo. Quando você pergunta se ele aguenta “porrada”, na verdade isso depende mais do seu computador do que do banco de dados. A leitura das tabelas, o processamento dos dados e etc. dependem mais da máquina do que do banco de dados.

    Há sim detalhes que são importantes, como a modelagem dos dados (como eles serão organizados nas tabelas) que fazem com que você consiga usar menos recursos da máquina para fazer o mesmo processamento de dados, mas acho que dificilmente isso será um fator limitante para você. Pense que esses gerenciadores são responsáveis por coisas como gerenciar todos os dados que um banco armazena e aí você tem uma idéia de como será difícil chegar nesse nível de utilização. E mesmo nesse caso, em que contratam-se os melhores profissionais para modelar os dados de forma correta, é preciso ter muito poder de processamento para fazer o sistema trabalhar. Os datacenters dos bancos são gigantescos e poderosos.

    INTEGRIDADE DOS DADOS É A CHAVE

    Mas então porque as pessoas usam gerenciadores de bancos de dados se com uma planilha do excel o resultado seria o mesmo do ponto de vista da armazenagem? Pela necessidade de manter os dados íntegros em primeiro lugar, e em segundo, pelas possibilidades de retrabalho, associações etc. com esses dados.

    Primeiro de tudo, qualquer gerenciador, por mais simples que seja, é capaz de preservar os dados se acontecer de chegarem dois pedidos de alteração de uma unidade de dados ao mesmo tempo. Ele gerencia isso, colocando os pedidos numa fila, fazendo uma alteração por vez e (quase) nunca deixando que os dados se corrompam.

    Outra utilidade importante desses gerenciadores é o de fazerem transações (transactions). Pense que alguém vá fazer um compra de um livro num site de e-commerce. Quando for pagar, essa pessoa aperta um botão só, mas na realidade duas transações são feitas: sai o dinheiro da conta dele, e depois esse mesmo valor é creditado na conta da loja.

    Suponha que você consiga fazer a primeira transação, o dinheiro sai da conta do comprador, mas na hora do dinheiro entrar na conta do lojista há um problema no sistema, por causa de um bug, de uma falha no servidor etc. Nesse caso, mesmo que o problema seja crítico, como alguém tirar a máquina da tomada, o banco de dados é capaz de, caso algumas das transações planejadas não seja completadas, voltar ao estado que estava antes da primeira operação.

    É impossível ter um sistema que não falhe. Cedo ou tarde vai acontecer. E nessa hora os gerenciadores de bancos de dados são a salvação.

    Vale ressaltar também que os BDs também te dão ferramentas e liberdade para manipular os dados como bem quiser, mudando de gerenciador ou lugar de armazenagem com relativa facilidade.

    PENSE NA INTERFACE PRIMEIRO

    Sua pergunta é meio vaga para eu ter certeza do que sugerir, mas acho importante você saber que a interface às vezes pode te fazer decidir por um sistema. Por exemplo, o WordPress que gerencia seu blog usa um banco de dados. Ele aceita vários tipos, mas a grande maioria das pessoas usa o MySQL. O WordPress é um conjunto de scripts (arquivos que são capazes de executar tarefas com dados) que armazena e recupera dados de um banco de dados.

    O WordPress é sua interface. Ele faz o trabalho sujo. Guarda os dados enviados de maneira organizada no BD e é capaz de ir lá e trazer o que foi guardado. Essa comunicação é feito usando uma linguagem chamada SQL (Structured Query Language – http://en.wikipedia.org/wiki/SQL). Essa é a linguagem que os bancos de dados usam. Essa linguagem, como tantas outras, é um standard criado por órgãos dedicados a isso.

    Um bom gerenciador de banco de dados entende quase tudo dessa linguagem. Digo quase tudo porque essa linguagem, como qualquer outra, é um ente vivo, que está sempre sendo alterado, melhorado. É muito difícil que um banco de dados respeite 100% a linguagem. Isso é quase um utopia. O Postgre é reconhecido por ser um dos BDs que estão mais próximos da perfeição.

    Mas isso quer dizer que o MySQL, ou o SQLite são gerenciadores ruins? Nem de longe. O principal é fazer o grosso e duvido que você tenha problemas com isso. Você vai ter que fazer operações muito complexas para se deparar com algum problema de interpretação. E nem assim está tudo perdido. Mesmo que um determinado BD não entenda um comando SQL, é quase certo que ele seja capaz de realizar a tarefa que se deseja, mas você vai ter que contornar o problema dando a ordem de um jeito que ele entenda.

    Por isso a interface é tão importante. Os gerenciadores de bancos de dados são programas que interpretam SQL e fazem isso de modo a preservar a integridade dos dados, mas você vai aprender SQL? Vai se debruçar sobre o assunto a ponto de ter que parar seu trabalho por causa de um erro de interpretação da linguagem. Acho difícil.

    No fim, quem vai ter que lidar com isso é um programa, que fará a interface entre você e o BD. O WordPress faz isso quando você posta. E mais, quando alguém acessa o blog, ele vai ao BD, pega os posts mais recentes, formata esses dados em html e envia para o visitante.

    Eu não sei quais são seus objetivos, mas você pode tanto usar um script que fica num servidor web, como o WordPress ou o Drupal, como pode usar um programa no seu computador. Vi em outro post que você usa Mac. Eu também uso e na minha opinião o melhor programa para essa finalidade no mundo Mac é o Navicat (http://www.navicat.com/). Há também versões para Windows. Ele trabalha com os principais BDs, e é muito bom.

    Com esse programa, você tanto pode trabalhar dados (inserir, ler, apagar) de um BD rodando num servidor remoto como pode lidar a um BD instalado na sua máquina, o que (teoricamente) é mais seguro.

    O QUE É MELHOR? UM SISTEMA PROPRIETÁRIO OU UM LIVRE?

    Há algumas áreas em que o software livre se desenvolveu muito. No desktop os sistemas livres são minoria, mas no caso dos BD’s, eles disputam pau a pau com as versões pagas.

    Os três bancos de dados livres mais populares são SQLite, MySQL e Postgre. No mundo pago, o MSQL, da Microsoft, e os BD’s da Oracle são os mais usados.

    A primeira vantagem do mundo livre é não pagar licenças. Mas no gerenciamento de bancos de dados, esse chega a ser um valor pequeno perto do que é preciso investir, visto que a manuntenção do sistema e dos dados é bem cara. Isso faz com que maioria das grandes empresas optem pelos proprietários.

    Basicamente isso está ligado ao suporte. Se você usar um comando SQL que não é entendido ou se o sistema tiver qualquer comportamento estranho, você tem para quem ligar e pedir ajuda.

    Isso é tão importante em sistemas críticos (onde qualquer falha é uma dor de cabeça enorme) que os softwares livres perceberam que era preciso oferecer suporte para competir. Os programadores que desenvolveram esses sistemas começaram a se organizar para oferecer isso. Um outro comentarista até falou disso. Mas esse não é um fator de decisão.

    De novo dou palpite no escuro, mas é preciso avaliar o quão complexo é o que você precisa. Imagino que no seu caso, um profissional com experiência nessa área seja tudo o que você precisa. Ele vai te dar o suporte para criar o BD e administrá-lo.

    Um outro comentarista disse para você se preocupar com o fato do MySQL ter uma licença nebulosa. Ele se refere ao fato de a gigante Sun (que dentre outras coisas criou o Java) ter comprado a fundação que desenvolvia e dava suporte ao MySQL. Isso já tem uns três anos ou mais. Outros casos assim já aconteceram. O que a Sun tem feito é profissionalizar o suporte e ganhar dinheiro com isso.

    Eles são praticamente “obrigados” a manter o código aberto para gerar interesse pelo sistema e para receber as benesses do desenvolvimento comunitário em que os softwares livres se apoiam. Normalmente, quando uma grande corporação compra um sistema aberto surge esse temor bobo, fruto até de uma certa ignorância.

    O fato é que agora o MySQL tem um suporte muito mais profissional e qualificado, o que deveria até ser um ponto a favor. O código continua aberto e caso eles resolvam fechar, é bom que isso fique claro, eles vão travar o código que vier a ser desenvolvido posteriormente, e certamente programadores que já usam o sistema vão pegar o código do ponto onde ele parou de ser desenvolvido pela Sun e continuar a aprimorá-lo. Por isso é que é praticamente impossível que a Sun venha a tomar essa decisão.

    Eu recomendo fortemente que você use um sistema livre. Não porque ele é aberto, já que duvido que você vá investigar as entranhas do sistema e mexer no código dele, mas primeiro porque em sistemas menos complexos, como imagino que é o seu caso, o preço da licença é parte considerável do total investido, e segundo porque é mais fácil encontrar suporte e profissionais qualificados para darem consultoria.

    MAS QUAL SISTEMA EU ESCOLHO?

    Depende muito da sua necessidade. O mais rápido de todos é o SQLite (http://www.sqlite.org/). Para você ter uma idéia do poder desse sistema, ele é responsável por todo o armazenamento de informações no iPhone, da Apple. A Apple também o utiliza, e muito, no desktop (por exemplo, ele é que armazena as fotos do iPhoto ou os emails do Mail).

    Mas como nem tudo são flores, apesar da sua incrível rapidez, ele tem um problema. Cada vez que você vai inserir dados, o sistema fica incapaz de atender pedidos de leitura de dados. Simplificando, se ele fosse o sistema do seu blog, a cada envio de comentário ou de post, o sistema não seria capaz de gerar páginas para quem acessasse o site. Isso faz dele uma ótima opção para quando você não precisa de várias operações acontecendo ao mesmo tempo (concorrência), como num desktop ou num smartphone. Ele praticamente não é utilizado em sites.

    O SQLite também carrega o fardo de estar em último lugar entre os sistemas gratuitos e populares na interpretação do SQL. A velocidade tem seu preço.

    O Postgre é muito robusto (código bem testado, sistema estável) e lidera o ranking dos que mais respeitam o SQL. Mas tem um problema, ele é muito menos popular do que o MySQL. (Google => Postgresql = 19,600,000; MySQL => 232,000,000). Considero isso um problema para você. Achar quem dê suporte e entenda esse BD é muito mais difícil do que se você escolhesse o MySQL.

    O MySQL é muito robusto e estável, assim como o Postgre. Ele é relativamente mais lento do que o SQLite, mas tão veloz quanto o Postgre. Mas como eu disse isso está muito mais ligado á implementação e modelagem dos dados do que ao BD em si. E a quantidade de gente que trabalha com esse sistema é gigantesca. A USP, por exemplo, que só trabalha com software livre no seu datacenter, usa ele na grande maioria dos casos.

    Vale citar também o Oracle Express (http://www.oracle.com/technology/products/database/xe/index.html). Ele é uma versão gratuita do famoso BD 10g da Oracle. É gratuito e aberto, mas tem algumas limitações em relação ao tamanho (limitações do ponto de vista de um heavy user).

    Como a Oracle é líder nesse setor, esse sistema gratuito é bastante utilizado por quem quer mergulhar na tecnologia deles e pode ser uma opção para você.

    ISSO TUDO É MUITO COMPLEXO. ESSAS SÃO AS ÚNICAS OPÇÕES?

    Por fim há os sistemas pensados para o consumidor final. O mais famoso é o Access, da Microsoft. Esses sistemas juntam o BD em si a uma interface. O Access não tem versões para Mac.

    Mas um software relativamente novo, chamado Bento, inovou nesse mercado. E só roda em Mac. Ele foi desenvolvido por uma subsidiária da Apple, chamada Filemaker. Essa empresa foi comprada há mais de uma década e há muito tempo desenvolve um BD muito robusto e confiável.

    O Bento se propõe a juntar a robustez dos BDs da Filemaker com a facilidade de uso e interface superior do mundo Mac. Dê uma olhada no site para se encantar: http://www.filemaker.com/products/bento/overview.html. Só que se a escolha for essa o sistema, que é instalado apenas na sua máquina, é inviável que outras pessoas acessem ou gravem dados via rede. Mas não se acanhe com isso. É um produto que eu classificaria até de revolucionário. E bem barato!

    Em todo caso, se você quiser explicitar um pouco melhor o que pretende fazer, talvez eu possa te tirar algumas dúvidas. Fique à vontade para mandar um email.

    Espero ter ajudado.

    Abraços cordiais de um fã do seu trabalho.

  19. Eu não sou DBA mas como tem
    Eu não sou DBA mas como tem muito por aqui se eu disser bobagem eles me corrigirão prontamente.

    Sempre achei que o forte do postgresql, mysql, oracle estão mais voltados pro lado do servidor. Usá-los para dados de planilha é matar formiguinha com tiro de canhão.

    No lado do desktop não é melhor um sqlite? (http://www.sqlite.org/).

  20. Oi Nassif, pesquisei um
    Oi Nassif, pesquisei um pouquinho e achei esse software, não sei se é algo nesse nível que você deseja: http://www.sungard.com/financialsystems/products/famesoftware.aspx. Eles têm um pdf desse produto em http://www.sungard.com/~/media/financialsystems/brochures/fame_datasheet_fame%20software.ashx.

    Achei também um “paper” na SpringerLink, que provavelmente seu DBA deverá ler pra implementar as séries temporais no PostgreSQL: http://www.springerlink.com/content/f650365w01425185/.

    []’s
    Paulo

  21. Eu o utilizo no trabalho.
    Eu o utilizo no trabalho. Estudei para a prova recente da Dataprev pelo Silerschatz e pelo material o PostgreSQL. Agüenta porrada e suporta desaforo sim senhor. MUITO BOM

  22. Detalhe importante: Segue a
    Detalhe importante: Segue a risca o padrão SQL. Na verdade ele implementa quase 100% do ANSI SQL 2003, inclusive procedures. Isto significa que, caso você não goste do PgSQL, pode migrar para, digamos, MySQL ou DB/2 com pouco esforço (tenta fazer com o Oracle!)

    marcosb tem razão quanto memória e processamento estão em jogo (tipo celerdinhos com vaga lembrança), mas vale lembrar que o SQLite é bom para bases pequenas de uso local (na própria máquina onde o sistema roda).

  23. Prezado Luis Nassif, pergunte
    Prezado Luis Nassif, pergunte ao pessoal do Serpro sobre que banco de dados a Receita Federal utiliza, os “pequeninos” tamanhos das base deles e a quantidade de transações por dia (que apliactivo eles utilizam para isto). Ai vai ver o que é “bom para tosse”.

  24. Nassif,

    Tem um monte de cara
    Nassif,

    Tem um monte de cara fera em computação, como eu (modestamente é claro), e que pode te ajudar com essas coisa. Sugestão – que tal detalhar mais esses super projetos seus? Acho o forum perfeito para esse tipo de coisa.

    Abraço,
    Gustavo Amigo

  25. Nassif

    Segundo um amigo meu,
    Nassif

    Segundo um amigo meu, professor da UFPR, o PostgreSQL não fica devendo nada ao Oracle em performance e robustez. Só que não custa nada, enquanto com o Oracle, certamente vc gastaria alguns milhões para rodá-lo no site.
    Aqui no TJPR, temos alguns sistemas em PostgreSQL, como o Portal Corporativo e o Diário da Justiça Eletrônico, ambos implantados há pouco tempo. E a tendência é migrar as demais aplicações também.
    Posso indicar o email deste amigo professor que é fera em BD e aplicações web, se quiser.

    Abraços.

  26. Prezado Nassif,

    Lí, com
    Prezado Nassif,

    Lí, com muita atenção, seu tópico e os comentários postados. Alguns, são de excelente qualidade e denotam muito conhecimento de seus autores.

    Sou Consultor de TI (cuja tese de mestrado em BD relacional orientada a objeto ainda é muito atual, apesar de ter cerca de 20 anos). Utilizo as interfaces Joomla e WordPress nos meus sites pessoais e de organizações às quais dou suporte. Todos utilizam o MySQL nativo agregado ao hosting. Faço isso por comodidade e por pensar que “time que está ganhando não se mexe.” Outros sites muitíssimo mais “pesados” como Wired.com ou slashdot.com são exemplos de MySQL que funcionam muito bem.

    Aí, questiono você: por que migrar de MySQL para PostgreSQL?

    Sem maiores detalhes, não dá para opinar. Muito bem colocada a opinião de Gustavo Amigo: sem fazer Análise da Situação Atual (também sou filho da PUC-Rio), não dá para, simplesmente, “prescrever” o PostgreSQL.

    Seria necessário que você fizesse uma completa descrição do sistema que deseja implementar.

    As opiniões advindas neste novo contexto seriam enriquecedoras para todos nós. Pelo menos para mim, que me considero um eterno aprendiz em se tratando de TI.

  27. Sobre a comparação com MySQL,
    Sobre a comparação com MySQL, tenho que ressaltar que até pouco tempo MySQL não tinha nem restrições de integridade nem stored procedures nem subconsultas. Ou seja, não tinha o mínimo que um banco precisava ter para aplicações sérias. Como isso tudo só foi adicionado última versão (5), não se pode dizer que é um banco maduro. Em ambiente empresarial, conheço bem como uma grande rede de varejo usa o MySQL e sei de todos os problemas que enfrentam. Simplesmente, foi uma péssima escolha.

  28. Nassif,

    Um outro BD de
    Nassif,

    Um outro BD de código aberto muito bom, só que menos popular que o MySQL e PostgreSQL é o Firebird.
    Funciona muito bem, aguenta base de dados grande, tem uma comunidade bem ativa no Brasil, você consegue suporte com facilidade e é de fácil instalação e uso.
    Para conhecer melhor o Firebird é só acessar a (www.firebase.com.br) lá você vai encontrar muitos artigos e dicas sobre o uso do Firebird.

  29. Nassif, se for usar o
    Nassif, se for usar o PostgreSQL, tente ajuda de um profisisonal.
    Ele é tão eficiente quanto um ORacle ou SQL Server, mas tão temperamental quanto.
    O processo de Vacuum, que imagino seja oq ue vocÊ descreveu, é transparente e automático na versãoi nova, mas o fine tuning do banco pode deixar vocÊ assombrado com a performance dele.
    Mas isso depende MUITO de como seu sistema vai falar com ele.]

    No geral, ele é preferível em méritos técnicos, mas depende muito do pilto para obeter resultados satisfatórios a cada situação.

  30. Caros, não existe “banco
    Caros, não existe “banco relacional orientado a objetos”. Ou é relacional, ou é orientado a objetos. O que o PostgreSQL é, é objeto-relacional, isto é, relacional (exige 3ª, 4ª forma normal ao contrário do orientado, que não tem normalização) porém você pode criar objetos dentro dele.
    O único que poderia ser considerado “banco relacional orientado a objetos” seria o caché, mas o nome disto é banco multidimensional. Ou seja, para DW você pode utlizar os dados originais, pois para a produção você o usa como relacional, prá relatórios você o usa como orientado à obj.
    MySQL é bom para websites (muita consulta, pouca atualização) e o PostgreSQL é melhor para alta carga de atualizações.
    O criador do PostgreSQL foi o Dr. Stonebraker, o mesmo criador do Ingres (por isto, POSTingres). Conheci pessoalmente o principal desenvolvedor, Mr. Bruce Monjian, esteve no Brasil ano passado.

  31. ejedelmal : Sim, a 8.3 está
    ejedelmal : Sim, a 8.3 está fantástica, eu uso ela para meus projetos de brinquedo em casa. E o auto-vacuum está ótimo.

    No Ubuntu 64, com as flags de compilação afiadinhas, ele aguenta umas cargas que dão medo. A CPU entorta antes do BD pedir água.

    Mas é aquilo, cada caso é um caso.

  32. O Detran do Paraná foi
    O Detran do Paraná foi construído em cima de um banco de dados PostGre. Todo os sistema foi construído em Software Livre e está disponível para outros estados. Sistema de Detran precisa conciliar várias entradas ao mesmo tempo, do próprio órgão, de consultas de multas, tributos e outras informações pela internet pelos motoristas, dos bancos (pagamanto de IPVA), despachantes, etc. O banco de dados tem poucas ocorrências de problemas. Obviamente isto depende não só da tecnologia, mas da qualidade de sua implementação, como e todas outras opções do mercado.
    A Celepar – informática do Paraná, usa o PostGre como banco de dados preferencial para o desenvolvimento de sistemas. Posso indicar também o departamento de informática da Universidade Federal do Paraná como uma referência no conhecimento deste banco de dados, onde sugiro entrar em contato.
    Segue matéria a respeito:
    http://www.celepar.pr.gov.br/modules/noticias/article.php?storyid=51
    E sites de referência:
    Celepar: http://www.celepar.pr.gov.br
    UFPR: http://www.c3sl.ufpr.br/pt-br/

  33. O Detran do Paraná foi
    O Detran do Paraná foi construído em cima de um banco de dados PostGre. Todo os sistema foi construído em Software Livre e está disponível para outros estados. Sistema de Detran precisa conciliar várias entradas ao mesmo tempo, do próprio órgão, de consultas de multas, tributos e outras informações pela internet pelos motoristas, dos bancos (pagamento de IPVA), despachantes, etc. O banco de dados tem poucas ocorrências de problemas. Obviamente isto depende não só da tecnologia, mas da qualidade de sua implementação, como e todas outras opções do mercado.
    A Celepar – informática do Paraná, usa o PostGre como banco de dados preferencial para o desenvolvimento de sistemas. Posso indicar também o departamento de informática da Universidade Federal do Paraná como uma referência no conhecimento deste banco de dados, onde sugiro entrar em contato.
    Segue matéria a respeito:
    http://www.celepar.pr.gov.br/modules/noticias/article.php?storyid=51
    E sites de referência:
    Celepar: http://www.celepar.pr.gov.br
    UFPR: http://www.c3sl.ufpr.br/pt-br/

  34. O PostgreSQL é um Sistema
    O PostgreSQL é um Sistema Gerenciador de banco de Dados bastante confiável, capaz de lidar com grande número de acessos concorrentes e de lidar com grandes quantidades de dados.
    É uma ferramenta para aplicações profissionais, além de ser um software livre e de código aberto.
    Espero que este assunto ganhe espaço no seu blog tão prestigiado!!!

  35. O PostgreSQL é um dos
    O PostgreSQL é um dos softwares SGBD mais antigos e robustos que existem. Junto dos outros líderes de mercado (MS-SQL e Oracle, principalmente), chegou a um nível de maturidade excepcional.

    Na verdade, hoje, até projetos menores são altamente confiáveis, como o MySQL.

    Você dificilmente teria problemas de perda de dados com postgreSQL, por causa do sistema interno de armazenamento (que hoje já virou commodity).

    Sem entrar em detalhes técnicos, pode-se dizer que a melhor velocidade do MySQL em relação ao postgreSQL se dá por causa da falta (intencional) de algumas verificações no formato padrão de tabela, o que em um blog seria aceitável, mas em um banco não (por exemplo, uma segunda gravação para backup automático dos dados).

    Simplificando, pode-se dizer que existem vários modelos de bancos de dados porque existem diferentes perfis de clientes, e não por competência técnica.

    Geralmente, a “Comunidade Livre” escolhe o postreSQL para sistemas mais robustos e o MySQL para sistemas mais simples. No seu caso, ambos serviriam tranquilamente.

  36. Aqui em Fortaleza, na
    Aqui em Fortaleza, na Secretaria de Desenvolvimento Agrário, bem antes do DETRAN, em 2003, já usamos o Postgres com sucesso até os dias de hoje, otimo desempenho, só o que falta é uma boa ferramenta free de administração !

  37. Essa informação é falsa, “O
    Essa informação é falsa, “O PostgreSQL não tem um sistema de arquivar em memórias em memória as modificações. Tem um log transacional que é armazenado em disco antes de ser efetivado no disco rígido, sendo esse mecanismo semelhante ao banco de dados Oracle.” veja detalhes em http://planeta.postgresql.org.br/

Você pode fazer o Jornal GGN ser cada vez melhor.

Apoie e faça parte desta caminhada para que ele se torne um veículo cada vez mais respeitado e forte.

Seja um apoiador