André Alves de Lima

Talking about Software Development and more…

Falei algumas besteiras sobre o PostgreSQL, veja aqui as correções

No final de 2015 eu estava “na onda” de fazer transmissões ao vivo pelo Periscope. Eu fazia uma transmissão por semana, extraía o conteúdo e publicava no meu canal do Youtube. No total foram 10 semanas de transmissões, e você pode conferir a gravação da maioria das transmissões nesta playlist.

Uma das transmissões que eu fiz foi um breve comparativo entre SQL Server, MySQL e PostgreSQL. Confessando aqui para você, desses três bancos o único que eu tenho experiência sólida e posso falar com propriedade é o SQL Server. Já trabalhei em alguns projetos “de brincadeira” com o MySQL e implementei uma integração aqui na empresa com um banco PostgreSQL. Dessa forma, a base para o comparativo do MySQL e PostgreSQL foi o site DB-Engines.com. A junção da minha pouca experiência com o PostgreSQL mais alguns dados incorretos (ou incompletos) do DB-Engines resultou em algumas besteiras no comparativo.

Aparentemente o vídeo caiu em alguma comunidade de PostgreSQL e algumas pessoas vieram me corrigir nos comentários do vídeo, em especial o Fabio Telles Rodriguez e o Juliano Atanazio. A ideia desse post é sumarizar as correções para que eu possa linká-lo no vídeo e evitar confusões para outras pessoas que assistam no futuro.

Vamos pronunciar o nome corretamente?

Antes de tudo, vamos começar pelo básico? Como é que se pronuncia PostgreSQL? Eu nunca trabalhei com o PostgreSQL no Brasil – o único projeto que eu trabalhei com ele foi aqui na Alemanha. Nessa época, todas as pessoas que eu tive contato pronunciavam o nome assim: “postgrê“. Aparentemente essa não é a forma correta (ou mais utilizada), que seria algo como “post” – “grés” – “kiu-él” (o “Q” e o “L” finais com som em inglês).

Eu não ligo muito quando as pessoas pronunciam algum termo técnico errado – não acho que isso influencie no quanto a pessoa sabe sobre aquela tecnologia ou não. Mas, de qualquer forma, eu sempre busco pronunciar as coisas da forma correta. Agora que já aprendi a pronúncia certa do PostgreSQL, vou me esforçar para utilizá-la.

Agora, um adendo: não sou só eu que tenho dificuldade em saber a pronúncia correta do PostgreSQL. Tem até uma pergunta no Quora onde a galera discute qual seria a pronúncia correta, além de uma pesquisa feita pelo próprio site do PostgreSQL e, pasmem: um arquivo mp3 no site do PostgreSQL mostrando a pronúncia certa!

O PostgreSQL tem suporte a XML, sim!

Agora que todo mundo já sabe pronunciar PostgreSQL corretamente, vamos começar as correções realmente técnicas desse vídeo. Acho que o fato de eu ter falado que o PostgreSQL não tem suporte a XML foi o principal fator que disparou a indignação dos entusiastas do PostgreSQL com o meu vídeo. Eu me baseei nas informações apresentadas no comparativo MySQL x PostgreSQL do site DB-Engines:

Até hoje o site mostra um quadrado em branco na parte do suporte ao XML, que eu erroneamente deduzi que significasse um “não“. Ao invés de conferir mais à fundo antes de falar algo errado no vídeo, eu simplesmente disse que o PostgreSQL não tem suporte a campos XML, informação que está completamente errada, uma vez que ele tem esse suporte desde 2008!

O PostgreSQL é um mundo sem dono?

Ai, ai, ai. Cada coisa que a gente fala e depois se arrepende. Nesse vídeo eu falei que o PostgreSQL é um “mundo sem dono“. Pelo que eu me lembro, na minha cabeça eu falei isso porque ele é um banco de dados open source, que aceita contribuições da comunidade. Mas que coisa mais feia de se falar, hein André? O fato de algo ser open source não tem nenhuma relação com a ferramenta ser um “mundo sem dono“. Retiro o que disse!

Repetindo aqui o que o Juliano Atanazio comentou no meu vídeo: “[O PostgreSQL] é open source sim, mas não é casa da mãe Joana. Existe um grupo de desenvolvedores, o core team, que é conhecido como PGDG (Postgresql Global Development Group) […] e é extremamente rigoroso com relação a aceitação de código […]. Não é qualquer coisa que passa e tudo é exaustivamente testado. É um trabalho muito sério.“.

A ferramenta de administração é difícil de utilizar?

Veja bem, eu estou acostumado a trabalhar com o SQL Server e a sua ferramenta de gerenciamento, o SQL Server Management Studio. Já trabalhei bastante também com o Oracle e o PL/SQL Editor no passado e eu vou te dizer: até hoje eu não consegui encontrar uma ferramenta de banco de dados mais intuitiva do que o SQL Server Management Studio.

