Firebird

Firebird
Тип реляционная СУБД и свободное и открытое программное обеспечение
Разработчик Firebird Foundation[вд]
Написана на C++, C
Операционные системы Linux, Mac OS, Windows, Unix
Первый выпуск 22 ноября 2000
Аппаратные платформы IA-32, x86-64, ARM
Последняя версия 5.0.1 (31 июля 2024)
Альфа-версия 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 бесплатен для использования и распространения, в случае модификации исходного кода сервера требуется публикация изменений.

История версий 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.11 от 4 августа 2023)[3]

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

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

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

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

4.0 (последний релиз 4.0.4 от 8 ноября 2023)[4]

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

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

5.0 (последний релиз 5.1 от 31 июля 2024)[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: The true open source database for Windows, Linux, Mac OS X and more (англ.). Firebird 3.0.11. Архивировано 16 ноября 2023 года.
  4. Firebird 4.0.4 Release Notes (англ.). Firebird 4.0.4. Дата обращения: 26 августа 2023. Архивировано 28 августа 2023 года.
  5. Firebird 5.0.1 Release Notes (англ.). Firebird 5.0.1.
  6. Firebird 6.0 Roadmap (англ.). Firebird 6.0.

Литература

[править | править код]
  • Борри Хелен. 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.