Que banco escolher para uma pequena aplicação

Oi pessoal,
estou fazendo uma pequena aplicação, uma agenda, não gostaria de usar access por ser padrão aqui na empresa o OpenOffice, havia pensado em usar o base então, mas cansei de procurar o driver para conectar o programa no arquivo, pensei então em usar o H2 e no meio do caminho encontrei o hsqldb que também é bem pequeno(o jar do hsqldb com serviço e driver é menor) mas a diferença não é nada de mais.
O que gostaria de saber é, o que me recomendam? os dois me parecem bons e como é pequena a aplicação(essa será, outras não serão tão pequenas) não usarei grandes recursos.
cheguei a procurar sites com “AQUIVO x ISSO” mas não tem nada de mais e o que vejo individualmente é tutos de cada um.

vlw galerinha…

O SQLite é um bom banco para aplicações pequenas.

Att.

O db4o é muito bom, mas como é orientado à objeto, exige uma forma diferente de pensar o desenvolvimento.

Gosto do mysql para quase tudo :slight_smile:

[quote=Adelar]O SQLite é um bom banco para aplicações pequenas.

Att.[/quote]

+1

Outra opção é o derby embedded.

Também recomendo o derby, tem muita coisa sobre ele.

De uma olhada http://fabisoartori.wikidot.com/javadb-derby

tem tudo q vc precisa ai…

sqLite? db4o? derby?

esses são melhores opções do que h2 e hsqldb? porque me indicam esses principalmente o derby, parece que ele já vem na jre6, isso?

Só posso falar do Derby e do SQLite pq ainda não usei os outros.
Prefiro o Derby tbm.

[]´s

Os três são bons. No caso do db4o se utilizado comercialmente deve ser paga uma taxa. Não sei afirmar se são melhores que o hsqldb e o h2, pois ainda não utilizei estes dois.
Sobre o derby, na verdade ele vem por padrão junto com o Netbeans, mas com o jre ou o jdk não.

Att.

[quote=Adelar]Os três são bons. No caso do db4o se utilizado comercialmente deve ser paga uma taxa. Não sei afirmar se são melhores que o hsqldb e o h2, pois ainda não utilizei estes dois.
Sobre o derby, na verdade ele vem por padrão junto com o Netbeans, mas com o jre ou o jdk não.

Att.
[/quote]

O JavaDB (Apache Derby) vem por padrão no JDK sim, só não sei a partir de qual release do Java 6.

[]´s

[quote=davidbuzatto][quote=Adelar]Os três são bons. No caso do db4o se utilizado comercialmente deve ser paga uma taxa. Não sei afirmar se são melhores que o hsqldb e o h2, pois ainda não utilizei estes dois.
Sobre o derby, na verdade ele vem por padrão junto com o Netbeans, mas com o jre ou o jdk não.

Att.
[/quote]

O JavaDB (Apache Derby) vem por padrão no JDK sim, só não sei a partir de qual release do Java 6.

[]´s[/quote]
Na versão que possuo, 1.6.0_10, ainda não tem. Pelo que vi na versão 1.6.0_17 foi colocado ele.

Att.

[quote=Adelar]Na versão que possuo, 1.6.0_10, ainda não tem. Pelo que vi na versão 1.6.0_17 foi colocado ele.
Att.[/quote]

Adelar, atualize seu JDK então, pq até a versão 1.6.0_19 (não tenho certeza, acho que corrigiram na 1.6.0_20) existe um problema de segurança, que por sinal, já foi bastante discutido há alguns meses atrás.

[]´s

[quote=davidbuzatto][quote=Adelar]Na versão que possuo, 1.6.0_10, ainda não tem. Pelo que vi na versão 1.6.0_17 foi colocado ele.
Att.[/quote]

Adelar, atualize seu JDK então, pq até a versão 1.6.0_19 (não tenho certeza, acho que corrigiram na 1.6.0_20) existe um problema de segurança, que por sinal, já foi bastante discutido há alguns meses atrás.

[]´s[/quote]
Bom saber disso. Valeu davidbuzatto.

Att.

[quote=Adelar]Bom saber disso. Valeu davidbuzatto.
Att.[/quote]

Disponha :wink:

[]´s

