Taverna /dev/All

SGBDs relacionais: quais você usa e como os escolhe?

image

Quando lidamos com bases de dados NoSQL a seleção do fornecedor é razoavelmente simples, dado que há poucos para cada modelo e o modelo dita quando deve ser aplicado em cada projeto. No entanto a situação é diferente quando falamos sobre bases de dados relacionais: temos um padrão único (em teoria (teoria (teoria))) e inúmeros fornecedores que implementam este padrão. Sendo assim achei interessante levantar aqui algumas questões.

Há realmente hoje diferenças gritantes entre um fornecedor e outro no que tange aos requisitos que devem suprir? Quando você inicia seus projetos, o que lhe leva a escolher, por exemplo, o MySQL ao invés do Oracle, o PostgreSQL ao invés do Firebird? Quais os fatores que costumam levar em consideração na escolha do SGBD relacional do seu projeto?

Indo um pouco além: SGBDs relacionais pagos, como Oracle ou SQL Server, o que justificaria sua adoção em novos projetos hoje frente às opções abertas que temos, especialmente quando levamos em consideração o custo de licenciamento? O que usam e por que?

Realmente é uma questão bem bacana! Normalmente eu uso PostgreSQL, por uma questão de costume mesmo. Nas primeiras vezes que trabalhei com bancos opensource, já tinha sido escolhido o PostgreSQL, e ele sempre se mostrou mais do que suficiente para o que era necessário.

Acredito que boas “desculpas” para utilizar o PostgreSQL, além de ser opensource são a possibilidade de armazenar JSON (https://www.postgresql.org/docs/11/functions-json.html), o PostGIS, a facilidade de migrar outras bases para ele, usando o PGLoader (https://pgloader.io/), se precisar escalar pode usar o Postgres-XL, facilidade de utilizar um container Docker, facilidade de uso com o PGAdmin4.

Mas hoje com a facilidade de você migrar de um banco para outro, faz com que essa decisão possa ser feita sem tanto peso na consciência no início do projeto. Só se você chegar a um ponto onde realmente o banco escolhido não atenda mais, é que você vai pensar em alguma alternativa. E isso dificilmente vai acontecer com as soluções mais utilizadas, as quais cada vez mais são melhoradas e adaptadas para grandes cargas de dado.

Além disso, tem muitos outros recursos que você pode utilizar em paralelo, como caches, bancos-relacionais, sistemas de mensageria, enfim.

Eu acredito muito na força do opensource, e hoje dificilmente (para não dizer nunca) eu iniciaria um projeto com uma solução paga, salvo em casos muito específicos, como por exemplo, se o cliente já utilizar uma infraestrutura esse tipo de solução.

Também tenho um comportamento muito similar, só que no que diz respeito ao MySQL, não ao PostgreSQL.

Será que na prática desenvolvedores tem esta tendência de ficar com o “time que tá ganhando” com base nas primeiras experiências?

Estou pensando em sair do MySQL, por exemplo, só agora, depois de mais de uma década!

MySQL foi o primeiro que usei e por muito tempo, fazia o arroz com feijão que eu precisava e nunca tive motivos para mudar.
Depois passei um tempo no mundo do NoSQL apenas e hoje voltei para o SQL mais forte no dia-a-dia. Uso em boa parte do tempo Oracle por conta do legado da empresa e Postgres por escolha. O jsonb do Postgres ajudou a escolher ele no lugar no MySQL.

Oracle ou SQL Server. Além da robustez para missões críticas, possuem melhor suporte e especialistas altamente qualificados. MySQL costuma ser banco de dados de programador.

itexto