Firebird (database)

from Wikipedia, the free encyclopedia
Firebird

Firebird logo
Basic data

developer Firebird development team
Publishing year November 22, 2000
Current  version 3.0.6
( June 28, 2020 )
operating system Various Unixes a . a. AIX , Linux , Windows , macOS
programming language C ++
category Database management system
License IDPL (variant of the Mozilla Public License )
German speaking Yes
www.firebirdsql.org

Firebird is a free database management system (DBMS). It is the free offshoot of the relational database management system InterBase, which continues to be sold commercially by Embarcadero (formerly CodeGear , Borland ) .

history

The spin-off took place in 2000, when Borland was seriously considering discontinuing the further development shortly before the release of Version 6 of its commercial predecessor Interbase.

Interbase 6.0 became Firebird 1.0, although this can be seen as a bugfix version with only a few extensions. An extension of Firebird 1.0 is the 64-bit file I / O, which means that database files of more than 2 GB in size can be created.

Fundamental enhancements were made in the Firebird 2.0 branch. The entire source code of Interbase has been translated from the C language to C ++ . From February 2004 the first productive version from the Firebird 2.0 branch was available as Firebird 1.5. Firebird 2.0 was released in November 2006; the current version of this branch is 2.5.9 from June 24, 2019.

Version 3.0 was released on April 19, 2016. The main goals of this version are the standardization of the server architecture and the improvement of the support of symmetrical multiprocessor systems (SMP) or of multi-core processors .

In principle, the Firebird server conforms to SQL 92 Entry Level 1. Firebird 1.5 follows the SQL standard according to ANSI SQL-99. Firebird 2.0 is mostly compliant with SQL-2003 (17 mandatory skills are completely absent, especially schemes; 9 mandatory skills are only partially supported).

In LibreOffice the existing database engine will be replaced by Firebird SQL. In version 6.1 of LibreOffice it was activated as the standard database engine, but declared as experimental.

Available variants of the Firebird database server program

Up to version 2.5 of the Firebird database there were four versions with different functions. There are the SuperServer, ClassicServer, SuperClassic and EmbeddedServer variants. Not all variants are available for all platforms.

SuperServer ( ThreadedDedicated )

The SuperServer variant is a multithreaded server process. The SuperServer manages all user inquiries and connections using independent threads within one process. Under Windows (from NT4) the SuperServer can run as a service or generally as an application.

ClassicServer ( MultiProcess)

With the ClassicServer, all connections are managed in separate processes. Each process manages its own database cache . Due to the separation according to processes, the ClassicServer is well suited for multiprocessor environments. However, it uses more memory .

SuperClassicServer ( ThreadedShared)

With the SuperClassicServer, all connections are managed by one process, but each connection has its own database cache . SuperClassicServer can distribute all connections to the same database over several processors.

Embedded

With the embedded version it is possible to give a single application exclusive access to a database. This server variant is very suitable for single applications that run with their own database and do not require multi-user mode. The embedded version does not require any installation and only has one program library for the available platforms.

32- and 64-bit support

From version 2.1.1 (September 2008) for Solaris and from version 2.1.3 from September 2009 for Windows and Linux separate 32 and 64-bit versions are available. The FreeBSD and AIX releases are still at 32-bit version 1.5, Firebird for HP-UX is also only available in 32-bit version 2.0.3.

Administration of Firebird database systems

For productive 24-hour operation, the supplied backup program (gbak) allows online backups without having to shut down a database. As of version 2.0, incremental backups are now possible (nbackup). In order to get access to a Firebird server, the standard port 3050 must be reachable for TCP and UDP access. Firebird does not have its own GUI administration tool, administration takes place via the console or additional products.

Driver for the Firebird database server

For access to the Firebird database or the server, there are drivers and libraries for Delphi , Free Pascal , Perl , Python , ODBC , .NET , PHP , Qt , C ++ and Java (as type 2 and type 4 JDBC drivers) .

Support can be provided either free of charge through the community or through commercial offers.