po… para o derby eu vou nosite da sun ou do apache? legal que ele tem um bom doc em ptb.

ajuda.(claro que não li o suficiente, o tempo foi curto mas já me deu uma idéia):
-lá no guia rápido, tem referência a software de um único usuário e a multiusuário como um servidor.
dá para colocar a aplicação+banco num HD público e executar em mais de um PC? pq quando diz multiusuário o banco tem que estar num servidor com java? como o tomcat?
pois é apenas uma agenda, mas com a possibilidade de mais de uma pessoa usar simultaneamente.

  • quando existe referência a banco embebido, se refere que ele está num pacotão jar que é a aplicação? ou que apenas ele faz parte de uma aplicação e deve acompanha-la para funcionar?

[quote=daquinho]po… para o derby eu vou nosite da sun ou do apache? legal que ele tem um bom doc em ptb.

ajuda.(claro que não li o suficiente, o tempo foi curto mas já me deu uma idéia):
-lá no guia rápido, tem referência a software de um único usuário e a multiusuário como um servidor.
dá para colocar a aplicação+banco num HD público e executar em mais de um PC? pq quando diz multiusuário o banco tem que estar num servidor com java? como o tomcat?
pois é apenas uma agenda, mas com a possibilidade de mais de uma pessoa usar simultaneamente.

  • quando existe referência a banco embebido, se refere que ele está num pacotão jar que é a aplicação? ou que apenas ele faz parte de uma aplicação e deve acompanha-la para funcionar?[/quote]

1 - Dá p/ rodar o servidor como um servidor de rede sim. Ele mesmo já é o servidor. É só passar uns parâmetros para o .jar. Ele tem todo o controle de um SGBD tradicional, como controle de transações, várias conexões, etc.
2 - Embebido não, embarcado! hehehe que engraçado. Isso, quando diz que ta embarcado, quer dizer que o banco vai junto com a aplicação, mas nesse modo de execução ele não vai ser executado como um servidor de rede. Só vai ser “visível” para a aplicação que o está utilizando.

[]´s

o download e feito aqui http://db.apache.org/derby/derby_downloads.html

Sobre as suas duvidas olhe aqui http://www.paulocanedo.com.br/2009/04/02/utilizando-o-banco-derby-de-forma-portavel/

flw

no site indicado tem o seguinte:

[quote]Conexão embarcada: realiza uma conexão diretamente no arquivo da base de dados, por esse motivo não é possível criar mais de uma conexão simultaneamente para a mesma base de dados.
Conexão via serviço de rede: mesmo utilizando o SGBD derby como um banco portável é possível inicializar o serviço de rede sem realizar uma instalação, isso pode ser feito diretamente pelo código, ou pela linha de comando de um terminal, seja (L)unix ou windows.[/quote]
como devo tratar o banco? pois quero disponibilizar a aplicação para que mais de uma pessoa abra o mesmo programa ao mesmo tempo, como deve ficar? uso o driver de serviço de rede ou o de conexão embarcada?
a intenção é deixar o banco junto da aplicação, numa pasta qualquer e criando atalho nos desktops para quem quiser.

desculpem se estou sendo redundante, isso é novidade para mim(e bem estranho). queria usar um “arquivo access”, mas se tem um sgdb para fazer isso, como certeza é bem melhor, sem pensar que deve ter bem mais capacidade em tudo(ou quase).

[quote=daquinho]no site indicado tem o seguinte:

como devo tratar o banco? pois quero disponibilizar a aplicação para que mais de uma pessoa abra o mesmo programa ao mesmo tempo, como deve ficar? uso o driver de serviço de rede ou o de conexão embarcada?
a intenção é deixar o banco junto da aplicação, numa pasta qualquer e criando atalho nos desktops para quem quiser.

desculpem se estou sendo redundante, isso é novidade para mim(e bem estranho). queria usar um “arquivo access”, mas se tem um sgdb para fazer isso, como certeza é bem melhor, sem pensar que deve ter bem mais capacidade em tudo(ou quase).[/quote]

Se a aplicação for stand-alone vc pode usar o derby embedded, caso contrário use a opção network que funciona como um sgbd comum.

HSQLDB :slight_smile:

100% pure Java!!!
E não precisa instalar!