Choosing a DBMS

One of the questions I get on a regular basis is some variation of “how can I choose what DBMS is the best”… so I’ll try to offer some high-level guidance here.

When mainframes dominated enterprise computing, the DBMS architecture was a simple concern. Today, the IT infrastructure is distributed and heterogeneous. Even for a modern mainframe DBMS implementation, the overall architecture will likely consist of multiple platforms and inter-operating pieces of system software. The final architecture must be based on the business needs of the organization. It should be chosen by a team consisting of business experts and IT experts. Business experts should include representatives from various lines of business as well as accounting and legal for software contract issues. IT experts should include database resource management representatives including data administrators, database administrators, and system administrators. But the selection process should also include other IT professionals, such as members of the networking group, operating system experts, operations control personnel, programming experts, and any other interested parties.

But let’s consider the nuances of the question. The problem — and the answers to it — take on many different forms. For example, should I answer it based on you having no existing DBMS and you’re just looking to buy one for the first time? That is a valid, though not too common, situation. On the other hand, you are more likely asking something like “Which of the several different DBMS platforms that we already have should we use for Project X?” This is also a valid question. So, let me try to answer both — at least in some fashion.

First of all, if you are brand new to DBMS it would be a very wise course of action to hire a database consultant (or two) to help you with your selection process. There are several very good choices out there. My preference is that new users should generally choose from the market leaders, and that means one of the big three: IBM DB2, Oracle, or Microsoft SQL Server. Of course, you also have other options such as an open source DBMS like MySQL or PostgreSQL. These can be used for some types of production work (mostly lower-end or perhaps web-based development projects). For high-end mission-critical applications, stick with the Big Three.

Another recent phenomenon is Big Data and NoSQL. There are a variety of options to choose from in this camp, with most of the leading candidates based on some for of Hadoop. For projects requiring large amounts of data and high availability “big data” solutions such as the CouchDB and Hbase NoSQL DBMS offerings may be ideal. For the most part, the NoSQL DBMS offerings are not for supporting typical, enterprise applications. Again, I would direct you to one of the Big Three for most typical enterprise usages.

OK, which of the big three? Well, if you are a large organization with a mainframe and want to run your DBMS on that mainframe, you really should go with IBM DB2. Although Oracle has a mainframe presence, IBM is far and away the market leader here. For Unix and Linux installations, your choices are Oracle and DB2. Oracle is the market leader on those platforms, though IBM has a nice presence there, too. For Windows development, all three are viable options, but Microsoft is the leader on Microsoft’s OS.

What about other options? Well, Sybase, Informix, and Teradata are the next biggest players in the market. Sybase has lost ground in the market, but their DBMS is still solid and they are firmly entrenched in the financial market. Informix, now owned by IBM is still a top notch DBMS with great performance and is still being marketed and improved by IBM. Teradata is a high-speed DBMS that is geared for data warehousing and OLAP work and you might want to choose it for those types of projects.

And what if you have several DBMSs installed and need to choose one for a new project? In that case, it is best to base your decision on internal company issues. Consider the existing support and expertise that you have in-house for each DBMS. If the project is highly visible it makes sense to go with the DBMS that is best supported by your in-house experts because they can give it the care and feeding it needs to perform optimally. Also, think about the hardware platform. For your very high availability needs go with the mainframe if you have one. After that, it is Linux and Unix… then Windows.

I haven’t talked about cost yet, but it would be an incomplete answer without at least touching on that subject. When you are examining the cost of the DBMS software do not limit the analysis to just the initial cost and on-going maintenance cost that must be paid to the DBMS vendor. Look at the total cost of ownership of the DBMS. TCO should be calculated as a combination of the license cost of the DBMS, the license cost of any required supporting software, the cost of database professionals to program, support and administer the DBMS, and the cost of the computing resources required to operate the DBMS. Also, try to factor in the reliability of the total package in terms of downtime – and factor in expected losses due to downtime if at all possible. Determining the TCO for a DBMS can be a difficult and time-consuming task without the assistance of a consultant well-versed in server and DBMS performance and operations.

