Система управления реляционными базами данных
Firebird — это система управления реляционными базами данных SQL с открытым исходным кодом , которая поддерживает Linux , Microsoft Windows , macOS и другие платформы Unix . [2] База данных была создана на основе открытой версии InterBase от Borland в 2000 году, но ее код был в значительной степени переписан с версии Firebird 1.5. [3]
История
В течение недели после того, как 25 июля 2000 года Borland выпустила исходный код InterBase 6.0, [4] [5] на SourceForge был создан проект Firebird . [6] [7] Firebird 1.0 был выпущен для Linux, Microsoft Windows и Mac OS X 11 марта 2002 года, [8] а в течение следующих двух месяцев были портированы на Solaris , FreeBSD 4 , HP-UX . [9]
Работа по переносу кодовой базы с C на C++ началась в 2000 году. 23 февраля 2004 года был выпущен Firebird 1.5, [10] который стал первым стабильным релизом новой кодовой базы. Версия 1.5 включала улучшенный оптимизатор запросов , условные выражения SQL-92 , точки сохранения SQL:1999 и поддержку явной блокировки . [11] Firebird 2.0 был выпущен 12 ноября 2006 года, [12] добавив поддержку 64-битных архитектур, таблиц, вложенных в предложения FROM , и программируемых тайм-аутов блокировки в блокирующих транзакциях . [13]
Предыдущая стабильная версия имела номер 2.1.6, в которую были добавлены новые функции, включая процедурные триггеры , рекурсивные запросы и поддержку операторов SQL:2003 MERGE . [14]
В Firebird 2.5 появились новые функции, такие как улучшенная многопоточность , синтаксис регулярных выражений и возможность запрашивать удаленные базы данных. [15]
Последняя стабильная версия — Firebird 3.0, выпущенная 19 апреля 2016 года, с упором на производительность и безопасность. Значительная переработка архитектуры кода позволила обеспечить полную поддержку SMP -машин при использовании версии SuperServer. [16]
В ходе Google Summer of Code 2013 началась работа по интеграции Firebird в качестве замены HSQLDB в LibreOffice Base . [17] [18]
Конфликт имен Mozilla Firefox
В апреле 2003 года организация Mozilla объявила о переименовании своего веб-браузера с Phoenix на Firebird после спора о торговой марке с Phoenix Technologies . [19]
Это решение вызвало беспокойство в проекте базы данных Firebird из-за предположения, что пользователи и поисковые системы Интернета будут путать базу данных и веб-браузер, использующие имя Firebird. [20] [21] Разработчики Mozilla опубликовали заявление, [22] в котором четко указали, что их программный пакет называется «Mozilla Firebird», а не «Firebird». [23] [24] В заявлении также говорилось, что название Mozilla Firebird было кодовым названием проекта .
Спор был разрешён 9 февраля 2004 года, когда Mozilla изменила название своего браузера на Mozilla Firefox , тем самым положив конец конфликту. [25] [26] [27]
Основные характеристики
- Полная поддержка хранимых процедур и триггеров [28]
- Полное соответствие транзакциям ACID
- Ссылочная целостность
- Архитектура Multi Generation (иногда называемая MVCC) [29]
- Поддержка внешних функций ( UDF )
- SQL-активность может отправлять асинхронные уведомления клиентам
- Сторонние инструменты, включая инструменты администрирования с графическим интерфейсом и инструменты репликации
- Аккуратная запись — быстрое восстановление, нет необходимости в журналах транзакций
- Множество методов доступа: собственные/API, драйверы dbExpress/FireDAC [30] , ODBC, OLE DB, поставщик .NET, собственные драйверы JDBC типа 4, модуль Python, [31] PHP, Perl
- Инкрементные резервные копии
- Полная реализация курсора в PSQL
Технологии хранения и индексации
Архитектура многопоколений (MGA)
Firebird унаследовал архитектуру хранения Interbase. Чтобы гарантировать свойства ACID транзакций, ядро базы данных сохраняет различные версии каждой записи, измененной активными пользователями в базе данных. Когда транзакции фиксируются, последняя версия каждой измененной записи помечается как окончательная. Если транзакции откатываются, ядро базы данных сохраняет отметку на исходных версиях записей, оставляя их нетронутыми. [32] В результате, запись на диск Firebird значительно сокращена по сравнению с базами данных, которые используют традиционную архитектуру журнала транзакций. [33] Запись транзакций не препятствует чтению и наоборот, потому что каждая видит свою собственную версию базы данных. [34] Компромисс заключается в том, что время от времени требуется некоторое обслуживание («очистка») для очистки старых версий записей и освобождения дискового пространства. [35]
Многопоколенная архитектура гарантирует, что операции OLTP и DSS/OLAP могут выполняться одновременно без задержек, вызванных механизмами блокировки, которые используются в других продуктах. [36]
Индексы
Firebird заставляет все индексы базы данных вести себя как хорошо настроенные «кластеризованные индексы», используемые другими архитектурами. Индексные сегменты Firebird не подлежат двухфазной блокировке, а логические операции «и» и «или» могут выполняться на промежуточных битовых картах с незначительной стоимостью, что устраняет необходимость для оптимизатора выбирать между альтернативными индексами. [37]
Варианты
- Firebird SuperServer имеет один демон/сервер для всех клиентских подключений, многопоточный с общим кэшем
- Firebird SuperClassic также имеет единый демон/сервер для всех клиентских подключений, многопоточный с отдельными кэшами.
- Firebird Classic использует inetd для запуска одной копии сервера на каждое клиентское соединение, рекомендуется для систем SMP, но может иметь проблемы с уведомлениями о событиях, если доступ осуществляется через брандмауэр.
- Firebird Embedded для создания каталогов CD-ROM, однопользовательских или ознакомительных версий приложений
Лицензирование
Движок базы данных Firebird и его модули выпускаются под лицензией с открытым исходным кодом , Initial Developer's Public License (IDPL), вариантом Mozilla Public License (MPL) версии 1.1. Она не требует от разработчика открывать продукты с использованием Firebird или даже пользовательские производные, созданные на основе его исходного кода, но если разработчик решит сделать это, то некоторые положения и условия должны быть соблюдены. IDPL позволяет разработчику создавать собственные приложения с закрытым исходным кодом, которые используют Firebird или основаны на нем. [38]
API-интерфейсы подключения
Низкоуровневый собственный API Firebird, API служб и встроенный SQL
Собственный API Firebird используется напрямую или косвенно приложениями или промежуточным ПО, которые подключаются к базе данных Firebird. Он реализован в клиентской библиотеке fbclient.dll в системах Windows и в libfbclient.so в системах Unix. [39]
API служб — это специальный набор функций для доступа и контроля задач администрирования служб, таких как управление пользователями, резервное копирование/восстановление и сбор статистики.
Встроенный SQL — это метод, который упрощает разработку приложений Firebird на языках C/C++ и COBOL с помощью препроцессора gpre, который позволяет встраивать операторы SQL непосредственно в исходный код языка-хозяина. [40]
Награды
- 2007. SourceForge Community Choice Award: Лучший проект для предприятий, Лучшая поддержка пользователей. [41]
- 2009. SourceForge Community Choice Award: Лучший проект для предприятия. Финалист в номинациях «Лучший проект» и «Лучший проект для правительства». [42]
Смотрите также
Ссылки
- ^ "Firebird 5.0.1". 2 августа 2024 г. Получено 4 августа 2024 г.
- ^ "Firebird: мощная кроссплатформенная система баз данных SQL". SourceForge . SourceForge Media, LLC. 25 апреля 2018 г. Получено 2 мая 2018 г.
- ^ "Firebird 1.5.5 Release Notes" . Получено 29 сентября 2009 г. .Firebird 1.5.5 Общие замечания по переписыванию с языка C на язык C++
- ^ "Inprise/Borland представляет InterBase 6.0 теперь бесплатно и с открытым исходным кодом для Linux, Windows и Solaris". 16 июля 2000 г. Архивировано из оригинала 6 декабря 2004 г. Получено 29 января 2009 г.
- ^ "Borland.com: Inprise/Borland представляет Interbase 6.0 теперь бесплатно и с открытым исходным кодом на Linux". Linux Today. Архивировано из оригинала 30 июня 2009 года . Получено 29 января 2009 года .
- ^ "История Firebird" . Получено 14 марта 2014 г.
- ^ Пол Ривз. «Что происходит с InterBase». Borland User Group. стр. 2. Получено 14 марта 2014 г.
- ^ "Архив новостей сообщества IBPhoenix". 11 марта 2000 г. Получено 29 января 2009 г.[ постоянная мертвая ссылка ]
- ^ "Архив новостей сообщества IBPhoenix". 11 апреля 2000 г. Получено 29 января 2009 г.[ постоянная мертвая ссылка ]
- ^ "Firebird Relational Database 1.5 Final Out". Slashdot. 23 февраля 2004 г. Получено 31 января 2009 г.
- ↑ Хелен Борри (5 октября 2009 г.). "Firebird 1.5.6 Release Notes". Проект Firebird . Получено 10 июня 2012 г. .
- ^ Дмитрий Еманов. "Firebird 2.0 Final Release Launches in Prague" . Получено 5 февраля 2009 г. .
- ↑ Хелен Борри (5 апреля 2012 г.). "Firebird 2.0.7 Release Notes" . Получено 10 июня 2012 г.
- ↑ Хелен Борри (20 июля 2014 г.). "Firebird 2.1 Release Notes" . Получено 20 июля 2014 г. .
- ↑ Хелен Борри (19 ноября 2015 г.). "Firebird 2.5.5 Release Notes" . Получено 19 ноября 2015 г. .
- ^ Грей, Джеймс (29 июля 2016 г.). «Реляционная база данных Firebird проекта Firebird | Linux Journal». www.linuxjournal.com . Linux Journal . Архивировано из оригинала 1 марта 2020 г. . Получено 1 марта 2020 г. .
- ^ mariuz (14 февраля 2012 г.). «Firebird Embedded и LibreOffice — это убийственная комбинация для масштабирования от приложения с одним файлом до клиент-серверного подхода». Firebirdnews.org . Получено 8 июля 2013 г.
- ^ ahunt (28 мая 2013 г.). "GSOC 2013: LibreOffice Firebird SQL Connector" . Получено 8 июля 2013 г.
- ^ Доцлер, Аса (14 апреля 2003 г.). «Phoenix и Minotaur будут переименованы в Firebird и Thunderbird». MozillaZine . Получено 29 января 2016 г. .
- ↑ Браузер Mozilla становится Firebird, IBPhoenix, архивировано из оригинала 23 апреля 2003 г. , извлечено 29 января 2016 г.
- ↑ Бишоп, Алекс (21 апреля 2003 г.). «Интервью с администратором проекта базы данных Firebird Энн Харрисон». MozillaZine . Получено 29 января 2016 г. .
- ^ "mozilla branding". Mozilla Organization. 25 апреля 2003 г. Архивировано из оригинала 26 апреля 2003 г. Получено 31 января 2016 г.
- ^ Феста, Пол (7 мая 2003 г.). «Mozilla's Firebird получает обрезанные крылья». CNET . CBS Interactive . Получено 29 января 2016 г. .
- ↑ Бишоп, Алекс (14 мая 2003 г.). «Кристофер Близзард из mozilla.org говорит о конфликте имен Firebird». MozillaZine . Получено 29 января 2016 г.
- ^ Пол Феста (9 февраля 2004 г.). «Mozilla держит «огонь» в борьбе за наименования». CNET . CBS Interactive . Получено 29 января 2016 г. .
- ^ "Mozilla Firebird переименовал Firefox, выпущена версия 0.8". MozillaZine . 9 февраля 2004 г. Получено 29 января 2016 г.
- ^ "Mozilla Firefox - Часто задаваемые вопросы о торговой марке". mozilla.org . Mozilla Foundation . Получено 29 января 2016 г. .
- ^ «Познакомьтесь с Firebird за 2 минуты».
- ^ Роман Рокицкий. "Не очень техническое обсуждение Multi Version Concurrency Control" . Получено 21 ноября 2011 г.
- ^ «Подключение к Firebird (FireDAC)».FireDAC
- ^ «FDB: Драйвер Python для Firebird».
- ^ "Многопоколенческая архитектура (MGA) и управление версиями записей". HK-Software . Архивировано из оригинала 1 октября 2011 г. Получено 14 июля 2011 г.
- ^ "Интервью с Джимом Старки из InterBase World". Марина Новикова, InterBase World . Получено 14 июля 2011 г.
- ^ "Что такое архитектура Multi Generation (MGA)?". FAQ по Firebird . Получено 14 июля 2011 г.
- ^ "Уборка баз данных и сбор мусора". Проект Firebird . Получено 14 июля 2011 г.
- ^ "Что такое архитектура Multi Generation (MGA)?". FAQ по Firebird . Получено 14 июля 2011 г.
- ^ "Интервью с Джимом Старки из InterBase World". Марина Новикова, InterBase World . Получено 14 июля 2011 г.
- ^ "Firebird: Initial Developer's Public License Version 1.0". Проект Firebird . Получено 13 июля 2011 г.
- ^ "Клиентская библиотека Firebird". Проект Firebird . Получено 14 июля 2011 г.
- ^ "Разработка приложений". Проект Firebird . Получено 14 июля 2011 г.
- ^ "Победители премии SourceForge.net 2007 Community Choice Awards". SourceForge.net . 15 июня 2007 г. Получено 13 июля 2011 г.
- ^ "SourceForge.net: 2009 CCA: Победители". SourceForge.net . 28 июля 2009 . Получено 13 июля 2011 .
Внешние ссылки
На Викискладе есть медиафайлы по теме Firebird (сервер базы данных) .
- Официальный сайт
- Firebird - Портал разработчиков
- Подборки, диаграммы Firebird.
- Документация Firebird от IBProvider
- FirebirdFAQ
- FirebirdNews — Новости о Firebird и связанных проектах
- Руководство по миграции на Firebird 3 - электронная книга
- Драйвер Firebird Ole Db (альтернатива ODBC)
- Jaybird – драйвер JDBC для Firebird (на github.com)
- Jaybird – драйвер JDBC для Firebird (на firebirdsql.org)