Введение
Система управления реляционными базами данных
Firebird — это реляционная система управления базами данных с открытым исходным кодом, поддерживающая Linux, Microsoft Windows, macOS и другие Unix-платформы. База данных произошла от версии InterBase с открытым исходным кодом, выпущенной Borland в 2000 году, но код был значительно переписан, начиная с Firebird 1.5.
История
В течение недели после выпуска исходного кода InterBase 6.0 компанией Borland 25 июля 2000 года, проект Firebird был создан на SourceForge. Firebird 1.0 был выпущен для Linux, Microsoft Windows и Mac OS X 11 марта 2002 года, с последующей портированием на Solaris, FreeBSD 4 и HP UX в течение следующих двух месяцев. Работа по переносу кодовой базы с C на C++ началась в 2000 году. 23 февраля 2004 года была выпущена Firebird 1.5, ставшая первым стабильным релизом новой кодовой базы. Версия 1.5 включала улучшенный оптимизатор запросов, условные выражения SQL 92, точки сохранения SQL:1999 и поддержку явных блокировок. Firebird 2.0 был выпущен 12 ноября 2006 года, добавив поддержку 64-битных архитектур, вложенных таблиц в предложениях FROM и программируемые тайм-ауты блокировки транзакций. Предыдущим стабильным релизом была версия 2.1.6, которая добавила новые возможности, включая процедурные триггеры, рекурсивные запросы и поддержку операторов SQL:2003 MERGE. Firebird 2.5 представил новые функции, такие как улучшенная многопоточность, синтаксис регулярных выражений и возможность запроса удаленных баз данных. Самая последняя стабильная версия – Firebird 3.0, выпущенная 19 апреля 2016 года, с упором на производительность и безопасность. Значительная переработка архитектуры кода обеспечила полную поддержку SMP-машин при использовании версии SuperServer. В рамках Google Summer of Code 2013 началась работа по интеграции Firebird в качестве замены HSQLDB в LibreOffice Base.
Конфликт имен Mozilla Firefox
В апреле 2003 года организация Mozilla объявила о переименовании своего веб-браузера из Phoenix в Firebird после спора о товарном знаке с компанией Phoenix Technologies. Это решение вызвало обеспокоенность в проекте базы данных Firebird, поскольку возникло опасение, что пользователи и интернет-поисковые системы будут путать базу данных и веб-браузер с одинаковым названием Firebird. Разработчики Mozilla выступили с заявлением, в котором подчеркнули, что их программный продукт называется "Mozilla Firebird", а не просто "Firebird". В заявлении также указывалось, что название Mozilla Firebird было кодовым именем проекта. Конфликт был разрешен 9 февраля 2004 года, когда Mozilla переименовала свой браузер в Mozilla Firefox, тем самым положив ему конец.
Многопоколенная архитектура (MGA)
Firebird унаследовал архитектуру хранения Interbase. Для обеспечения свойств ACID транзакций, движок базы данных хранит различные версии каждой записи, измененной активными пользователями. При фиксации транзакций последняя версия каждой измененной записи помечается как окончательная. В случае отката транзакции, движок базы данных сохраняет отметки на исходных версиях записей, не изменяя их. В результате, количество операций записи на диск в Firebird значительно меньше, чем в базах данных, использующих традиционную архитектуру журналов транзакций. Запись транзакций не блокирует чтение и наоборот, поскольку каждый пользователь видит собственную версию базы данных. Компромиссом является необходимость периодического обслуживания ("очистки") для удаления устаревших версий записей и освобождения дискового пространства. Многопоколенная архитектура гарантирует возможность одновременного выполнения операций OLTP и DSS/OLAP без задержек, вызванных механизмами блокировки, характерными для других продуктов.
Индексы
Firebird обеспечивает такое поведение всех индексов базы данных, как будто это хорошо настроенные "кластеризованные индексы", используемые в других архитектурах. В индексных блоках Firebird не применяется двухфазная блокировка, а булевы операции "И" и "ИЛИ" могут выполняться над промежуточными битовыми картами с пренебрежимо малыми затратами, что избавляет оптимизатор от необходимости выбирать между альтернативными индексами.
Лицензирование
Движок базы данных Firebird и его модули распространяются под лицензией с открытым исходным кодом, Initial Developer's Public License (IDPL) – вариантом Mozilla Public License (MPL) версии 1.1. Эта лицензия не обязывает разработчика раскрывать исходный код продуктов, использующих Firebird, или даже пользовательских производных, созданных на его основе, однако в случае добровольного раскрытия исходного кода необходимо соблюдать определенные условия. IDPL разрешает разработчику создавать проприетарные, приложения с закрытым исходным кодом, использующие Firebird или основанные на нем.
Низкоуровневый API Firebird Native, API Services и встроенный SQL
Нативный API Firebird используется приложениями или промежуточным программным обеспечением напрямую или косвенно при подключении к базе данных Firebird. Он реализован в клиентской библиотеке fbclient.dll в системах Windows и в libfbclient.so в Unix-системах. API сервисов представляет собой специальный набор функций для доступа и управления задачами администрирования служб, такими как управление пользователями, резервное копирование и восстановление, а также сбор статистики. Встроенный SQL – это технология, упрощающая разработку приложений Firebird на C/C++ и COBOL с помощью препроцессора gpre, который позволяет встраивать SQL-выражения непосредственно в исходный код языка программирования.
Награды
2007 год. Премия SourceForge Community Choice Award: Лучший проект для предприятий, Лучшая поддержка пользователей. 2009 год. Премия SourceForge Community Choice Award: Лучший проект для предприятий. Финалист в номинациях "Лучший проект" и "Лучший проект для государственных учреждений".