Firebird (database server)

Last updated

Firebird
Original author(s) Borland
Developer(s) Firebird Foundation
Initial release2000 (2000)
Stable release
4.0.4 [1]   OOjs UI icon edit-ltr-progressive.svg / 3 November 2023;14 days ago (3 November 2023)
Preview release
Firebird 5.0 Release Candidate 1 / 26.09.2023
Repository
Written in C++, C
Operating system Cross-platform
Platform IA-32, x86-64
Type RDBMS
License IPL, IDPL
Website www.firebirdsql.org OOjs UI icon edit-ltr-progressive.svg

Firebird is an open-source SQL relational database management system that supports Linux, Microsoft Windows, macOS and other Unix platforms. [2] The database forked from Borland's open source edition of InterBase in 2000 but the code has been largely rewritten since Firebird 1.5. [3]

Contents

History

Within a week of the InterBase 6.0 source being released by Borland on 25 July 2000, [4] [5] the Firebird project was created on SourceForge. [6] [7] Firebird 1.0 was released for Linux, Microsoft Windows and Mac OS X on 11 March 2002, [8] with ports to Solaris, FreeBSD 4, HP-UX over the next two months. [9]

Work on porting the codebase from C to C++ began in 2000. On 23 February 2004, Firebird 1.5 was released, [10] which was the first stable release of the new codebase. Version 1.5 featured an improved query optimizer, SQL-92 conditional expressions, SQL:1999 savepoints and support for explicit locking. [11] Firebird 2.0 was released on 12 November 2006, [12] adding support for 64-bit architectures, tables nested in FROM clauses, and programmable lock timeouts in blocking transactions. [13]

The previous stable release was version 2.1.6, which added new features including procedural triggers, recursive queries, and support for SQL:2003 MERGE statements. [14]

Firebird 2.5 introduced new features like improved multithreading, regular expression syntax and the ability to query remote databases. [15]

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. [16]

Through the Google Summer of Code 2013 work has begun on integrating Firebird as a replacement for HSQLDB in LibreOffice Base. [17] [18]

Mozilla Firefox name conflict

In April 2003, the Mozilla Organization announced a rename of its web browser from Phoenix to Firebird after a trademark dispute with Phoenix Technologies. [19]

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. [20] [21] The Mozilla developers issued a statement, [22] making clear that their software package was called "Mozilla Firebird", not "Firebird". [23] [24] The statement also said that the Mozilla Firebird name was a project codename.

The dispute was resolved on 9 February 2004, when Mozilla changed the name of its browser to Mozilla Firefox, thus ending the conflict. [25] [26] [27]

Main features

Storage and index technology

The Multi-Generational Architecture (MGA)

Firebird inherited the storage architecture of Interbase. To ensure the ACID 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. [32] As a result, Firebird disk writes are very reduced compared to databases that use the traditional transaction log architecture. [33] Writing transactions does not prevent reading and vice versa, because each one sees its own version of the database. [34] The tradeoff is that some maintenance ("sweeping") is required from time to time to clean up old record versions and free disk space. [35]

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. [36]

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. [37]

Variants

Licensing

The Firebird database engine and its modules are released under an open-source license, the Initial Developer's Public License (IDPL), a variant of the Mozilla Public License (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. [38]

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. [39]

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 is a technique that simplifies the development of C/C++ and COBOL Firebird applications, by using a preprocessor called gpre, which allows the embedding of SQL statements directly into the source code of the host language. [40]

Awards

See also

Related Research Articles

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

<span class="mw-page-title-main">PostgreSQL</span> Free and open-source relational database management system

PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the Ingres database developed at the University of California, Berkeley. In 1996, the project was renamed to PostgreSQL to reflect its support for SQL. After a review in 2007, the development team decided to keep the name PostgreSQL and the alias Postgres.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB/2, then DB2 until 2017 and finally changed to its present form.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

InterBase is a relational database management system (RDBMS) currently developed and marketed by Embarcadero Technologies. InterBase is distinguished from other RDBMS's by its small footprint, close to zero administration requirements, and multi-generational architecture. InterBase runs on the Microsoft Windows, macOS, Linux, and Solaris operating systems as well as iOS and Android.

Mimer SQL is a proprietary SQL-based relational database management system produced by the Swedish company Mimer Information Technology AB, formerly known as Upright Database Technology AB. It was originally developed as a research project at the Uppsala University, Uppsala, Sweden in the 1970s before being developed into a commercial product.