You will also need to pay some attention to the various “flavors” of DBMS offerings “out there” from all of the major vendors. The DBMS you select must be appropriate for the nature and type of processing you plan to implement. Four levels of DBMS architecture can be selected: enterprise, departmental, personal, and mobile.

An enterprise DBMS is designed for scalability and high performance. It must be capable of supporting very large databases, a large number of concurrent users, and multiple types of applications. The enterprise DBMS will run on a large-scale machine, typically a mainframe or a high-end Unix, Linux, or Windows machine. Furthermore, an enterprise DBMS offers all of the “bells and whistles” available from the DBMS vendor.

A departmental DBMS, or workgroup DBMS, supports small to medium sized workgroups within an organization, and typically runs on a Unix, Linux, or Windows server. Hardware and software upgrades often can allow a departmental DBMS to tackle tasks that previously could only be performed by an enterprise DBMS. The steadily falling cost of departmental hardware and software components further contributes to lowering TCO and helping to enable a workgroup environment to scale up to serve the enterprise.

A personal DBMS is designed to be used by a single user, typically on a low- to medium-powered PC platform. Microsoft Access and Filemaker are examples of personal database software. Sometimes the low cost of a personal DBMS causes misguided attempts to choose a personal DBMS for a departmental or enterprise solution. A personal DBMS product is suited only for small scale projects and should not be used to deploy multi-user applications.

Of course, the major DBMS vendors also market free versions of their more high-powered solutions, such as DB2 Express-C and Oracle Database Express Edition. These offerings are targeted at building support for the DBMS among developers and against open source offerings. And they can be a practical alternative to a personal DBMS in that they can be deployed individually and then expand to a multi-user license as usage demands.

And the mobile DBMS is a specialized version of a departmental or enterprise DBMS. It is designed to be used by remote users who are not usually connected to the network. The mobile DBMS enables local database access and modification on a laptop or handheld device, such as a smartphone. Furthermore, the mobile DBMS provides a mechanism for synchronizing remote database changes to a centralized, enterprise or departmental database server.

A DBMS designed for one type of processing will likely be ill-suited for other uses. If your organization requires DBMS solutions at different levels, whenever possible favor the selection of a group of DBMS solutions from the same vendor. Doing so will minimize differences in access, development, and administration.

About craig@craigsmullins.com

I'm a data management strategist, researcher, and consultant with over three decades of experience in all facets of database systems development and implementation.
This entry was posted in DB2, enterprise computing. Bookmark the permalink.

