MySQL is free to use for most small projects whereas Oracle, MS SqlServer, and DB2 have pretty big bills associated with them.
As far as choosing between the 3 its then a matter of whether or not you have the technical resources available. Oracle is probably the best and most powerful but if you don't have a dedicated Oracle expert available, you're not likely to get very far (or take advantage of the advanced features). SqlServer is probably the easiest to use but has the least amount of features, whereas DB2 I feel falls somewhere in between.
As an example of advanced Oracle features... distributed transaction coordination among multiple db servers, materialized views, good index tuning.. and probably a lot more.... [ June 16, 2006: Message edited by: Scott Selikoff ]
And of course performance, availabillity (some servers might not be available for your chosen hardware/OS platform), existing skills (maybe you already have several Oracle DBAs and no overwhelming reason to not use Oracle), etc. etc.
Maybe I should elaborate a little more... the choice in database is rarely an arbitrary thing (unless upper management is involved). For the most part, you look at which database will best meet your needs based on what skill sets you have. If no one knows how to use SqlServer, it means more time/money will needed to be spent training people on how to use it as well as hiring a SqlServer DBA.
It really helps to have a good idea of the size of the data and the frequency of transactions. For example, if you have only one transaction a day and very little data, you mind as well use a text file. If you have a few hundred a day, free programs like MySql will do the job. If you have thousands or millions a day, then some serious thought has be done on even how to design the system for proper concurrency.
The choice of a good database can be a very complicated decision but I've found that in the end it comes down to whatever's the cheapest that can handle the minimum load.
Just to add more fuel, there are other "free" databases that have quite a bit of horsepower. My favorite "intermediate" database is Firebird (fka Interbase). And Postgresql provides about 90% of the firepower of Oracle and DB2 for "free". And the big db vendors have "free" versions with various restrictions (limited number of users, limited db size, etc.)
In my experience, companies that ask for database recommendations don't need a commercial database (i.e. Oracle, DB2, MSSQL, etc.) In other words, if you need the big iron, you'll know you need it.
It's also my experience, unfortunately, that politics usually trumps all else in this decision. "It's Microsoft!", or the Oracle sales rep is really cute, tend to hold greater sway at the management decision making level.
Originally posted by Edwin Keeton: It's also my experience, unfortunately, that politics usually trumps all else in this decision. "It's Microsoft!", or the Oracle sales rep is really cute, tend to hold greater sway at the management decision making level.
Agreed, that's exactly what I meant when I said choosing a database isn't arbitrary unless upper management is involved... then it comes down to "which company do we employ 2 full members of and have we all ready given a truckload of money to for some other product... ok we'll go with them...". The worst part is decisions like this are made and developers are stuck with the results no matter what, or fired (driven out) because they can't spin straw into gold.