Firebird

Firebird
Database background

Firebird is a fork of the Interbase database, created in 2000 just a week after Interbase was open-sourced. The first stable version of the new codebase was released in 2004, with migration from C to C++ being underway since 2000.

Firebird has steadily improved over the years, but remains mostly used for local databases and less for remote connections. Firebird uses MVCC (multi-version concurrency control) inherited from Interbase, avoiding conflicts in simultaneous transactions. A downside of MVCC is the required periodic sweeping of the database.

A good thing is that, being an open-source database, there are no limits on database size, memory usage, and similar resources. Free versions of heavyweight databases (such as DB2, Oracle, or SQL Server) are limited in resource usage so they do not compete with their commercial editions. Its inadequacy for remote work is even reflected in the fact that you need to know the exact location of the database in the server’s filesystem when connecting to a remote server. Firebird can’t compete with databases designed for client/server workloads.

There are many reports about the lack of reliability of Firebird servers, though less so in recent versions. However, the release cycle is fairly long. Firebird can work with Interbase database files, although its support lags behind the latest releases.

Firebird data types we support

Integral:
bigint (int64, quad)int (integer, long)smallint (short)
Decimal:
decimal (numeric)double precision (double, real)float
Text:
blob sub_type 1char (character, text)cstringnchar (national char, national character)nvarchar (national char varying, national character varying, nchar varying)varchar (char varying, character varying, varying)
Date/Time:
datetimetimestamp
Large objects:
blob sub_type 0 (blob)blob sub_type 1
Other:
boolean