- IBM's DB2
- Microsoft's SQL Server
- Oracle's Oracle
There are other options such as MySQL, Access and FileMaker Pro. The selection process depends on the size of the project, the number of concurrent users and all sorts of other factors. But I'll assume, for the sake of argument, that you want to use a mainstream client/server database engine.
It is true that all of these engines do differ in technical capability, so there is a great deal of research work you can do here. And for certain projects, the technical differences can absolutely be a make or break in choosing an engine.
However, there is another way of looking at this. All these main engines have been around for many years and have undergone constant development. If any of these were truly incompetent in normal usage, it would long ago have been weeded out. That's another way of saying that all of these engines are highly competent; more than capable of running 90 to 95% of the database applications that we are likely to throw at them. So, for the average database application, making a decision based purely on technical merit is potentially unwise.
In addition, there are two other traps into which the unwary can easily plummet:
Dogma. "Oracle is the best database engine in the world," "DB2 is the most magnificent database engine ever constructed," "SQL server simply has no peer," and so on. For many people in the database world, engines are not a technical issue; they are a religious one. In other words, seeking the advice of people who have invested the last five years learning how to use a particular engine may not be to seek an entirely unbiased view.
Investment. Suppose your company has been running Oracle for the last five years. Dogma or not, it will have a huge investment in skills and expertise necessary to run that particular engine. Keep in mind that your software selection may make existing company investments obsolete.
If those last two seem like contradictory pieces of advice that is because, in some ways, they are. I said it was complex. The trick is to recognize both of these and try to balance them in a relatively intelligent and informed way.
Cost. Clearly cost will be an important consideration, but it must be balanced against existing expertise and retraining. As is always the case, actually calculating the total cost of ownership is complex.
To summarize, first try to decide if any of the engines are ruled out on technical grounds. Next, look at the existing database use (and existing skills) in the company. This would include consideration of existing licenses held by the company (which can have a major effect on cost). Be sure to take into account the opinions of the technical people within the company whilst trying to bear in mind, if necessary, the biasing effect of dogma. Take all your findings into consideration in choosing a DBMS platform for your company.
This was first published in November 2008