Dito isso, eu confesso que sofri um bocado quando tive que trabalhar com o PostgreSQL naquele projeto que eu mencionei anteriormente. Comparando com o que eu estou acostumado, a ferramenta padrão de administração do PostgreSQL é, sim, muito mais difícil e menos intuitiva.

Porém, essa é uma discussão sem fundamento. Quem trabalhou com o PostgreSQL e a sua ferramenta de administração por 10, 15 anos certamente vai achar de início o SQL Server Management Studio complicado. Existem até pessoas que preferem ser mais “hard core” e trabalham direto em linha de comando, como o Juliano Atanazio. Com o tempo, qualquer ferramenta que você utilize repetidamente você inevitavelmente acaba dominando e atingindo o auge da sua produtividade.

Vale a pena mencionar que existem também outras ferramentas comerciais para fazer o gerenciamento do PostgreSQL, como o EMS SQL Manager, também mencionado pelo Juliano Atanazio e que tem suporte não só ao PostgreSQL, mas também para os principais bancos de dados relacionais do mercado.

O PostgreSQL só serve para trabalhar com dados geográficos?

Pode parecer que eu dei a entender no vídeo que você só deve trabalhar com o PostgreSQL se você estiver trabalhando com dados geográficos. Isso está obviamente errado. Não preciso nem falar que o PostgreSQL é, sim, um banco dados robusto e que não serve somente para trabalhar com dados geográficos.

Polêmica: MySQL é mais robusto que PostgreSQL?

A grande polêmica dessa história toda é: entre MySQL e PostgreSQL, qual é o mais robusto? No vídeo eu acabei caindo na besteira de falar que o MySQL é mais robusto que o PostgreSQL. De onde é que eu tirei essa informação? Do nariz! Em momento algum eu deveria ter dado uma opinião dessas sem conhecer profundamente as duas ferramentas.

Além disso, essa é uma discussão que nunca vai chegar a lugar algum. Quem defende o MySQL sempre vai achar argumentos para dizer que o MySQL é mais robusto, e o mesmo vale para quem defende o PostgreSQL. O ideal é conhecer as duas opções (entre outras) e decidir qual é a melhor em cada cenário.

Links de referência

Agora vou deixar para vocês alguns links de referência do PostgreSQL postados nos comentários do vídeo:

Matriz de recursos do PostgreSQL
Política de versionamento do PostgreSQL (com histórico de versões e datas de EOL)
Outro site com matriz comparativa de bancos de dados (veja só, nessa matriz eu poderia ter visto que o PostgreSQL suporta, sim, campos XML)
Lista de e-mails brasileira sobre PostgreSQL
Grupo no Facebook sobre PostgreSQL
Savepoint (site do Fabio Telles Rodriguez onde ele posta várias coisas sobre PostgreSQL)

Conclusão e lição aprendida

A conclusão e lição que podemos tirar dessa situação é que temos que tomar cuidado com o que falamos sobre tecnologias que não conhecemos profundamente. Eu não tinha experiência suficiente para falar sobre o PostgreSQL da forma que eu falei. Acabei me baseando completamente nas informações incompletas do site DB-Engines e falei diversas besteiras.

Entretanto, se você me perguntar se eu estou arrependido de ter feito aquela transmissão e publicado no meu canal do Youtube, eu te diria que não! Muita gente cai no espectro oposto e não fala nada na internet com medo de estar falando besteira. Eu errei nas informações, fui corrigido nos comentários e fiz esse post esclarecendo os pontos que estavam incorretos. Não vejo nenhum problema nisso, e você?

Assine a minha newsletter

Por fim, convido você a inscrever-se na minha newsletter. Ao fazer isso, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário logo abaixo.

Até a próxima!

André Lima

Newsletter do André Lima

* indicates required



Powered by MailChimp

