How does Firebird embedded compare to Microsoft SQL Server Express
If you are new to embedded databases, you might run into problem of picking which one to use. One might argue that SqlServer Express is not really an embedded database, but once installed it integrates into Windows in such way that we can still consider it as such. It allows you to access a local database file using shared-memory space without TCP/IP connection or named pipes. At least, if you use Microsoft technology to access it, and not ODBC.
Here are some interesting points:
1. Footprint
Firebird Embedded is 3MB, SqlServer is 50MB download. With Firebird, you can develop native Windows applications using Delphi or C++ which have a very small footprint (1-2MB). For SqlServer it is recommended you use .NET. On Windows 7 this makes almost no difference because .NET comes preinstalled. But on Windows XP which is still installed on many computers, it requires that you update Windows Installer, and download and install .NET runtime, which is 10+ MB more. So, Firebird is a clear winner here.
2. SQL Features
We can call it a draw here as both products are full featured relational DBMS. There are some minor differences in feature set, but overall they are on par.
3. Limitations
Firebird is open source under IDPL license. You can install it on as many computers as you like, run on as many CPU cores as you like and have the database as large as needed (some database size in Terabytes are reported for embedded Firebird). SqlServer Express is limited to 10GB database size and 1GB RAM usage. While 10GB of database size is probably enough for most embedded applications, 1GB of RAM is a limit you might hit quickly. This 1GB of memory is used when sorting dataset in memory (ORDER BY on a complex query for example). Firebird is a clear winner here as well.
4. Portability
With SQL Server you are locked into Microsoft Windows. Firebird runs on just about any modern operating system available today: Windows, Linux, Mac OS X, etc.
4. Use case
An interesting comparison can be made by comparing two similar products that use these databases. Let's take for example Quicken Home Inventory Manager that uses SqlServer Express, and Attic Manager that uses Firebird embedded. Attic Manager has an option to import QHIM data directly from Quicken database, even on Windows 7 64 bit. The import works really well and fast, so we loaded the QHIM database into Attic Manager and tested both products with same database.
Both applications do their job well, and we could even argue that Attic Manager is a little bit snappier and seems to work faster. Let's say that they are similar programs. However, Attic Manager is only 3MB download, while QHIM downloads about 600MB if you let it run on fresh install of WindowsXP. Even if you have a broadband connection, the difference is huge.
The other thing that makes Attic much better program is the fact that it runs on Windows XP, Windows 7 and Linux and in both 32 and 64 bit variants of operating system. This is only because Firebird database is used and there was no need to rewrite the program again for the new version of operating system. Firebird is forward compatible and has been designed to run on 64 bit from the very start.