Firebird capabilities

The Firebird database masters stored procedures with a programming language similar to Oracle's PL / SQL . Queries can also be saved and changes can be submitted. Cascading triggers for all DML commands and referential integrity of foreign keys are offered. All transactions are fully ACID compatible (Atomicity, Consistency, Isolation and Durability) and support savepoints .

The server masters different SQL dialects, which can be defined individually for each database. Depending on the dialects, identifying names can be any character strings with spaces ( quoted identifier ) or names that are case insensitive ( case insensitive identifier ). With the different dialects, data and applications from older applications can be migrated better.

Each individual column of a table can have its own character set and its own sorting (for example, regardless of upper / lower case). A large number of predefined 8-bit character sets and some Unicode variants are supported. Additional character sets and collations can be implemented without having to change anything in the Firebird program source code or the compiled program code.

The server environment can send messages from triggers and stored procedures to applications, provided the drivers allow it. For example, the current version of the Java JDBC driver (name: Jaybird, version 3.0.7, as of November 10, 2019) can receive such messages. It is thus possible for an application to react directly to triggered database changes and to provide the user with appropriate information.

The language scope of the value processing functions can be expanded using UDFs ( User Defined Functions ). However, appropriate platform-specific libraries must be created and integrated. Embedded functions that are supposed to behave like stored procedures, but can be developed in any programming language, are at an experimental stage. There is currently an experimental Firebird version that can integrate Java methods via a Java virtual machine running in the server.

Firebird has an event system with which messages can be sent to clients; these are triggered by triggers or procedures.

Exclusive read access can be agreed for databases in order to allow direct access to the data they contain after storage on archiving media (e.g. CD-ROM, DVD). A single database file can be up to 64  terabytes in size. A database can consist of several database files. This means that very large databases could be created on file systems that, for example, do not allow files larger than 2 GB, e.g. FAT 16 .

Firebird can be expanded to include replication services using third-party software .

In contrast to most other modern database systems, Firebird does not have an integrated full-text search . Users are dependent on third-party providers or workarounds.

See also

literature

  • Helen Borrie: The Firebird Book Second Edition: Volume 1: Firebird Fundamentals . 2nd Edition. CreateSpace Independent Publishing Platform, 2013, ISBN 978-1-4827-4497-2 .
  • Helen Borrie: The Firebird Book Second Edition: Volume 2: Developing with Firebird Data . 2nd Edition. CreateSpace Independent Publishing Platform, 2013, ISBN 978-1-4827-6730-8 .
  • Helen Borrie: The Firebird Book Second Edition: Volume 3: Administering Firebird Servers and Database . 2nd Edition. CreateSpace Independent Publishing Platform, 2013, ISBN 978-1-4827-6848-0 .

Web links

Individual evidence

  1. Release 3.0.6 . June 28, 2020 (accessed June 29, 2020).
  2. Firebird 2.5 Release Notes . firebirdsql.org; accessed on November 15, 2019.
  3. Firebird 3.0.2 Release Notes . firebirdsql.org; Retrieved July 19, 2017.
  4. ^ LibreOffice 6.1: Release Notes - The Document Foundation Wiki. Retrieved August 25, 2018 .
  5. a b c Firebird 3 Quick Start Guide. Retrieved August 3, 2020 .
  6. Releases Firebird-solaris-amd64 . Sourceforge.net; Retrieved May 3, 2011.
  7. Releases Firebird-win64 . Sourceforge.net; Retrieved May 3, 2011.
  8. Releases Firebird-linux-amd64 . Sourceforge.net; Retrieved May 3, 2011.
  9. Which TCP / IP port is Firebird using? Firebird FAQ, accessed August 27, 2013.
  10. Server configuration and management. Retrieved May 16, 2019 .
  11. Firebird: Jaybird 3.0.7 released. Firebird, November 10, 2019, accessed November 15, 2019 .
  12. Does Firebird support full-text search? Retrieved July 5, 2020 .