Qual o melhor Banco de Dados?

> Oi Jackson, tudo bem?
> Queremos fazer uma aplicação em Java (estamos usando o
> NetBeans) que manipule Banco de Dados, qual é o melhor
> Banco a ser utilizado. Trabalhamos com Linux
> (distribuição Kurumin).
> Se tiver algum exemplo (dica de algum site).

Bem, como vc há de convir comigo, na vida é tudo muito relativo: “Um fio de cabelo na cabeça é pouco, na sopa, é muito” 🙂 – Pegando o gancho deste provérbio cômico, é preciso esclarecer que tentar elucidar, enfatizar ou definir o “melhor banco de dados”, a “melhor linguagem de programação”, “o melhor sistema operacional”, a “melhor tecnologia de interconexão de rede” genéricamente (sem se analisar profundamente os aspectos envolvidos), é como tentar descubrir o melhor entre “praia” ou “campo/montanha”. Isso vai variar muito de que tipo de “praia” estamos falando e de que tipo de “campo” estamos tratando.

Uma pessoa qualquer pode comparar “Balneário Camboriú” a “Campos do Jordão” e pode chegar a conclusão (analisando hotéis, atividades de lazer, época do ano, companhia, dinheiro) que a melhor opção (custo x benefícios) seria passar as férias de julho em “Campos do Jordão” pq lá, agora no inverno, tem uma centena de atividades que em “Balneário Camboriu” não há (turismo de inverno). Tem muito mais gente para se conhecer, os hotéis são excelentes e a comida nem se fala. Em contra-partida, se o objetivo é gastar menos dinheiro, certamente o litoral catarinense se torna mais atrativo na baixa temporada. Veja que é uma questão do que se quer, quais as nossas necessidades e expectativas e quanto se está disposto a gastar.

“LUNÁTICAMENTE FALANDO”, a questão levantada acerca do melhor banco de dados se assemelha muito ao caso cogitado acima. Hoje existem uma centena de SGBDs de qualidade, cada qual com seus pontos fortes (benefícios) e seus pontos fracos (custos), para os mais variados sabores de sistemas operacionais e que trabalham muito bem com uma infinidade de linguagens de programação (conexão nativa, ODBC, JDBC, ADO, etc…).

É possível se utilizar (só alguns dos mais conhecidos) em ambiente operacional Linux:

* Oracle – Proprietário
* Firebird – Livre
* PostGreSQL – Livre
* MySQL – Livre (para projetos livres. Projetos proprietários requerem pagamento de licenças para as bibliotecas de conexão ao banco)
* Interbase – Proprietário
* Cache – Proprietário
* SyBasic – Proprietário

Cada qual, tem seus prós e seus contras. Além da questão financeira, é preciso se analisar outros aspectos igualmente ou mais importantes, como: Qual o volume de dados a ser gerenciado??? Existe algum tipo de interface de acesso para a linguagem que estou utilizando (no seu caso, JAVA)??? É robusto??? Vou precisar de escalabilidade (meu projeto pode crescer 200% daqui prá frente, por exemplo)??? banco de dados distribuídos??? armazenamento de imagens (campos blobs)???

Se o objetivo é usar algum SGBD com um baixo TCO (custo total de propriedade) e, suponho que seja, uma vez que vcs estão desenvolvendo para Linux (que é uma plataforma aberta) e utilizando JAVA (que não é aberto mas é gratuita), vale a dica de se pensar/testar as alternativas que citei acima e que são softwares livres (custo de aquisição e para os teus clientes = ZERO).

Rápidos Comentários:

* MySQL – Banco de Dados Livre, ótima integração com linguagens de programação de mercado (PHP, JAVA, DELPHI, VB, etc…), rápido, leve, costuma ter excelente performance e usar hardware modesto (não precisa vender o fígado para adquirir um servidor – na maioria dos casos, é claro :-). Os contras são relativos a baixa robustez, a excasses de recursos e a falta de amadurecimento (comparado às demais alternativas citadas abaixo – não aconselho para desenvolvimento de sistemas críticos e escalonáveis – bom para uso em ambiente internet). Site oficial: http://www.mysql.com/

* FireBird – Advindo do Interbase da Borland, também trata-se de um SGBD Livre. É rápido, tem excelente integração com Delphi, JAVA, PHP, VB, etc… – Tem versões tanto para MS Windows quanto GNU/Linux. Possui muito mais recursos que o MySQL (stored procedures, triggers, papéis, etc…). Excelente pedida, vale a pena analisar. Site oficial: http://www.firebirdsql.org/ – Comunidade brasileira: http://www.comunidade-firebird.org/

* PostGreSQL – Sem dúvida alguma a ferramenta mais robusta, escalável e interessante com que já trabalhei em termos de BD livres para ambiente Unix/Posix. Tem versões para MS Windows e GNU/Linux. Dos três é a ferramenta que mais pede hardware e infra-estrutura (dependentemente do volume de dados e recursos), mas tem suportes diferenciados como BD escaláveis e ambientes integrados para várias coisas (desenvolvidos por terceiros – Data Warehouse, etc…). Site Oficial (Brasil): http://www.postgresql.org.br/

Bem, espero ter ajudado, quaiquer questionamentos, por favor, entre em contato ou deixe comentários.