views:

353

answers:

8

Hi all, i have to choose a database for a big desktop application. Which of this db is better: Firebird, JavaDB, hsqldb ? I need perfomance and easy to use, and totally free license.

Thank.

+1  A: 

Depends on requirements and data amount. My last choice was MySQL and it was very comfortable (swing app)

Xorty
+2  A: 

Let me recommend you on Postgres (http://www.postgresql.org/ ), which is one of the best freeware DB's I know.

I had an experience with this DB in my previous project, in which we held ~20 tables in the schema, the largest table had ~100,000 rows, and the amount of total data was not that big.

This project is running in production for more then 2 years, and there weren't any special problems with it.

Shay

Shay Tsadok
If he's shipping a desktop application it's probably advantageous not to have users install a separate database application, hence the OP has given a suggestion of JavaDB and hsqldb, both of which can be embedded in Java applications. I'm not sure how Firebird fits into that though. Of course, this is in no way a dig at Postgres, which to my mind is the obvious choice whenever a database is required: Desktop or Server.
Geoff
+14  A: 

If you're looking for an embeddable database, my recommendation would be H2 (stands for Hypersonic 2, (re)written by the author of HSQLDB). See the detailed comparison of features and of performances.

Using a 100% Java database would allow to run it in the same process and make things a lot easier IMO.

Pascal Thivent
H2 looks very good indeed.
BalusC
@BalusC I have dropped hsqldb and javadb in favor of H2, I just love it. And its [compatibility mode](http://www.h2database.com/html/features.html#compatibility) (it can "behave" like, say Oracle, DB2, etc) is wonderful for testing.
Pascal Thivent
Hey, that's nice. I must admit that I didn't knew that it stands for Hypersonic 2. That will be a new toy to play with sooner or later :)
BalusC
+1 The project is well maintained, and the author often participates in http://groups.google.com/group/h2-database
trashgod
How does H2 compare to Derby in this scenario?
Thorbjørn Ravn Andersen
Ok, my choice is between Firebird and H2, what's of this is better?
blow
+2  A: 

I think you'll be better off with an embeddable database for this. HSQLDB or H2 would work, as would SQLite. SQLite is quite popular outside the Java world (it's used by the Mozilla project, for instance). I'm not familiar with JavaDB, so I can't speak to its capabilities.

SQLite is known to be pretty fast.

Michael E
+1  A: 

My choose would be H2:

  • Very fast, open source, JDBC API
  • Embedded and server modes; in-memory databases
  • Browser based Console application
  • Small footprint: around 1 MB jar file size
Alfred
A: 

I would go for a DBMS that is not Java-specific. You may want to share your data with a C++ or .NET application some day. If it does not need to be client/server consider SQLite or H2. If it does then consider Postgres. All of these have ODBC drivers and/or drivers for specific languages other than Java.

finnw
+2  A: 

Firebird is very good database especially for desktop application

There is good java driver.

Hugues Van Landeghem
Especially for 'big desktop applications'. Firebird scales to hundreds of gigabytes and beyond.
Douglas Tosi
A: 

The application is split into two (o maybe three) applications with different duties, both of them will share the database.

So i think a need a server db, not an embedded one, is true?

blow