C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, as of 2009 it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile apps for Windows, iOS, macOS, and Android. It includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

Apache Derby is a relational database management system (RDBMS) developed by the Apache Software Foundation that can be embedded in Java programs and used for online transaction processing. It has a 3.5 MB disk-space footprint.

<span class="mw-page-title-main">H2 (database)</span>

H2 is a relational database management system written in Java. It can be embedded in Java applications or run in client-server mode.

Jim Starkey is a database architect responsible for developing InterBase, the first relational database to support multi-versioning, the blob column type, type event alerts, arrays and triggers. Starkey is the founder of several companies, including the web application development and database tool company Netfrastructure and NuoDB.

<span class="mw-page-title-main">Virtuoso Universal Server</span> Computer software

Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "universal server"; it enables a single multithreaded server process that implements multiple protocols. The free and open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso. The software has been developed by OpenLink Software with Kingsley Uyi Idehen and Orri Erling as the chief software architects.

HOSxP is a hospital information system, including Electronic health record (EHR), used in hospitals across Thailand. It serves over 300 hospitals in Thailand. The software aims to ease the healthcare workflow of health centers, for small sanatoriums to central hospitals.

SAP SQL Anywhere is a proprietary relational database management system (RDBMS) product from SAP. SQL Anywhere was known as Sybase SQL Anywhere prior to the acquisition of Sybase by SAP.

The SQuirreL SQL Client is a database administration tool. It uses JDBC to allow users to explore and interact with databases via a JDBC driver. It provides an editor that offers code completion and syntax highlighting for standard SQL. It also provides a plugin architecture that allows plugin writers to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. As this desktop application is written entirely in Java with Swing UI components, it should run on any platform that has a JVM.

An embedded database system is a database management system (DBMS) which is deeply integrated with an application software; it is built into the software or an application. It is a broad term which includes:

<span class="mw-page-title-main">Drizzle (database server)</span>

Drizzle is a discontinued free software/open-source relational database management system (DBMS) that was forked from the now-defunct 6.0 development branch of the MySQL DBMS.

Java Database Connectivity (JDBC) is an application programming interface (API) for the Java programming language which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. It is part of the Java Standard Edition platform, from Oracle Corporation. It provides methods to query and update data in a database, and is oriented toward relational databases. A JDBC-to-ODBC bridge enables connections to any ODBC-accessible data source in the Java virtual machine (JVM) host environment.

<span class="mw-page-title-main">Database Workbench</span>

Database Workbench is a software application for development and administration of multiple relational databases using SQL, with interoperationality between different database systems, developed by Upscene Productions.

<span class="mw-page-title-main">Apache Trafodion</span> Relational database management system for Apache Hadoop

Apache Trafodion is an open-source Top-Level Project at the Apache Software Foundation. It was originally developed by the information technology division of Hewlett-Packard Company and HP Labs to provide the SQL query language on Apache HBase targeting big data transactional or operational workloads. The project was named after the Welsh word for transactions. As of April 2021, it is no longer actively developed.

<span class="mw-page-title-main">DBeaver</span> Multi-platform database administration software

DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. This is a desktop application written in Java and based on Eclipse platform.

