Firebird (сервер базы данных)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Скриншот | |
Оригинальный автор(ы) | Борланд |
---|---|
Разработчик(и) | Фонд Жар-птицы |
Первоначальный выпуск | 2000 |
Стабильная версия | 5.0.0 [1] ![]() |
Предварительный выпуск | Firebird 5.0, выпуск-кандидат 1 / 26.09.2023 |
Репозиторий | |
Написано в | С++ , С |
Операционная система | Кросс-платформенный |
Платформа | ИА-32 , x86-64 |
Тип | СУБД |
Лицензия | ИПЛ , ИДПЛ |
Веб-сайт | www |
Firebird — это с открытым исходным кодом SQL система управления реляционными базами данных , которая поддерживает Linux , Microsoft Windows , macOS и другие Unix . платформы [2] База данных возникла из с открытым исходным кодом Borland версии InterBase в 2000 году, но код был в значительной степени переписан после Firebird 1.5. [3]
История
[ редактировать ]Через неделю после InterBase выпуска исходного кода 6.0 компанией Borland 25 июля 2000 г. [4] [5] проект Firebird создан на SourceForge . [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 транзакциям
- Ссылочная целостность
- Архитектура нескольких поколений (иногда называемая MVCC) [29]
- Поддержка внешних функций ( UDF )
- SQL-активность может отправлять клиентам асинхронные уведомления.
- Сторонние инструменты, включая инструменты администрирования с графическим интерфейсом и инструменты репликации.
- Тщательная запись — быстрое восстановление, нет необходимости в журналах транзакций
- Множество методов доступа: собственный/API, dbExpress/FireDAC. [30] драйверы, ODBC, OLE DB, поставщик .NET, собственный драйвер JDBC типа 4, модуль Python, [31] PHP, Перл
- Инкрементальные резервные копии
- Полная реализация курсора в 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 для создания каталогов на компакт-дисках, однопользовательских или ознакомительных версий приложений.
Лицензирование
[ редактировать ]Ядро базы данных Firebird и его модули выпускаются под лицензией с открытым исходным кодом , Начальной публичной лицензией разработчика (IDPL), вариантом общественной лицензии Mozilla (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: лучший корпоративный проект, лучшая поддержка пользователей. [41]
- 2009. Премия «Выбор сообщества SourceForge»: лучший корпоративный проект. Финалист номинаций «Лучший проект» и «Лучший проект для правительства». [42]
См. также
[ редактировать ]- Сравнение систем управления реляционными базами данных
- Список систем управления реляционными базами данных
- Управление многоверсионным параллелизмом
Ссылки
[ редактировать ]- ^ «Жар-птица 5.0.0» . 11 января 2024 г. Проверено 14 января 2024 г.
- ^ «Firebird: мощная кроссплатформенная система баз данных SQL» . СоурсФордж . СорсФордж Медиа, ООО. 25 апреля 2018 года . Проверено 2 мая 2018 г.
- ^ «Примечания к выпуску Firebird 1.5.5» . Проверено 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» . Линукс сегодня. Архивировано из оригинала 30 июня 2009 года . Проверено 29 января 2009 г.
- ^ «История Жар-птицы» . Проверено 14 марта 2014 г.
- ^ Пол Ривз. «Что происходит с InterBase» . Группа пользователей Borland. п. 2 . Проверено 14 марта 2014 г.
- ^ «Архив новостей сообщества IBPhoenix» . 11 марта 2000 года . Проверено 29 января 2009 г. [ постоянная мертвая ссылка ]
- ^ «Архив новостей сообщества IBPhoenix» . 11 апреля 2000 года . Проверено 29 января 2009 г. [ постоянная мертвая ссылка ]
- ^ «Финальный выпуск реляционной базы данных Firebird 1.5» . Слэшдот. 23 февраля 2004 г. Проверено 31 января 2009 г.
- ^ Хелен Борри (5 октября 2009 г.). «Примечания к выпуску Firebird 1.5.6» . Проект Жар-Птица . Проверено 10 июня 2012 г.
- ^ Дмитрий Еманов. «Финальная версия Firebird 2.0 выходит в Праге» . Проверено 5 февраля 2009 г.
- ^ Хелен Борри (5 апреля 2012 г.). «Примечания к выпуску Firebird 2.0.7» . Проверено 10 июня 2012 г.
- ^ Хелен Борри (20 июля 2014 г.). «Примечания к выпуску Firebird 2.1» . Проверено 20 июля 2014 г.
- ^ Хелен Борри (19 ноября 2015 г.). «Примечания к выпуску Firebird 2.5.5» . Проверено 19 ноября 2015 г.
- ^ Грей, Джеймс (29 июля 2016 г.). «Реляционная база данных Firebird проекта Firebird | Linux Journal» . www.linuxjournal.com . Linux-журнал . Архивировано из оригинала 1 марта 2020 года . Проверено 1 марта 2020 г.
- ^ Мариуз (14 февраля 2012 г.). «Firebird Embedded и LibreOffice — это потрясающая комбинация для масштабирования от однофайлового приложения до клиент-серверного подхода» . Firebirdnews.org . Проверено 8 июля 2013 г.
- ^ ахант (28 мая 2013 г.). «GSOC 2013: SQL-коннектор LibreOffice Firebird» . Проверено 8 июля 2013 г.
- ^ Доцлер, Аса (14 апреля 2003 г.). «Феникс и Минотавр будут переименованы в Жар-птицу и Громовую птицу» . МозиллаЗин . Проверено 29 января 2016 г.
- ^ Браузер Mozilla становится Firebird , IBPhoenix, заархивировано из оригинала 23 апреля 2003 г. , получено 29 января 2016 г.
- ^ Епископ, Алекс (21 апреля 2003 г.). «Интервью с администратором проекта базы данных Firebird Энн Харрисон» . МозиллаЗин . Проверено 29 января 2016 г.
- ^ «брендинг Mozilla» . Организация Мозилла. 25 апреля 2003 г. Архивировано из оригинала 26 апреля 2003 г. Проверено 31 января 2016 г.
- ^ Феста, Пол (7 мая 2003 г.). «Mozilla's Firebird подрезают крылья» . CNET . CBS Интерактив . Проверено 29 января 2016 г.
- ^ Епископ, Алекс (14 мая 2003 г.). «Кристофер Близзард из mozilla.org рассказывает о конфликте имен Firebird» . МозиллаЗин . Проверено 29 января 2016 г.
- ^ Пол Феста (9 февраля 2004 г.). «Mozilla держит огонь в борьбе за имена» . CNET . CBS Интерактив . Проверено 29 января 2016 г.
- ^ «Mozilla Firebird переименована в Firefox, выпущена версия 0.8» . МозиллаЗин . 9 февраля 2004 года . Проверено 29 января 2016 г.
- ^ «Mozilla Firefox — Часто задаваемые вопросы о торговой марке» . сайт mozilla.org . Фонд Мозилла . Проверено 29 января 2016 г.
- ^ «Познакомьтесь с Firebird за 2 минуты» .
- ^ Роман Рокицкий. «Не очень техническое обсуждение многоверсионного управления параллелизмом» . Проверено 21 ноября 2011 г.
- ^ «Подключиться к Firebird (FireDAC)» . FireDAC
- ^ «FDB: драйвер Python для Firebird» .
- ^ «Архитектура нескольких поколений (MGA) и управление версиями записей» . HK-Программное обеспечение . Архивировано из оригинала 1 октября 2011 года . Проверено 14 июля 2011 г.
- ^ «Интервью с Джимом Старки из InterBase World» . Марина Новикова, InterBase World . Проверено 14 июля 2011 г.
- ^ «Что такое архитектура нескольких поколений (MGA)?» . Часто задаваемые вопросы по Firebird . Проверено 14 июля 2011 г.
- ^ «Управление базой данных и сбор мусора» . Проект «Жар-птица» . Проверено 14 июля 2011 г.
- ^ «Что такое архитектура нескольких поколений (MGA)?» . Часто задаваемые вопросы по Firebird . Проверено 14 июля 2011 г.
- ^ «Интервью с Джимом Старки из InterBase World» . Марина Новикова, InterBase World . Проверено 14 июля 2011 г.
- ^ «Firebird: начальная общественная лицензия разработчика, версия 1.0» . Проект Жар-Птица . Проверено 13 июля 2011 г.
- ^ «Клиентская библиотека Firebird» . Проект «Жар-птица» . Проверено 14 июля 2011 г.
- ^ «Разработка приложений» . Проект «Жар-птица» . Проверено 14 июля 2011 г.
- ^ «Победители премии «Выбор сообщества» на SourceForge.net 2007» . SourceForge.net . 15 июня 2007 года . Проверено 13 июля 2011 г.
- ^ «SourceForge.net: CCA 2009: Победители» . SourceForge.net . 28 июля 2009 года . Проверено 13 июля 2011 г.
Внешние ссылки
[ редактировать ]
- Официальный сайт
- Firebird - Портал для разработчиков
- Параметры сортировки Firebird , диаграммы.
- Документация Firebird от IBProvider
- Жар-птицаFAQ
- FirebirdNews - Новости о Firebird и связанных с ним проектах
- Руководство по миграции на Firebird 3 — электронная книга
- Драйвер Firebird Ole Db (альтернатива для ODBC)
- Jaybird — драйвер JDBC для Firebird (на github.com)
- Jaybird — драйвер JDBC для Firebird (на firebirdsql.org)
- Бесплатные системы управления базами данных
- Кроссплатформенное программное обеспечение
- Системы управления реляционными базами данных
- Клиент-серверные системы управления базами данных
- Программное обеспечение для управления реляционными базами данных для Linux
- Ранее проприетарное программное обеспечение
- Firebird (сервер базы данных)