Firebird

У этого термина существуют и другие значения, см. Firebird (значения).

Firebird

Тип |  реляционная СУБД и свободное и открытое программное обеспечение
Разработчик |  Firebird Foundation[вд]
Написана на |  C++, C
Операционные системы  |  Linux, Mac OS, Windows, Unix
Первый выпуск |  22 ноября 2000
Аппаратные платформы  |  IA-32, x86-64, ARM
Последняя версия |  5.0.3 (15 июля 2025)
Альфа-версия |  6.0 (Q1 2025)
Репозиторий |  github.com/FirebirdSQL/f…
Состояние |  активное
Лицензия |  Interbase Public License[вд][1][2][…] и Initial Developer's Public License[вд][1][2][…]
Сайт |  firebirdsql.org
Медиафайлы на Викискладе

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 бесплатен для использования и распространения, в случае модификации исходного кода сервера требуется публикация изменений.

## Содержание

* 1 История версий Firebird
* 1.1 1.0 (последний релиз 1.0.3 от 4 июня 2003)
* 1.2 1.5 (последний релиз 1.5.6 от 8 октября 2009)
* 1.3 2.0 (последний релиз 2.0.7 от 12 апреля 2012)
* 1.4 2.1 (последний релиз 2.1.7 от 5 декабря 2014)
* 1.5 2.5 (последний релиз 2.5.9 от 24 июня 2019)
* 1.6 3.0 (последний релиз 3.0.13 от 15 июля 2025)[3]
* 1.7 4.0 (последний релиз 4.0.6 от 15 июля 2025)[4]
* 1.8 5.0 (последний релиз 5.0.3 от 15 июля 2025)[5]
* 1.9 6.0 (релиз запланирован на 1 квартал 2026)[6]
* 2 Примечания
* 3 Литература
* 4 Ссылки

## История версий 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.13 от 15 июля 2025)[3]

[править | править код]

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

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

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

### 4.0 (последний релиз 4.0.6 от 15 июля 2025)[4]

[править | править код]

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

### 5.0 (последний релиз 5.0.3 от 15 июля 2025)[5]

[править | править код]

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)[6]

[править | править код]

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

## Примечания

[править | править код]

1. ↑ 1 2 Open Hub — 2006.
2. ↑ 1 2 https://github.com/FirebirdSQL/firebird/blob/master/doc/license/README.license.usage.txt
3. ↑ Firebird 3.0.13 Release Notes (англ.). Firebird 3.0.12. Архивировано 16 ноября 2023 года.
4. ↑ Firebird 4.0.6 Release Notes (англ.). Firebird 4.0.4. Дата обращения: 26 августа 2023. Архивировано 28 августа 2023 года.
5. ↑ Firebird 5.0.3 Release Notes (англ.). Firebird 5.0.1. Дата обращения: 12 мая 2024. Архивировано 9 мая 2024 года.
6. ↑ Firebird 6.0 Roadmap (англ.). Firebird 6.0. Дата обращения: 14 июня 2024. Архивировано 14 июня 2024 года.

## Литература

[править | править код]

* Борри Хелен. Firebird. Руководство разработчика баз данных = The Firebird Book: A Reference for Database Developers. — СПб.: «БХВ-Петербург», 2007. — С. 1104. — ISBN 978-5-94157-757-6.
* Helen Borrie. The Firebird Book Second Edition // Volume 2: Developing with Firebird Data. — CreateSpace Independent Publishing Platform, 2013. — С. 532. — ISBN 978-1482767308.
* Helen Borrie. The Firebird Book Second Edition // Volume 3: Administering Firebird Servers and Database. — CreateSpace Independent Publishing Platform, 2013. — С. 444. — ISBN 978-1482768480.

## Ссылки

[править | править код]

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

Для улучшения этой статьи по информационным технологиям желательно:

* Проверить достоверность указанной в статье информации. На странице обсуждения должны быть пояснения.

Пожалуйста, после исправления проблемы исключите её из списка параметров. После устранения всех недостатков этот шаблон может быть удалён любым участником.

|

Системы управления базами данных (СУБД)

Клиент-серверные|

* Caché
* CouchDB
* IMS
* DB2
* Firebird
* FoundationDB
* Informix
* Ingres
* Interbase
* MS SQL Server
* MongoDB
* MySQL
* mSQL
* Neo4j
* Oracle Database
* Pervasive SQL
* PostgreSQL
* Sybase ASE
* Sybase ASA
* Sybase IQ
* Teradata Database
* ЛИНТЕР
* Yandex Database
* СУБД Ред База Данных

Движки|

* BDE
* Berkeley DB
* C-Store
* db4o
* HSQLDB
* Mnesia
* PrimeBase
* Redis
* Rdb
* SQLite
* ZODB

Файл-серверные|

* DataFlex
* dBase
* MS Access
* OpenOffice Base
* Paradox

Базы данных

Типы|

* Графовая
* Ключ — значение
* Документоориентированная
* На основе цепочки блоков
* Облачная
* Объектно-ориентированная:
* БД
* СУБД
* Объектно-реляционная СУБД
* Резидентная
* Реляционная:
* модель
* алгебра
* БД
* СУБД
* Столбцовая
* Хронологическая
* NoSQL
* NewSQL

Концепции|

* Модель данных
* Иерархическая модель
* Сетевая модель
* Транзакция
* Журнализация
* упреждающая
* Секционирование
* Сегментирование
* Столбцовое хранение

Объекты|

* Схема
* Отношение
* Столбец
* виртуальный
* Строка
* Таблица
* Представление
* материализованное
* Хранимая процедура
* Триггер
* Курсор
* Индекс
* Табличное пространство

Ключи|

* Первичный
* суррогатный
* Внешний
* Потенциальный
* Суперключ

Компоненты|

* Язык запросов
* Оптимизатор запросов
* Планировщик запросов
* План выполнения запроса
* Кэш запросов
* ODBC
* ADO
* ADO.NET
* JDBC

SQL|

| DML|

* SELECT
* INSERT
* UPDATE
* DELETE
* MERGE

|

DDL|

* CREATE
* ALTER
* DROP
* TRUNCATE

DCL|

* REVOKE
* GRANT

TCL|

* COMMIT
* ROLLBACK
* SAVEPOINT

*[СПб.]: Санкт-Петербург