References

  1. "v4.0.4". 3 November 2023. Retrieved 5 November 2023.
  2. "Firebird: A powerful, cross platform, SQL database system". SourceForge. SourceForge Media, LLC. 25 April 2018. Retrieved 2 May 2018.
  3. "Firebird 1.5.5 Release Notes" . Retrieved 29 September 2009. Firebird 1.5.5 General Notes for rewriting it from C to C++ language
  4. "Inprise/Borland Introduces InterBase 6.0 Now Free and Open Source on Linux, Windows, and Solaris". 16 July 2000. Archived from the original on 6 December 2004. Retrieved 29 January 2009.
  5. "Borland.com: Inprise/Borland Introduces Interbase 6.0 Now Free and Open Source on Linux". Linux Today. Retrieved 29 January 2009.
  6. "Firebird History" . Retrieved 14 March 2014.
  7. Paul Reeves. "What's happening to InterBase". Borland User Group. p. 2. Retrieved 14 March 2014.
  8. "IBPhoenix Community News Archive". 11 March 2000. Retrieved 29 January 2009.[ permanent dead link ]
  9. "IBPhoenix Community News Archive". 11 April 2000. Retrieved 29 January 2009.[ permanent dead link ]
  10. "Firebird Relational Database 1.5 Final Out". Slashdot. 23 February 2004. Retrieved 31 January 2009.
  11. Helen Borrie (5 October 2009). "Firebird 1.5.6 Release Notes". Firebird Project. Retrieved 10 June 2012.
  12. Dmitry Yemanov. "Firebird 2.0 Final Release Launches in Prague" . Retrieved 5 February 2009.
  13. Helen Borrie (5 April 2012). "Firebird 2.0.7 Release Notes" . Retrieved 10 June 2012.
  14. Helen Borrie (20 July 2014). "Firebird 2.1 Release Notes" . Retrieved 20 July 2014.
  15. Helen Borrie (19 November 2015). "Firebird 2.5.5 Release Notes" . Retrieved 19 November 2015.
  16. Gray, James (29 July 2016). "The Firebird Project's Firebird Relational Database | Linux Journal". www.linuxjournal.com. Linux Journal. Archived from the original on 1 March 2020. Retrieved 1 March 2020.
  17. mariuz (14 February 2012). "Firebird Embedded and LibreOffice is the killer combination to scale from a single file application to a client/server approach". Firebirdnews.org. Retrieved 8 July 2013.
  18. ahunt (28 May 2013). "GSOC 2013: LibreOffice Firebird SQL Connector" . Retrieved 8 July 2013.
  19. Dotzler, Asa (14 April 2003). "Phoenix and Minotaur to be renamed Firebird and Thunderbird". MozillaZine. Retrieved 29 January 2016.
  20. Mozilla browser becomes Firebird, IBPhoenix, archived from the original on 23 April 2003, retrieved 29 January 2016
  21. Bishop, Alex (21 April 2003). "Firebird Database Project Admin Ann Harrison Interviewed". MozillaZine. Retrieved 29 January 2016.
  22. "mozilla branding". The Mozilla Organization. 25 April 2003. Archived from the original on 26 April 2003. Retrieved 31 January 2016.
  23. Festa, Paul (7 May 2003). "Mozilla's Firebird gets wings clipped". CNET. CBS Interactive. Retrieved 29 January 2016.
  24. Bishop, Alex (14 May 2003). "Christopher Blizzard of mozilla.org speaks on the Firebird naming conflict". MozillaZine. Retrieved 29 January 2016.
  25. Paul Festa (9 February 2004). "Mozilla holds 'fire' in naming fight". CNET. CBS Interactive. Retrieved 29 January 2016.
  26. "Mozilla Firebird Renamed Firefox, Version 0.8 Released". MozillaZine. 9 February 2004. Retrieved 29 January 2016.
  27. "Mozilla Firefox - Brand Name Frequently Asked Questions". mozilla.org. Mozilla Foundation. Retrieved 29 January 2016.
  28. "Get to know Firebird in 2 minutes".
  29. Roman Rokytskyy. "A not-so-very technical discussion of Multi Version Concurrency Control" . Retrieved 21 November 2011.
  30. "Connect to Firebird (FireDAC)".FireDAC
  31. "FDB: The Python driver for Firebird".
  32. "Multi-generational architecture (MGA) and record versioning". HK-Software. Archived from the original on 1 October 2011. Retrieved 14 July 2011.
  33. "Interview with Jim Starkey from InterBase World". Marina Novikova, InterBase World. Retrieved 14 July 2011.
  34. "What is Multi Generational Architecture (MGA)?". The Firebird FAQ. Retrieved 14 July 2011.
  35. "Database Housekeeping And Garbage Collection". The Firebird Project. Retrieved 14 July 2011.
  36. "What is Multi Generational Architecture (MGA)?". The Firebird FAQ. Retrieved 14 July 2011.
  37. "Interview with Jim Starkey from InterBase World". Marina Novikova, InterBase World. Retrieved 14 July 2011.
  38. "Firebird: Initial Developer's Public License Version 1.0". Firebird Project. Retrieved 13 July 2011.
  39. "The Firebird client library". The Firebird Project. Retrieved 14 July 2011.
  40. "Application development". The Firebird Project. Retrieved 14 July 2011.
  41. "SourceForge.net 2007 Community Choice Awards Winners". SourceForge.net. 15 June 2007. Retrieved 13 July 2011.
  42. "SourceForge.net: 2009 CCA: Winners". SourceForge.net. 28 July 2009. Retrieved 13 July 2011.