I’ve always been faced with a dilemma when evaluating databases for new projects. In otak, I had no issues using Access as I wanted to write up something quickly, and it worked. However I’ve at the back of my mind kept in mind that Access isn’t exactly a fantastic database to use when otak grows up. Also, it isn’t ideal to keep using Access because:
1. It’s fading, and fading fast. Microsoft is preferring MS SQL Express instead.
2. Built in support for Jet is also going away, so one cannot take for granted every machine has Jet support there. This of course takes away Access’s initial attraction in the first place – to enable the developer to whip up an application with Access with minimal installation dependency worries.
3. Since we’re going to need to bundle drivers for Access, we might as well look at other more powerful databases out there.
My journey to find an Access replacement was fraught with many challenges. The first was how the heck to get started in the first place? I knew I wanted a database that is self-contained in a file. I know I wanted it to be free, open source, or whatever, as long as it doesn’t restrict my using it in any applications I choose to write, whether it is freeware or commercial. I don’t need a bigass relational database with boatload of features I don’t use, and I sure as heck don’t want users to have to install it first (ala SQL Server). And most importantly, that I can use it in .NET/Java. More for .NET, really.
It took me damn long to find out that the proper term for the database with these requirements is embedded database. It doesn’t help that Access isn’t exactly an embedded database, it simply could be used as one.
I’ve been evaluating databases for a while now for my personal projects (on and off I must admit), but as I force myself to transition to .NET. I know that I want to start with small projects that have minimal database requirement, for which requiring my users to install SQL Server or even MySQL would be an overkill.
So I’m happy to report that I have found a seemingly perfect solution to my problem: using Firebird as an embedded database. It can be used for .NET, so I’m happy.
I’ll have to play with it awhile first, before I fully give it my endorsement. But from the specs it looks just like what the doctor ordered.
Btw, if ever there was a requirement to use a full fledged database, I’d actually go with SQL Server, or MySQL. I think it makes good business sense to support SQL Server, as many enterprises would have that installed already, and forcing them to use MySQL would not be very attractive.
However, for users who are on a budget, having the option to allow them to use MySQL is perfect.
Anyway, I digress. The application I have in mind will be commercial (but it’ll be cheap), and a quick project. So that’s why Firebird will come in handy.