Firebird (FirebirdSQL) — свободная кроссплатформенная реляционная система управления базами данных, работающая на macOS, Linux, Microsoft Windows и некоторых Unix-платформах.

Создан в 2001 году как ответвление Interbase 6.0, развивается сообществом разработчиков без явной поддержки какой-либо крупной корпорации.

Как и Interbase, использует MVCC, поддерживает хранимые процедуры на языке PSQL, триггеры, транзакционно-независимые 64-битные генераторы последовательностей. Имеется возможность работать с базами данных только для чтения (что позволяет использовать базы данных, например, на CD-ROM и удобно в комбинации со встраиваемой версией сервера Firebird Embedded). Реализовано несколько уровней изолированности транзакций, обеспечивается резервное копирование без остановки сервера. Реализована поддержка Юникода.

Внешние функции (UDF) могут быть написаны на любом языке и легко подключены к серверу в виде разделяемых библиотек, позволяя расширять возможности сервера «изнутри». Поддерживается SQL-92 Entry Level 1, реализована большая часть стандарта SQL-99, существует ряд дополнений стандартного синтаксиса.

Работает на аппаратных платформах x86, x64 и PowerPC, SPARC, выпускались версии для Windows, Linux, macOS, HP-UX, FreeBSD, Solaris и ряда других операционных систем, впоследствии сборка стала вестись только для 32- и 64-разрядных версий Windows, Linux и macOS.

Для доступа к серверу сторонними разработчиками выпускаются собственные наборы компонент для Си и C++, Delphi, классы для ADO, драйверы ODBC и JDBC. Имеются драйверы для Python, PHP, драйвер OLE DB, dbExpress, провайдер данных .NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll).

Базы данных могут быть расположены в нескольких файлах, предельный размер которых зависит от операционной системы, теоретический предел — 64 TБ для одного файла базы данных.

Существует четыре архитектуры сервера: ClassicServer — один процесс на одно соединение, поддержка многопроцессорных машин; SuperServer — все соединения используют один процесс, меньшие требования к памяти при большем быстродействии (до 3.0 — только для однопроцессорных); SuperClassic Server — один процесс, но свой поток на каждое соединение, начиная с версии 2.5; Embedded — система содержится в одной библиотеке с именем клиентской библиотеки сервера, подходит для однопользовательских систем и не требует инсталляции в Windows.

Все архитектуры используют одинаковый формат файла базы данных, таким образом, в любой момент можно переключиться на другую архитектуру.

Выпускается под условиями IPL (InterBase Public License) и IDPL (Initial Developer’s Public License), которые совпадают с условиями Mozilla Public License 1.1. Firebird бесплатен для использования и распространения, в случае модификации исходного кода сервера требуется публикация изменений.

История версий Firebird

1.0 (последний релиз 1.0.3 от 4 июня 2003) Релиз Firebird 1.0 - это первая версия (ноябрь 2001 года), базирующаяся на открытых исходных текстах InterBase 6.0. Поэтому в основном релиз содержит большое число исправлений ошибок IB 6.0.

Расширенные проверки зависимостей (udf и генераторы) Убраны проблемы с размером файла БД более 4 гигабайт (кроме FAT16 и FAT32, где файл не может быть больше 2-4 гигабайт) Поддержка размера страницы БД 16 килобайт ForcedWrites теперь ON по умолчанию при создании БД Параметр конфигурации для задания расположения внешних файлов Увеличено количество внешних файлов, открываемых одновременно Внешний файл закрывается, если внешняя таблица удаляется Добавлен параметр CPU_Affinity (Superserver) Возможность указания номера порта в строке коннекта Параметр NONAGLE для Linux Расширения isc_info_database Счетчик записей для gbak (при указании опции -v) Переменные CURRENT_USER и CURRENT_ROLE Команда DROP GENERATOR Возможность группировки по UDF (group by <function>) Команда RECREATE PROCEDURE Команда RECREATE TABLE Опции SELECT FIRST (<int>) SKIP (int) ... Функция SUBSTRING(<str> FROM <pos> [FOR <length>]) Команда PLANONLY для ISQL Новый маркер комментариев -- Расширения ib_udf (SUBSTR, SUBSTRLEN, ASCII_CHAR) Новый набор функций FBUDF.DLL By descriptor в параметрах UDF

1.5 (последний релиз 1.5.6 от 8 октября 2009) Firebird 1.5 выпущен на базе Firebird 1.0, с переводом кода с C на C++.

Восстановлена архитектура Classic для Windows Создан вариант embedded Расширен SQL - CASE, COALESCE, NULLIF Изменено имя базы безопасности (security.fdb) и других модулей - клиента, файла сообщений Новый файл конфигурации firebird.conf, с новыми параметрами Передача varchar по сети в "сжатом" виде Триггеры мульти-действий (insert or update or delete) Индексы по constraint PK, FK, Unique автоматически принимают имя constraint (если задано) Индексов у таблицы может быть до 256 (раньше было не более 64) Улучшенная обработка ошибок. Расширенная обработка ошибок в процедурах и триггерах Разрешается пустой блок BEGIN/END Новые таблицы символов Расширения в ISQL Новые функции в ib_udf и fbudf Улучшения оптимизатора

