HOME

TheInfoList



OR:

Firebird is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
SQL
relational database management system A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
that supports
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
and other
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
platforms. The database forked from
Borland Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
's open source edition of
InterBase InterBase is a relational database management system (RDBMS) currently developed and marketed by Embarcadero Technologies. InterBase is distinguished from other RDBMSs by its small footprint, close to zero administration requirements, and multi-g ...
in 2000 but the code has been largely rewritten since Firebird 1.5.


History

Within a week of the
InterBase InterBase is a relational database management system (RDBMS) currently developed and marketed by Embarcadero Technologies. InterBase is distinguished from other RDBMSs by its small footprint, close to zero administration requirements, and multi-g ...
6.0 source being released by
Borland Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
on 25 July 2000, the Firebird project was created on
SourceForge SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrorin ...
. Firebird 1.0 was released for Linux, Microsoft Windows and
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
on 11 March 2002, with ports to
Solaris Solaris may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Solaris'' (1972 film), directed by ...
, FreeBSD 4,
HP-UX HP-UX (from "Hewlett Packard Unix") is Hewlett Packard Enterprise's proprietary implementation of the Unix operating system, based on Unix System V (initially System III) and first released in 1984. Current versions support HPE Integrity Ser ...
over the next two months. Work on porting the codebase from C to
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
began in 2000. On 23 February 2004, Firebird 1.5 was released, which was the first stable release of the new codebase. Version 1.5 featured an improved query optimizer,
SQL-92 SQL-92 was the third revision of the SQL database query language. Unlike SQL-89, it was a major revision of the standard. Aside from a few minor incompatibilities, the SQL-89 standard is forward-compatible with SQL-92. The standard specificatio ...
conditional expressions, SQL:1999
savepoint A savepoint is a way of implementing subtransactions (also known as nested transactions) within a relational database management system by indicating a point within a transaction that can be " rolled back to" without affecting any work done in ...
s and support for explicit locking. Firebird 2.0 was released on 12 November 2006, adding support for
64-bit In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
architectures, tables nested in FROM clauses, and programmable
lock Lock(s) may refer to: Common meanings *Lock and key, a mechanical device used to secure items of importance *Lock (water navigation), a device for boats to transit between different levels of water, as in a canal Arts and entertainment * ''Lock ...
timeouts in blocking transactions. The previous stable release was version 2.1.6, which added new features including procedural triggers, recursive queries, and support for SQL:2003
MERGE Merge, merging, or merger may refer to: Concepts * Merge (traffic), the reduction of the number of lanes on a road * Merge (linguistics), a basic syntactic operation in generative syntax in the Minimalist Program * Merger (politics), the comb ...
statements. Firebird 2.5 introduced new features like improved multithreading,
regular expression A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or ...
syntax and the ability to query remote databases. The most recent stable version is Firebird 3.0, released 19 April 2016, with focus in performance and security. A major re-architecture of the code allowed total support to SMP machines when using the SuperServer version. Through the
Google Summer of Code The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
2013 work has begun on integrating Firebird as a replacement for
HSQLDB HSQLDB (''Hyper SQL Database'') is a relational database management system written in Java. It has a JDBC driver and supports a large subset of SQL-92, SQL:2008, SQL:2011, and SQL:2016 standards. It offers a fast, small (around 1300 kilobyte ...
in
LibreOffice Base LibreOffice Base is a free and open-source database development and administration tool for relational database management systems that is part of the LibreOffice office suite. LibreOffice Base was built off of a fork of OpenOffice.org and was ...
.


Mozilla Firefox name conflict

In April 2003, the
Mozilla Organization The Mozilla Foundation (stylized as moz://a) is an American non-profit organization that exists to support and collectively lead the open source Mozilla project. Founded in July 2003, the organization sets the policies that govern development, ...
announced a rename of its
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
from ''Phoenix'' to ''Firebird'' after a trademark dispute with
Phoenix Technologies Phoenix Technologies Ltd is an American company that designs, develops and supports core system software for personal computers and other computing devices. The company's products commonly referred to as BIOS (Basic Input/Output System) or fir ...
. This decision caused concern within the Firebird database project due to the assumption that users and Internet search engines would be confused by a database and a web browser both using the name Firebird. The Mozilla developers issued a statement, making clear that their software package was called "Mozilla Firebird", not "Firebird". The statement also said that the Mozilla Firebird name was a
project codename A code name, call sign or cryptonym is a code word or name used, sometimes clandestinely, to refer to another name, word, project, or person. Code names are often used for military purposes, or in espionage. They may also be used in industrial c ...
. The dispute was resolved on 9 February 2004, when Mozilla changed the name of its browser to
Mozilla Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and a ...
, thus ending the conflict.


Main features

* Full support for stored procedures and triggers * Full
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
compliant transactions * Referential integrity * Multi Generational Architecture (sometimes called MVCC) * Support for External Functions ( UDFs) * SQL activity can send asynchronous notification events to clients * Third-party tools, including GUI administrative tools and replication tools * Careful writes - fast recovery, no need for transaction logs * Many access methods: native/API, dbExpress/FireDAC drivers, ODBC, OLE DB, .NET provider, JDBC native type 4 driver, Python module, PHP, Perl * Incremental backups * Full cursor implementation in PSQL


Storage and index technology


The Multi-Generational Architecture (MGA)

Firebird inherited the storage architecture of Interbase. To ensure the
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
properties of transactions, the database engine keeps different versions of each record changed by the active users in the database. When the transactions are committed, the last version of every changed record is marked as the definitive. If transactions are rolled back, the database engine keeps the mark on the original record versions, leaving them untouched. As a result, Firebird disk writes are very reduced compared to databases that use the traditional transaction log architecture. Writing transactions does not prevent reading and vice versa, because each one sees its own version of the database. The
tradeoff A trade-off (or tradeoff) is a situational decision that involves diminishing or losing one quality, quantity, or property of a set or design in return for gains in other aspects. In simple terms, a tradeoff is where one thing increases, and anot ...
is that some maintenance ("sweeping") is required from time to time to clean up old record versions and free disk space. The multi-generational architecture ensures that OLTP and DSS/OLAP operations can be run simultaneously without the delays caused by locking mechanisms found in other products.


Indexes

Firebird makes all indices of the database behave like well-tuned "clustered indexes" used by other architectures. Firebird index buckets aren't subject to two-phase locking, and boolean "and" and "or" operations can be performed on intermediate bitmaps at a negligible cost, eliminating the need for the optimizer to choose between alternative indexes.


Variants

* Firebird SuperServer has a single daemon/server for all client connections, multithreaded with shared cache * Firebird SuperClassic also has a single daemon/server for all client connections, multithreaded with separate caches * Firebird Classic uses
inetd inetd (internet service daemon) is a super-server daemon on many Unix systems that provides Internet services. For each configured service, it listens for requests from connecting clients. Requests are served by spawning a process which runs the ...
to run one copy of the server per client connection, recommended for SMP systems but might have event-notification issues if access is via a firewall * Firebird Embedded for creating CD-ROM catalogs, single user or evaluation versions of applications


Licensing

The Firebird database engine and its modules are released under an
open-source license An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial compa ...
, the Initial Developer's Public License (IDPL), a variant of the
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird The MPL license is developed and maintained by Mozilla, which seeks to balance the concerns ...
(MPL) version 1.1. It does not require the developer to open the products using Firebird or even custom-derivatives made from its source code, but if the developer chooses to do so, then some terms and conditions should be honored. The IDPL allows the developer to make proprietary, closed-source applications that use Firebird or are based on it.


Connectivity APIs


Low-level Firebird Native API, Services API and embedded SQL

The Firebird native API is used directly or indirectly by applications or middleware that connect to a Firebird database. It is implemented in the client library, fbclient.dll, on Windows systems, and in libfbclient.so on Unix ones. The Services API is a special function set for accessing and controlling service administration tasks such as user management, backup/restore and statistics gathering.
Embedded SQL Embedded SQL is a method of combining the computing power of a programming language and the database Data Manipulation Language, manipulation capabilities of SQL. Embedded SQL statement (programming), statements are SQL statements written inline wi ...
is a technique that simplifies the development of C/C++ and COBOL Firebird applications, by using a
preprocessor In computer science, a preprocessor (or precompiler) is a program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which is often used by so ...
called gpre, which allows the embedding of SQL statements directly into the source code of the host language.


Awards

* 2007. SourceForge Community Choice Award: Best Project for enterprise, Best user support. * 2009. SourceForge Community Choice Award: Best Project for enterprise. Finalist on Best Project and Best Project for Government.


See also

*
Comparison of relational database management systems The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are b ...
*
List of relational database management systems This is a list of relational database management systems. List of software * 4th Dimension *Access Database Engine (formerly known as Jet Database Engine) *Adabas D *Airtable *Apache Derby *Apache Ignite * Aster Data *Amazon Aurora *Altibase * CA ...
*
Multiversion concurrency control Multiversion concurrency control (MCC or MVCC), is a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement transactional memory. Description W ...


References


External links

* {{Official website
Firebird - Developer portal

Firebird collations
charts.


FirebirdFAQ

FirebirdNews
- News about Firebird and related projects
Migration Guide to Firebird 3
- eBook
Firebird Ole Db Driver (alternative for ODBC)

Jaybird – JDBC driver for Firebird (on github.com)

Jaybird – JDBC driver for Firebird (on firebirdsql.org)
Free database management systems Cross-platform software Relational database management systems Client-server database management systems Relational database management software for Linux Formerly proprietary software