1 03 2017
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
Ativando o Crystal Reports no Visual Studio 2015 Acessando a webcam no .NET com a biblioteca AForge
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.
Olá Fabrício!
Muito obrigado! Na minha opinião a atitude de reconhecer os erros é muito importante e não entendo porque ela é tão escassa hoje em dia.. Fazer o que.. :(
Um grande abraço!
André Lima
andre muito o brigado por ter corregido me ajudou muito mais uma vez muito obrigado
Olá Deuzivaldo, muito obrigado!
Abraço!
André Lima
Humildade de reconhecer as falhas faz com que o homem cresça 10x mais que sendo orgulhoso em reconhecer e corrigir. Parabéns André
Olá Xará! Muito obrigado por essas belas palavras! :)
Um grande abraço!
André Lima
[…] 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!
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
Quem nunca errou ao opinar sobre algo que não domina?
Sua atitude aumenta sua credibilidade com seus leitores.
Parabéns!
Olá Marcos, muito obrigado!! :)
Abraço!
André Lima
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ê!
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
André,
Parabéns pela nobre atitude.
Valeu Will! Um forte abraço!
André Lima
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
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
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
Olá Deuzivaldo!
Uns tempos atrás eu escrevi um artigo onde eu mostro como sortear números sem repetir.. Acho que ele vai te ajudar nessa demanda:
Sorteio de números sem repetir em C# / VB.NET
Abraço!
André Lima
obrigado andre
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!
Fala Julio! Muito obrigado pelo comentário! Concordo 100% com você.. Valeu demais por essas belas palavras.. :)
Abraço!
André Lima
Ó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.
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 […]