25 thoughts on “Falei algumas besteiras sobre o PostgreSQL, veja aqui as correções

  • Parabéns por fazer um post apenas para se corrigir quanto alguns equívocos. Nem todos são dignos de atitudes como esta.
    Eu assisti seu vídeos e também me assustei com algumas colocações hehehe.
    Eu sempre preferi trabalhar com PostgreSql ao MySql, só que, a escolha por MySql acaba sendo a mais popular devido aos servidores no Brasil disponibilizarem mais Mysql do que PostgreSql. SqlServer então, nem se fala, pois aumenta consideravelmente o custo de hospedagem. Obviamente que isto tudo referente a sistemas web.

  • Humildade de reconhecer as falhas faz com que o homem cresça 10x mais que sendo orgulhoso em reconhecer e corrigir. Parabéns André

  • […] Edit: eu acabei falando algumas besteiras sobre o PostgreSQL nesse vídeo e fui corrigido nos comentários do Youtube por pessoas bastante experientes com esse banco de dados. Veja as correções aqui. […]

  • Parabéns pela iniciativa. Acho que você teve uma postura realmente digna. E vou te dizer, as ferramentas gráficas do PostgreSQL realmente estão há uma distância considerável, você tem razão. Mesmo o pgAdmin4 que acabou de sair ainda está longe. O PostgreSQL tem uma tradição de ser muito superior em linha de comando, automatizar com scripts etc e tal.

    A comparação entre bancos de dados é algo difícil de se fazer mesmo. Imagine-se comparando varias linguagens de programação, vai ter o mesmo problema. MySQL e PostgreSQL podem ser comparados em suas origens. O MySQL nasceu como o motor da Web 2.0: simples, faz consultas simples com uma velocidade enorme, mas não tinha muito suporte à transações e consultas mais complexas. O PostgreSQL nasceu como uma evolução do Ingres (o SQL Server também tem bebe na fonte do Ingres de certa forma): Nasce como um banco transacional completo, com suporte a MVCC e coisas assim, mas era lento. Ambos evoluíram cobrindo lacunas nos seus pontos fracos. Mas tem caminhos muito diferentes. O PostgreSQL surge como um concorrente direto do Oracle, não do MySQL.

    A maioria das comparações leva em conta apenas os pontos fortes de um e os pontos fracos de outro. O SQL Server por exemplo não é o mais amigável para se trabalhar em linha de comando. E quando o bicho pega, você tem um número pequeno de DBAs SQL Server habituados a levantar o capô e trabalhar na linha de comando apenas, usar power shell, etc e tal. Mas as coisas estão mudando… agora temos até SQL Server rodando em Linux!

    • andrealveslima disse:

      Olá Fábio, muito obrigado pelo comentário!

      Agradeço também os esclarecimentos aqui e nos comentários do Youtube.. Espero um dia ter a oportunidade de trabalhar com o PostgreSQL em um projeto maior para pegar mais experiência e ter mais base para dar opiniões sobre ele.. Qualquer coisa eu entro em contato com você, hehehe.. ;)

      Abraço!
      André Lima

  • Marcos André disse:

    Quem nunca errou ao opinar sobre algo que não domina?

    Sua atitude aumenta sua credibilidade com seus leitores.

    Parabéns!

  • Grande, André.

    Você se mostrou um grande exemplo de como receber críticas pela internet.
    Assumiu seus equívocos e saiu por cima com grande categoria.
    Mais uma vez peço desculpas pela forma que agi contigo.
    Acho que nessa história com certeza tiramos grandes aprendizados.
    Forte abraço e siga em frente aí.

    Sucesso pra você!

    • andrealveslima disse:

      Olá Juliano, muito obrigado!

      Sem problema! O seu comentário foi muito importante para que eu percebesse a magnitude das coisas erradas que eu tinha falado sobre o PostgreSQL..

      Um grande abraço e sucesso aí pra você também!
      André Lima

  • Will Batista disse:

    André,

    Parabéns pela nobre atitude.

  • Emanuel disse:

    André vc é demais super profissional e humano como todos nós erra faz parte do crescimento profissional fuça com Deus guerreiro e obrigado mais uma vez continue firme estou esperando novos poste este ano tudo de bom

    • andrealveslima disse:

      Olá Emanuel! Muito obrigado pelo comentário e por essas belas palavras! :)

      Um grande abraço e tudo de bom aí pra você também!
      André Lima

      • deuzivaldo disse:

        andre o brigado mas uma vez gostaria de uma ajuda
        esto criando um joguinho em cassa para meu filho gostaria de uma ajuda eu tenho 10 label que eu vou sortea 5 so que as vezes elas repetem como posso corregi este erro
        para elas nao repetirem
        este e o codego que estou usando em um buttom

        Dim r As Random = New Random
        For i As Integer = 1 To 5
        Me.Controls(“label” & r.Next(1, 20)).BackColor = Color.LightGreen
        Next

  • JULIO SARDENBERG disse:

    hahahahh

    O Post mais engraçado e SINCERO que eu poderia ler hoje!
    Vou dizer só duas coisas pra você:
    1) Só faz merda quem trabalha!
    2) Só fala besteira quem abre a boca!

    No saldo você manda muito bem! Continue assim e saiba que a comunidade levou muito em conta o seu Post corretivo!

  • Leonardo Tavares disse:

    Ótimo esclarecimento, André! Não cheguei a acompanhar os vídeos na época, mas depois que conheci seu site eu tenho usado bastante como referência e também para me manter informado. É importante ver artigos de correções assim, pois eu sei que muitos como eu vem correndo aqui ver as novidades. Parabéns pelo conteúdo do site como um todo. Abraço.

    • andrealveslima disse:

      Olá Leonardo, muito obrigado pelo comentário!

      Sem dúvida é super importante corrigirmos quando falamos alguma coisa errada.. Como eu disse no post, não tem problema errar, desde que corrijamos quando percebemos o erro.. :)

      Um forte abraço!
      André Lima

  • […] só costumo escrever sobre alguma coisa quando eu tenho certeza do que eu estou falando (apesar que às vezes eu acabo falando algumas besteiras também – faz […]

Deixe uma resposta

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