DotNetFirebird.org DotNetFirebird
Using Firebird SQL in .NET.
Sunday, January 23, 2005

Embedded Firebird and MSDE 2000 Feature Comparison

This is a basic comparison of Firebird 1.5 and Microsoft MSDE 2000 that stresses the advantages of Firebird. The whole matter is not so simple, especially when you are trying to compare Embedded Firebird (that is not a standalone server) and not Firebird Server. I'm going to expand this comparison later (and to bring a Firebird/SQL Express 2005 comparison as well).

FeatureEmbedded Firebird 1.5Microsoft MSDE 2000
Deployment and Administration
Single database file No
Embeddable Details... Limited*
XCOPY data deployment Details...
Hot backup (24x7 availability is possible)
Can run on Windows 98
Scalability
Database file size limit Unlimited*** 2 GB
Multiple concurrent connections Limited**
Engine Features
Transactions
Views
Autoincrement fields
Stored procedures and triggers
BLOB fields
Unicode support
National character sets support (including sorting)
ADO.NET Provider
Licensing
Open-source license Details...
License allows use in commercial applications Details...

* Embedding. MSDE can be installed with the host application but it still is a separate server. You need to accept MSDE EULA before redistribution. Firebird can be installed as a server or can be used as as a part of the application (just a single DLL copied into the application directory that doesn't expose any TCP/IP or other interface to other applications).

** Multiple concurrent users. MSDE contains a workload governor which adds performance penalty when there are more than 5 concurrent connections working (NB working not just open).

*** Database file size limitation. Firebird is limited only by file system (e.g. 16+ TB on NTFS).

To summarize: Embedded Firebird is a clear win when you need a fully embedded database that users are not aware of. Comparing standalone Firebird server is a different story and we will come back to it later. The clear advantages of Embedded Firebird are:

  • Licensing. You can't beat Firebird's open-source license that allows use in commercial applications without any viral effect (i.e. no need to open your proprietary code). Any kind of a "free redistribution" license is just too far from that.
  • XCOPY Data Deployment. A Firebird database is a single file. Just copy it somewhere on disk and open it. Compress it and send it by e-mail. Use your own file extension and associate it with your application.
  • XCOPY Runtime Deployment. Not only the data but the runtime (which is a single DLL and optional supporting files) can be just copied to your application's directory.
  • Runtime size. Compare the MSDE 40+ MB download with the 2 MB Firebird runtime.
  • No performance limitations. With Firebird you can have a database of any size and open multiple connections without any penalty.
  • Real embedding. Users and administrators don't need to be aware that your application is using Embedded Firebird because it is only accessible from your application.

Related

Comments:

In the comparison chart, Multiple concurrent users is checked as yes. All the documentation I've seen so far indicates that only one user at a time can access a database using the Embedded mode due to file locking. Is this correct?
Yes, the file gets locked. However, the number of connections from the hosting application is not limited.

Well, it's not very clear from the table, I am going to update the description
The real major difference at this point in time is the size. MS SQL Server Express is a whopping 50+ MB download not withstanding .NET 2.0 framework download. Compare this to a couple of MB for Firebird.
The SQLEXPR.EXE is 50MB, but the setup file is about 20MB. You need to run SQLEXPR /X from the command line to extract the file. My biggest issue with using SQL server 2005 express as an embedded database are the hardware requirements (600 mb free disk, 1 GHz, Windows XP or higher), and not to mentioned that the more stuff to install the more time one will spend on support. You can't beat the simplicity of an xcopy :-)
Blog comments are closed.



Previous

Archives