Friday, May 1, 2009

Embedded Firebird database overview

I was looking for a small and powerful database in order to fulfil the requirements of my last project. Because the database will be running locally I took the decision to use an embedded database. After a few searches over the Internet and some embedded database comparison reviews, I found Firebird which is actually a powerful but unknown (yet) relational database system. Here are some great features of the Firebird embedded database version:

Runtime size

The size of the runtime is 2 MB in the minimal configuration. There are only two files required (an embedded Firebird runtime DLL and an ADO.NET provider assembly). Even with all the other supporting files it doesn't get over 3 MB.

The facts of having such a small footprint of the runtime makes me even more happy about using the Firebird as an embedded database.

XCOPY deployment

Both the runtime and database file can be deployed by simple copying, no separate installer or component registration is required.

Could it be more simple than this?

Custom filename extensions

The database file (it's just a single file) can have any name and extension and can be located at any place on your hard drive. You can associate the extension with your application. This allows you to use Firebird database as an intelligent storage format.

This is also a feature I lake to have, because my users will create databases on-the-fly but I want to track them by categories using different file extensions. Great!


When migrating the database to a standalone Firebird server just copy the database file and change a connection string on your client. The migration to a standalone Firebird server couldn't be easier.


The license is open-source but commercial friendly. You can bundle embedded Firebird with your application without making your code available.

If you want to know how to user GUIDs with Firebird and ActiveRecord, read this article: ActiveRecord, Firebird and Guid Primary Keys


  1. O c'mon please stop with 2MiB and 2 files. It's 8 files and 6,02Mib in size for 2.1.x version. If you compile it yourself then it's 4,66Mib and 2 files.

  2. And how about SQLite?
    You can have NO extra files to deploy (it can be statically linked to your application) and it's size is less than 1MiB.

  3. "On Free Database: The Relational Databases Blog appears an embedded Firebird database overview. It begins..."

    Log Buffer #145