views:

110

answers:

7

Hello! My workmate and I are trainees and we got an exercise to realize a project. We have decided us to create a customer management in Java. Now we have to choose a database. We are able to use Oracle, MySQL, PostgreSQL, HSQLDB and of course other Open Source databases. So, what database is recommend for us? I thought Oracle is too complex for our small project, isn´t it?

Thank you in advance!

finsterr

A: 

I would agree that Oracle is probably a bit much, however since you gave so little details I cannot really say. I would recommend MySQL and it would probably work well and be nice to the budget however you need to give more information.

corymathews
A: 

Do you need the ability to distribute your software? If so, the license will be a part of the decision-making process. Of the ones you listed, Postgresql is the easiest to work with in terms of licensing, essentially having a "do whatever you want to with it" license.

Robert Harvey
A: 

Depending on the size/scope of your project, SQLite may be a good fit.

mgroves
+4  A: 

Why not just use the database bundled with Java 6 ? JavaDb is originally a production-quality database from IBM called Derby, and works well.

Brian Agnew
A: 

You will save yourself quite a bit of tedious setup and platform dependencies if you use an embeddable database written in Java. Apache Derby (in any of its incarnations) would be a good start.

It is strongly recommended to use a database abstraction layer like Hibernate to avoid having raw SQL in your code. This will allow you to chose a database at deployment time, allowing you to scale effortlessly.

Thorbjørn Ravn Andersen
+1  A: 

Does your company already use Oracle and have people who are expert in it to go to when you get stuck? Then I would use it (if you can learn Oracle, all the other dbs are easy in comparison, take advatage of the resources if you have them). If not then use one of the others.

More important than which database you use is to get up to speed on relational database design before you start to put this together. Here's a starting place: http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx

another good read http://stackoverflow.com/questions/621884/database-development-mistakes-made-by-appdevelopers/621891#621891

HLGEM
A: 

Firebird can be a good database for project like you :

  • small footprint
  • easy to administrate
  • free and opensource
  • good driver for Java (Jaybird)
Hugues Van Landeghem