I can understand why companies have been forced to turn to open source databases in the past, but I just don't see that it's really necessary anymore. I understand that sometimes it makes good business sense to cut licensing fees by going to open source for some smaller, less important databases, and that in the past you really didn't have much choice when you just didn’t want to pay for another license. I'm not I can understand why companies have been forced to turn to open source databases in the past, but I just don’t see that it’s really necessary anymore. I understand that sometimes it makes good business sense to cut licensing fees by going to open source for some smaller, less important databases, and that in the past you really didn’t have much choice when you just didn’t want to pay for another license. I’m not going to say that’s all gone, but I am going to say it’s getting much better.The Problem with Open Source Put simply, open source DBs are just too far behind commercial DBs. Let’s look at MySQL for example. I just reviewed MySQL 5.0 (see /3788) and it’s amazing to me how many companies are running large, mission-critical applications against it… well, they’re really running against 4.1 and below, but I’m sure they’ll be upgrading. MySQL 5.0 is the first version of MySQL that supports stored procedures, triggers, and views. The commercial DBs have had these features for more than 10 years and they’re well established. The real problem, though, is that MySQL’s security has typically been very weak. The transport protocols are weak, and they don’t offer Windows security, so you have to have passwords sitting around in text files out on your network. Until version 5.0, modifying a table’s data — which you could do directly from the file system, completely bypassing the DB engine — was a little too easy from a security standpoint. You could also add a table in that manner, or delete one. While I’ll admit that there can be certain advantages to working with a database so easy to alter, I think we can all agree that this isn’t good practice. It seems MySQL realized that because they’ve fixed it. As well, you can’t really monitor MySQL DBs either. There are no Windows performance counters you can monitor and log, so there’s really nothing to get alerted on. The admin interface to MySQL only comes with some basic monitoring stats and in a real enterprise environment they really won’t do you that much good. Not to mention there are very few (if any) 3rd party applications that will monitor and alert off of any of the open source DBs. Of course, there also aren’t many applications that develop against any of the open source DBs either so it’s difficult to even write code against them. MySQL provides a very simple editor that has practically no editing features, so you’re really better off writing MySQL code in notepad. MySQL also lacks a debugger, so if you have really long code with a mistake in it, you have to keep deleting code until you get to the offending line. They say that MySQL is the world’s easiest open source database, but I really don’t think so. Sure, to create a database and setup users, and maybe even load it with data is pretty easy, but when you leverage that against actually trying to write complicated code, or monitor performance of several MySQL DBs in an enterprise, it falls severely short. So that’s the basic problem with open source DBs. You get what you pay for. Not only that, but the open source companies simply don’t have the support resources the commercial vendors do. You will always get far better support from vendors with real money to throw at your problem… not to mention R&D. Don’t get me wrong, I think open source has its place, but that place is extremely limited.Is There a Real Solution?Now, let’s talk about how Microsoft and Oracle are trying to get some of that open source back. Both vendors now offer freeware versions of their enterprise DBs, but unfortunately, they won’t fully address the open source problem. The reason is simple: they cap the resources available to the DB. I could handle them capping most of the resources on the box like CPU, memory, connections, etc. What really makes it an incomplete solution is that they cap the size of the DB itself. The DB can only be up to 4GB. This will really inhibit their ability to steal back the lower end of the DB market from the open source community. What does it mean for a company to go with open source over a commercial vendor though? Is there any real advantage? The answer is not really. The only thing you would have to gain by going to an open source DB would be the size of the DB you could create. Let’s face it though… if you have a mission critical DB that’s going to be any decent size at all, you’ll need the extended capabilities of the commercial vendors. And the truth is that both Microsoft and Oracle have made it very cost effective to own the lesser versions of their DBs, so there’s really no excuse not to spend a little money and get a much better product. Going with the freeware Microsoft or Oracle versions is a much smarter move anyway because there’s an actual upgrade path to follow as your business grows. It’s much easier to go from SQL Server Express to SQL Server Workgroup or Standard than it is from MySQL or Ingres to SQL Server or Oracle. It’s simply a smarter choice. And seriously, if your DB is really that mission critical, don’t be so cheap. Treat it like the mission critical application that it is. If Microsoft and Oracle would lift the size restriction on their free DBs, I’m confident that companies could really start making a shift from open source. Of course, there will always be that crowd who sticks with open source just because they have something against commercial software. Let them live 10 years behind if they want to. Meanwhile the rest of us will be doing complex data warehouse loads, debugging our code, and having our servers monitored for us so we don’t have to sit on top of them. Databases