21 Responses to Choosing a DBMS

  1. Nick Meske says:

    Great work! This is the type of information that should be shared around the net. Shame on the search engines for not positioning this post higher! Come on over and visit my site . Thanks =)

  2. Milan says:

    Hi, this is a great article, however it is not accurate in regards to Microsoft Access and FileMaker Pro. It is simply not true that they can not be used to deploy multi user application platforms. I am managing data for an office of 40 employees with a DBMS based on FileMaker Pro and it works just fine for 5 years now.
    We where concidering Oracle in the beginning and i could not tell you how happy i am that we went for FileMaker Pro (not to mentione my boss that saved a significant amount of money).
    So, to be completely fair to the audience out there, i would correct the sentence describing MS Office and FileMaker as personal databases not to be used in a multiple user scenario.

    • Thanks for the comment Milan. And yes, Filemaker Pro does allow for sharing with multiple users. The point I was trying to make (and I probably made it poorly) is that a DBMS like Filemaker Pro is not well-suited for highly scalable, enterprise applications in the way that the major relational DBMS products (DB2, SQL Server, Oracle) are.

      Please note that even the Filemaker web site notes that a Filemaker Pro database can be shared over a network with up to nine other users (http://www.filemaker.com/products/filemaker-pro/sharing.html). I am guessing that in your office of 40 there are never more than a total of 10 people using that database at once. And that makes a solution like Filemaker Pro useful and workable in your shop.

      • Milan says:

        Hi, thanks for the reply. The information on http://www.filemaker.com could confuse people even more in regards to choosing the database platform, which is why the independent articles like this are very usefull and important. What they really ment there is that you could use this software to share a file among 9 users if you dont have a FileMaker Server. If you do have a server you could share it with more users. As i said, we installed it in the office of 40, everybody uses it according to their needs, consultants, administration, accountant, management and even i am building things sometimes at the same time (this is not the best practice, i agree). On the other hand, if you DONT have a server, i would never suggest sharing the file with more then 2 or 3 users, over the network. My personal opinion is that they are just advertising it to much as an easy to use personal software which obviously confuses people and could take them in the wrong direction. It would be also good to here from somebody that is running office using MS Access, i understand you have a possibility of publishing an access file to a web server and then sharing it among multiple users.
        The big guns (IBM, Oracle) are avoiding the Rapid Development techniques probably to avoid all this confusion in regards to what could be done and what could not and keep their projects on a certain corporate level. It comes with a correspondingly heavy price tag though, so if you are a small or medium business and you simply can not afford IBM DB2 or Oracle platform, you have to “dig” for cheaper solutions and probably get lost in the woods.

  3. Sbensari says:

    Thank you for this simple and clear article. I had a question concerning Basecamp, can we consider this software as a personal DBMS and is it adequate to a 300 employees firm?
    Thank you for your time,
    BR

  4. Good general article, applicable to most situations. I would like more extensive feedback on NoSQL and Big Data, and the short-term/long-term implications for SQL.

  5. la voyance says:

    Hello Dear, are you actually visiting this website on a
    regular basis, if so after that you will without doubt get nice knowledge.

  6. séparation says:

    Hi there, I would like to subscribe for this weblog to take hottest updates, so where can i do it please
    help.

    • If you wish to be notified of new posts, there is an option in the black bar at the top of the blog labelled “Follow”… simply click on it to follow the blog.

      If you wish to follow comments, when you leave a comment there is a box that you can check to subscribe to the comment feed.

  7. rakesh sharma says:

    hello sir ,
    This is a great article ,I want to ask a question that what are the scope of DBMS in future and which platform is best to learn it.

  8. Katherine says:

    Hi, just wanted to say i liked this article. It was practical. Keep on posting.

  9. Morgan says:

    Greetings! Very useful advice in this particular post! It is the little changes that will make the greatest changes. Thanks a lot for sharing!

  10. Sethuraman R says:

    That was really a nice share.. Thanks.. It was very useful…

  11. Emad says:

    Hello Sir, I was wondering if there is like a reference chart that would guide to the best DBMS. However, depending on the type of data that is to be stored. For instance a business like Netflix would not be using the same DBMS like a retail business.

    • I am not aware of such a chart, but if one exists it could not be quite as simple as what you suggest. The choice of DBMS should really be based on application, not business. For example, consider Netflix. Yes, their business model of streaming video content to its customers can benefit from the flexible, scalable and distributed capabilities of a NoSQL DBMS. But their customer database and other applications that run the business are aligned with the core capabilities of relational/SQL database systems.

  12. Waseem says:

    Nice work, which is explaining how we could select a DBMS according to the usage and provides the alternatives available in market. I am impressed on this work. Keep it up.

  13. Malcolm Coskrey says:

    Quality post! I??ve bookmark this page to come back later. thanks!

  14. Boyce Shoulders says:

    I wanted to say thank you to you for this excellent read!! I have you saved as a favorite to see fresh stuff you post.

  15. Julian says:

    Very nice blog post. I definitely love this website.
    Continue the good work!

  16. I always find your articles very helpful. Thank you!

Leave a reply to Sethuraman R Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.