I am responsible for selecting a new DBMS product for a group of users in my organization. How should I go about...
evaluating and selecting the best DBMS product?
Choosing a client-server RDBMSs is a non-trivial exercise because there are so many factors to consider. One good piece of news is that the number of database engines out there used to be very high and has now shrunk to three main engines. In alphabetical order (to avoid bias) they are:
- 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:
"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.
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.
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.
Dig Deeper on Database management system (DBMS) architecture, design and strategy
Related Q&A from Mark Whitehorn
Here's a guide to primary, super, foreign and candidate keys, what they're used for in relational database management systems and the differences ... Continue Reading
The unstructured data types common in big data systems are often better managed by a NoSQL database than relational software, Mark Whitehorn says. Continue Reading
Analytics expert Mark Whitehorn explains the strengths of R and how to determine if the open source programming language fits your analytics purposes. Continue Reading