dbTuning: FirebirdCompliance

Created by: Lester Caine, Last modification: 26 May 2005 (18:32 UTC)
Firebird has full SQL 92 Entry Level 1 Support and implements most of the SQL-99 standard, plus some very useful additions. This includes DML/DDL statements, FULL/LEFT/RIGHT OUTER JOIN syntax, UNION, DISTINCT clauses, subselects (IN, EXISTS), internal functions (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), constraints (PRIMARY KEY, UNIQUE, FOREIGN KEY), as well as all common SQL data types.
Firebird also implements Domain and Field level Check Constraints, Views, Exceptions, Roles and a fine- grained Grant management. See the Release Notes and the Firebird Reference Guide for more details.
Firebird supports a number of connectivity methods, including: native Component Packages for C/C++ and Delphi, ODBC, JDBC (JayBird), PHP Driver, OLEDB driver, dbExpress, .Net data provider and finally through direct API calls using fbclient.dll/.so.
Firebird allows really huge databases. Databases can span multiple files, the size of each file is OS- dependant. The theoretical limit is currently 64TB for a single-file database, so the practical limit is usually the operating / file system or available HD space.
There are three different versions of the engine, all interchangeable and each with its own strengths:
  • Classic Server (one instance per client connection; SMP/HT support)
  • SuperServer (all connections handled by one module; currently no SMP/HT support)
  • Embedded Version (the entire engine in a single DLL / SO (!) for single-user, single-database use) All versions use the same db file format, so you can switch between all of them any time you like.
Firebird is licensed under the IPL (InterBase Public License) and the IDPL (Initial Developer's Public License) which have the same terms as the Mozilla Public License 1.1. Firebird is completely free to use and deploy to your customers. You don't need to release the source code for your own product, regardless of your licensing model. If you modify the engine, however, you must provide public access to the source code of your modifications.