I previously posted a Poll about What is Your Favorite Database?
I got great response from users. In fact, I received some of the best poll-related comments on this blog and they are worth reading.
Let us check the result first. Here are the votes I received on different database. Total votes received are 1,697.
SQL Server – 1,121 – 64%
Oracle – 432 – 25%
MySQL – 144 – 8%
Other – 64 – 4%
SQL Server is a clear winner with 1,121 votes, which is an astounding 64% of the total votes. As a matter of fact, it is not startling to see SQL Server emerge as a winner as this blog is primarily focused on SQL Server, and on top of that SQL Server is the most popular language.
Lotus Notes/Lotus Domino (total 12 votes) and PostegreSQL (total 12 votes) are the top two DBMS in other section.
Let us have a look at the result in the following image. Here, I have included all the DBMS who received more than 1 vote.
Now I would like to announce the winner who gave the best comment. And the winner is Brian Tkatch. I could not stop laughing after reading his comment. He is dear friend of mine and a SQL Expert who has actively participated several times on this blog earlier. Imran Mohammed and phat shantz also came up with interesting comments. I thoroughly enjoyed reading their comments as they discussed unknown details about other database. The comment from Jeff further led to some good discussion on the topic. I have not edited any of their comments and have published their original version.
Comment of Brian Tkatch :
I prefer the DB that is best suited for the job. If there job can use any, i prefer Oracle because it makes the most sense to me.
I’ve use a few RDBMs, but for short periods, like a year or two. I have very particular tastes, and as such am heavily biased, so IMNSHO:
SQL Server implements what programmers want, and then bends to the way things should be where it doesn’t add too much inconvenience.
Pros: Integrated, easy to manage, secure, supported, low cost, convenient in most cases, Pinal Dave
Cons: inconvenient in some cases (SET NOCOUNT ON et al, non-ANSI join-syntax is deprecated, and others) bar set too low for DBAs (allowing much idiocy), no robust command line tool
Oracle implements things the way they should be done, and then bends to the programmer where it is helpful but does not break any ideas.
Pros: Robust, secure, supported, fast, long history
Cons: Very expensive, inconvenient in some cases
MySQL isn’t a database. It’s free and fast for lightweight applications, but lacks security and robustness of a real database. I’d use it where speed and cost are factors, but not security or data retention.
Pros: Fast, free
Cons: Not secure, error messages rarely help, not robust, no reliable data retention, slow on complex queries with large data sets.
DB2 implements whatever it can, trying to make everybody happy, supporting the popular features of both SQL Server and Oracle. I would use it where being an IBM shop made sense. Otherwise, SQL Server or Oracle could easily do the same job.
Pros: Supports everything. Cheap. Supported by IBM.
Cons: Easy to crash (i crashed it, that is the server, 4 different times by running regular queries), lack of distinctness
PostgreSQL is similar to Oracle, but free. I’d use it anywhere other people would use MySQL but want a database instead, or where commercial support is a must.
Pros: Fast, free, secure
Cons: Relatively small community supporting it
Access is a RAD for small applications.
Pros: Cheap, integrated, RAD
Cons: Single user, not for large applications.
SQL Server – Easy
Oracle – Robust
MySQL – Fake
DB2 – Contender
PostgreSQL – Free
Access – Small
Thank you for reading. I think i got it out of my system now. :)
Comment of Imran Mohammed :
BEST RDBMS in Market :
1. Costs Less.
2. Extra Security.
3. Extra features
4. Comes with many free tools.
5. Have capabilities to handle VLDB (UPSS – 18 TB, Myspace uses SQL Server)
6. Comparatively easy to handle/Interfaces.
List goes on and on….
More Important… I am getting monthly pay cheques because I am SQL Server DBA. :)
Comment of phat shantz :
For years I built standalone business applications using c-Tree, a high-performance, cross-platform database from Faircom that could be implemented with native or server based access.
I still think c-Tree is the best database in the universe, although the downside is the limited acceptance and limited developer resources.
For the past few years, all my clients have used SQL Server.
Like all things Microsoft, SQL Server is a “good-enough” solution, so using and implementing it is tolerable. Since it plays well with MS office and MS builds all its business-centric products around it, it becomes the de-facto standard.
Compromise is not always the best course, but when dealing with jumpy executives and poorly-trained IT, sometimes the best you can do is compromise.
Even for some of the grandest projects, Oracle has usually been overkill. It’s expensive, a hog, slow (in my experience — and don’t blame me, it was always administered by a “professional” Oracle admin), but will handle 500,000 transactions in a gulp. I have seen one implementation of an Oracle database that actually needed that kind of horsepower.
Sybase and MySQL need no comments. Their fanbois are poised out there, ready to tout their superiority and flame anyone who disagrees.
Like one of your commenters stated, the question should be “what’s your favorite database for X type of project?”
If the environment is Microsoft and the platform is business and the clients and staff are untrained and largely uninformed, the answer is always SQL Server.
Still, I would never undertake a project using SQL Server without one of the best ORM/EF products available. Microsoft’s LINQ and EF are both less palatable as database access layers than are the visual components that come in Visual Studio tolerable as win or web-form components. (While most of what MS delivers is “good enough,” I think MS delivered LINQ and EF so they could claim they provide something. As they dissatisfied girlfriend says of the gift from an unwanted suitor, “you shouldn’t have.”
Just as I would never deliver a product using the world’s ugliest visual components (the VS toolbox), I would never use SQL Server without a quality (and pricey) ORM.
Even with all it’s drawbacks, sometimes the answer is SQL Server even if the staff and clients are very skilled and knowledgeable. I can think of some cases where it is the best answer, but the meta-requirements have to go far beyond capacity, speed, platform, or tools.
I guess there will always be a few “BetaMax” databases out there that are far superior in performance and capability to SQL Server. But the Redmond Marketing Horde has long conquered the battleground and there is little hope of the best rising above the most popular.
Comment of Jeff :
I’m not sure thats a fair question to ask. There are TONS of databases out there both free and commerical. The real question is always whats you’re favorite database for X.
For a ‘Enterprise’ DB, I like Sql server. It has a low barrier to entry, good tools, reasonable price point etc etc. I like PL/SQL as a stored proc language better than t-sql, but I find the learning curve for new developers to be higher on Oracle.
MySQL’s licensing terms, specifically the GPL’ed ADO.Net provider, personally make it a ‘meh’ option in the open source / free category. If I had to pick an enterprise database for linux shops I’d go with Postgres or Firebird first. MySQL’s ability to have differing disk formats is a really great feature. However the disk formats that it ships with are in my book un-compelling. Postgres and Firebird both have much better concurrency models. They both have much better procedural languages. They dont ‘blackmail’ me into buying support by GPLing a component that every other vendor on the planet licenses under the LGPL and then offering a binary-only support contract.
One database I find myself using a lot is SQLite. It’s a very very simple database. It’s serverless, locking is coordinated through the database file. The resource requirements are low enough for use in embeded systems. The great part about it is the zero-config aspect of it All you need to do is link in the library and point it at the db file. This is great for stuff you’d never think of using a database for otherwise. If I’m writing an application that needs data files, I can make them a database. I can use it as a light-weight db for unit testing. For webapps that expect an unzip and go deployment it’s a wonderful option. I can have a real db that simply lives on a file in the app.
I am really thankful to all of my blog readers and every person who participated in Poll. As requested by many readers, I will have new poll very soon.
Reference : Pinal Dave (http://blog.SQLAuthority.com)