2.0 (последний релиз 2.0.7 от 12 апреля 2012)

Ускорена передача данных по сети Локальный протокол заменен на XNET Убрана трансляция прав доступа через NetBEUI Новая политика сборки мусора (см. firebird.conf, GCPolicy) Classic поддерживает все функции Services API, идентично SuperServer Параметр лимита ожидания по блокировкам WAIT Ускоренный поиск в строках и blob Исправления обновляемых view Новые режимы shutdown БД Новый формат БД - теперь одна таблица может иметь размер больше 36 гигабайт Новый формат БД - индексируемая строка может быть 1/4 размера страницы (до 4к при размере страницы 16к) Значительные улучшения оптимизатора Расширения клиентского API Новые встроенные строковые функции (lower, trim) Инкрементальный бэкап (nbackup)

2.1 (последний релиз 2.1.7 от 5 декабря 2014)

Глобальные триггеры базы данных Общие табличные выражения (CTE) Временные таблицы Возможность мониторинга базы данных через SQL Отмена зависших запросов Новые SQL инструкции

2.5 (последний релиз 2.5.9 от 24 июня 2019) Основной целью Firebird 2.5 было заложить основу для многопоточной архитектуры будущих версий. В данной версии в основе двух моделей Firebird Super Server и Firebird Classic лежит общий код, осуществляющий низкоуровневую синхронизацию и потокобезопасность.

3.0 (последний релиз 3.0.14 от 17 апреля 2026) В этой версии Firebird подвергся наиболее серьёзной переработке за 14 лет своего существования. Новая многопоточная архитектура и улучшенный общий кэш страниц намного эффективнее используют многоядерные процессоры и большие объемы оперативной памяти.

Благодаря этим изменениям версия Firebird 3.0 демонстрирует значительное увеличение производительности, в то же время сохраняя обратную совместимость со старыми клиентскими библиотеками.

Помимо этого Firebird 3.0 представляет большой список новых возможностей языка SQL (включая оконные и статистические функции) и добавляет расширенные возможности безопасности, такие как шифрование базы данных и сетевого трафика – всего более 100 существенных нововведений. Несмотря на новые возможности, ориентированные на предприятия и большие базы данных, Firebird 3.0 сохраняет свою компактность, возможность простого встраивания и управления, которые сделали его правильным выбором для многих приложений по всему миру.

4.0 (последний релиз 4.0.7 от 17 апреля 2026) Firebird 4.0 вводит новые типы данных и множество улучшений без радикальных изменений в архитектуре, наиболее важными из которых являются:

Встроенная логическая репликация Увеличена длина идентификаторов метаданных (до 63 символов) Десятичные числа с плавающей запятой (DECFLOAT) Увеличена максимальная точность числовых и ДЕСЯТИЧНЫХ знаков до 38 цифр Введен INT128 (128-разрядное целое число) Поддержка часовых поясов (TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE) Таблицы с параллельным выводом Настраиваемые тайм-ауты для подключений и инструкций Объединение внешних подключений в пул Пакетные операции в API Встроенные функции для шифрования и криптографических хэшей Встроенные функции для кодирования и декодирования Base64 и Hex Расширенные системные привилегии и возможность автоматического назначения ролей Движок и конфигурация базы данных (доступны только для чтения) доступны через виртуальную таблицу RDB$CONFIG Максимальный размер страницы увеличен до 32 КБ

5.0 (последний релиз 5.0.4 от 17 апреля 2026) Firebird 5.0 вносит множество улучшений без каких-либо изменений в архитектуре или работе, наиболее важными из которых являются:

Параллельная (многопоточная) работа для резервного копирования/восстановления, развертки и создания индекса Частичные индексы SKIP LOCKED для инструкций SELECT WITH LOCK, UPDATE и DELETE Встроенное незначительное обновление ODS Скомпилированный кэш инструкций Профайлер для PLSQL и SQL WHEN NOT MATCHED BY SOURCE для инструкции MERGE Поддержка нескольких строк для DML RETURNING Новые встроенные функции и пакеты Более плотное сжатие на уровне записи Сетевая поддержка прокручиваемых курсоров

6.0 (релиз запланирован на 1 квартал 2026) В следующем выпуске Firebird обещано множество улучшений, включая поддержку схем, табличных пространств, возможности работы с JSON, набор расширенных функций SQL, значительные обновления системы кэширования, улучшения оптимизатора и многие другие функции.

Примечания

Литература

Ссылки Firebirdsql — Официальный сайт

Категория:Свободные СУБД Категория:Кроссплатформенное программное обеспечение Категория:Программное обеспечение с лицензией MPL Категория:Программное обеспечение Borland